|
| 1 | +# Kafka Topics Observer Extension |
| 2 | +<!-- status autogenerated section --> |
| 3 | +| Status | | |
| 4 | +| ------------- |-----------| |
| 5 | +| Stability | [beta] | |
| 6 | +| Distributions | [contrib] | |
| 7 | +| Issues | [](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Aextension%2Fkafkatopicsobserver) [](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Aextension%2Fkafkatopicsobserver) | |
| 8 | +| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@MovieStoreGuy](https://www.github.com/MovieStoreGuy) | |
| 9 | + |
| 10 | +[beta]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#beta |
| 11 | +[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib |
| 12 | +<!-- end autogenerated section --> |
| 13 | + |
| 14 | +The Kafka topics observer extension is a [Receiver Creator](../../../receiver/receivercreator/README.md)-compatible "watch observer" that will detect and report |
| 15 | +kafka topics in kafka cluster based on regex template. This observer watches available topics and matches them with the |
| 16 | +provided regex. If any change in available topics matching the regex is detected, the observer updates the endpoints list. |
| 17 | + |
| 18 | +## Configuration |
| 19 | + |
| 20 | +The following settings are required: |
| 21 | + |
| 22 | +- `protocol_version` (no default): Kafka protocol version e.g. 2.0.0 |
| 23 | + |
| 24 | +The following settings can be optionally configured: |
| 25 | + |
| 26 | +- `brokers` (default = localhost:9092): The list of kafka brokers |
| 27 | +- `resolve_canonical_bootstrap_servers_only` (default = false): Whether to resolve then reverse-lookup broker IPs during startup |
| 28 | +- `topic_regex` regex pattern of the topic name to subscribe to. |
| 29 | +- `session_timeout` (default = `10s`): The request timeout for detecting client failures when using Kafka’s group management facilities. |
| 30 | +- `heartbeat_interval` (default = `3s`): The expected time between heartbeats to the consumer coordinator when using Kafka’s group management facilities. |
| 31 | +- `auth` |
| 32 | + - `plain_text` |
| 33 | + - `username`: The username to use. |
| 34 | + - `password`: The password to use |
| 35 | + - `sasl` |
| 36 | + - `username`: The username to use. |
| 37 | + - `password`: The password to use |
| 38 | + - `mechanism`: The sasl mechanism to use (SCRAM-SHA-256, SCRAM-SHA-512, AWS_MSK_IAM, AWS_MSK_IAM_OAUTHBEARER or PLAIN) |
| 39 | + - `aws_msk.region`: AWS Region in case of AWS_MSK_IAM or AWS_MSK_IAM_OAUTHBEARER mechanism |
| 40 | + - `aws_msk.broker_addr`: MSK Broker address in case of AWS_MSK_IAM mechanism |
| 41 | + - `tls` |
| 42 | + - `ca_file`: path to the CA cert. For a client this verifies the server certificate. Should |
| 43 | + only be used if `insecure` is set to false. |
| 44 | + - `cert_file`: path to the TLS cert to use for TLS required connections. Should |
| 45 | + only be used if `insecure` is set to false. |
| 46 | + - `key_file`: path to the TLS key to use for TLS required connections. Should |
| 47 | + only be used if `insecure` is set to false. |
| 48 | + - `insecure` (default = false): Disable verifying the server's certificate |
| 49 | + chain and host name (`InsecureSkipVerify` in the tls config) |
| 50 | + - `server_name_override`: ServerName indicates the name of the server requested by the client |
| 51 | + in order to support virtual hosting. |
| 52 | + - `kerberos` |
| 53 | + - `service_name`: Kerberos service name |
| 54 | + - `realm`: Kerberos realm |
| 55 | + - `use_keytab`: Use of keytab instead of password, if this is true, keytab file will be used instead of password |
| 56 | + - `username`: The Kerberos username used for authenticate with KDC |
| 57 | + - `password`: The Kerberos password used for authenticate with KDC |
| 58 | + - `config_file`: Path to Kerberos configuration. i.e /etc/krb5.conf |
| 59 | + - `keytab_file`: Path to keytab file. i.e /etc/security/kafka.keytab |
| 60 | + - `disable_fast_negotiation`: Disable PA-FX-FAST negotiation (Pre-Authentication Framework - Fast). Some common Kerberos implementations do not support PA-FX-FAST negotiation. This is set to `false` by default. |
0 commit comments