5.7.183. Bugzilla::Extension::Push::Connector::Kafka¶
5.7.183.1. DESCRIPTION¶
Bugzilla::Extension::Push::Connector::Kafka - A Push connector for sending notifications to Apache Kafka message brokers using the Net::Kafka Perl module.
This connector extends the Push extension to enable delivery of Bugzilla notifications to Apache Kafka topics. It supports asynchronous message delivery, connection retry logic, and comprehensive security options including SASL authentication and SSL/TLS encryption.
5.7.183.2. CONFIGURATION OPTIONS¶
- bootstrap_servers
Comma-separated list of Kafka broker addresses (host:port). Default: localhost:9092
- topic
The Kafka topic to publish messages to. Required.
- max_retries
Number of connection retry attempts on failure. Default: 3
- timeout_ms
Producer timeout in milliseconds for message delivery. Default: 5000
- compression_type
Message compression algorithm. Select from: none, gzip, snappy, lz4, zstd. Default: none
- client_id
Client identifier for the Kafka producer. Default: bugzilla-push
- security_protocol
Security protocol for broker communication. Select from: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL. Default: SASL_SSL
- sasl_mechanism
SASL authentication mechanism. Select from: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI, OAUTHBEARER. Default: SCRAM-SHA-512
- sasl_username
Username for SASL authentication
- sasl_password
Password for SASL authentication (masked input field)
- ssl_ca_location
Path to SSL Certificate Authority file for SSL/TLS connections. Default: /etc/pki/tls/certs/ca-bundle.crt
5.7.183.3. METHODS¶
- new()
Creates a new Kafka connector instance. Inherits from Bugzilla::Extension::Push::Connector::Base.
- options()
Returns array of configuration option definitions for the admin interface.
- options_validate($config)
Validates configuration options and throws errors for invalid settings.
- init()
Initialization method called during connector setup.
- stop()
Cleanly disconnects from Kafka broker and releases resources.
- should_send($message)
Determines if this connector should send the given message. Always returns 1.
- send($message)
Sends a message to the configured Kafka topic. Returns PUSH_RESULT_OK on success. Implements retry logic for connection failures.
5.7.183.4. MESSAGE FORMAT¶
Messages sent to Kafka include:
- payload
The message content from the Push extension
- topic
The configured Kafka topic name
- key
The routing key from the Push message (if available)
- timestamp
Current timestamp in milliseconds
5.7.183.5. ERROR HANDLING¶
The connector implements comprehensive error handling including:
- Connection retry logic with configurable retry count
- Timeout handling for message delivery
- Detailed logging of errors and connection attempts
- Graceful handling of broker failures and network issues