From d6a6ce7b929ca08167257e440ca328dea52f4d3d Mon Sep 17 00:00:00 2001 From: Stephen R Pietrowicz Date: Fri, 10 Jul 2026 13:40:13 -0500 Subject: [PATCH] feat(Messaging): Add info about Kafka Adds information about how to configure Kafka messages and message format Closes: #8591 --- docs/operator/monitoring.md | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/docs/operator/monitoring.md b/docs/operator/monitoring.md index c86b343576c..74d688b31a5 100644 --- a/docs/operator/monitoring.md +++ b/docs/operator/monitoring.md @@ -182,7 +182,29 @@ Different options are shown in figure and described below. password = ``` -2. Direct Delivery +2. Kafka Messages + + Hermes can deliver events to a Kafka topic, which can be consumed by a Kafka client. + + Config for this is described below. + ```cfg + [hermes] + # List of services Hermes should send messages to. + services_list = kafka + + [messaging-hermes-kafka] + # Kafka options + # Non-SSL port (used is use_ssl=False + nonssl_port = 9092 + # Use SSL for Kafka connection + use_ssl = False + # Broker host name or DNS alias + brokers = kafka + # Destination topic + topic = hermestopic + ``` + +3. Direct Delivery These options send events directly to storage or alerting systems, bypassing queues. Hermes can write events straight to Elasticsearch, OpenSearch, or InfluxDB. In addition can also deliver events via email which supports custom SMTP servers, credentials, and SSL/TLS. @@ -197,8 +219,8 @@ Different options are shown in figure and described below. [hermes] # List of services Hermes should send messages to. - # Supported values: influx, elastic, email, activemq - services_list = elastic, influx, email, activemq + # Supported values: influx, elastic, email, activemq, kafka + services_list = elastic, influx, email, activemq, kafka # Toggle query behavior: # True -> fetch bulk messages for each service individually @@ -276,6 +298,8 @@ The final format of the message is determined by the destination service, as Her - ActiveMQ (STOMP Message): The body is a streamlined JSON object containing only `event_type`, `payload`, and `created_at`. The message uses STOMP headers to set the event_type and flag the message as persistent. +- Kakfa: The body is a JSON object containing only `event_type`, `payload`, and `created_at`. + - Elasticsearch / OpenSearch (Bulk API): Hermes sends the raw database JSON message (including `id` and `services`) as a document using Bulk API format (via a POST request). - InfluxDB (Line Protocol): Hermes performs on-the-fly aggregation of transfers and deletions, counting successes/failures and bytes. It does not send the raw event JSON. The final format is the InfluxDB Line Protocol, which consists of a single text line combining the measurement, tags (e.g., RSE, activity), fields (e.g., `nb_done=10`), and a timestamp.