> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chronosphere.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kafka destination plugin

export const entity_0 = "Kafka destination plugin"

export const plugin_0 = "Kafka destination plugin"

The Kafka [destination plugin](/ingest/pipeline/plugins/destination-plugins)
(name: `kafka`) lets you configure your telemetry pipeline to integrate your
data with Apache Kafka for real-time processing and analysis.

## Supported telemetry types

The {plugin_0} for Chronosphere Telemetry Pipeline supports these telemetry types:

|                    Logs                    |             Metrics             |              Traces             |
| :----------------------------------------: | :-----------------------------: | :-----------------------------: |
| <Icon icon="circle-check" color="green" /> | <Icon icon="ban" color="red" /> | <Icon icon="ban" color="red" /> |

## Configuration parameters

Use the parameters in this section to configure the {entity_0}. The
Telemetry Pipeline web interface uses the items in the **Name** column to
describe these parameters. [Pipeline configuration files](/ingest/pipeline/v2/configure/config-files)
use the items in the **Key** column as YAML keys.

### General

| Name        | Key       | Description                                                                                                                                                                                                                                                 | Default         |
| ----------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
| **Brokers** | `brokers` | Required. Single of multiple list of Kafka brokers. For example, `192.168.1.3:9092` or `192.168.1.4:9092`.                                                                                                                                                  | *none*          |
| **Topics**  | `topics`  | Required. Single entry or list of comma-separated topics that Telemetry Pipeline uses to send messages to Kafka. If only one topic is set, that topic is used for all records. If multiple topics exists, the one set in the record by `topic_key` is used. | `calyptia-core` |
| **Format**  | `format`  | Specifies data format. Accepted values: `json`, `msgpack`.                                                                                                                                                                                                  | `json`          |

### Advanced

| Name                   | Key                  | Description                                                                                                                                                                                                                                                                                                                                  | Default  |
| ---------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| **Message Key**        | `message_key`        | Optional key to store the message.                                                                                                                                                                                                                                                                                                           | *none*   |
| **Message Key Field**  | `message_key_field`  | If set, the value of `message_key_field` in the record will indicate the message key. If not set or found in the record, `message_key` will be used (if set).                                                                                                                                                                                | *none*   |
| **Timestamp Key**      | `timestamp_key`      | Sets the key to store the record timestamp.                                                                                                                                                                                                                                                                                                  | *none*   |
| **Timestamp Format**   | `timestamp_format`   | Sets the format of the timestamp. Accepted values: `double`, `iso8601`.                                                                                                                                                                                                                                                                      | `double` |
| **Body Key**           | `body_key`           | Specifies the key that contains the body.                                                                                                                                                                                                                                                                                                    | *none*   |
| **Queue Full Retries** | `queue_full_retries` | Telemetry Pipeline queues data into rdkafka library. If the underlying library can't flush the records, the queue might fill up, blocking new addition of records. This key sets the number of local retries to enqueue the data. The interval between each retry is one second. Setting the key to `0` sets an unlimited number of retries. | `10`     |

### Extended librdkafka parameters

This plugin uses the [librdkafka](https://github.com/confluentinc/librdkafka)
library. Certain configuration parameters available through the Telemetry
Pipeline UI are based on librdkafka settings. These parameters generally use the
`rdkafka.` prefix.

In addition to the parameters available through the Telemetry Pipeline UI, you can
customize any of the
[librdkafka configuration properties](https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md)
by adding them to a pipeline configuration file. To do so, append the `rdkafka.`
prefix to the name of that property.

For example, to customize the `socket.keepalive.enable` property, add the
`rdkafka.socket.keepalive.enable` key to your configuration file.
