# 从Kafka主题读取指标
[[inputs.kafka_consumer]]
## Kafka代理服务器。
brokers = ["localhost:9092"]
## 设置支持的最小Kafka版本。如果是0版本,应包含4位数字(用点分隔);从1.0.0开始的版本,应包含3位数字。此设置启用新Kafka功能和API的使用。必须为0.10.2.0(默认值)或更高版本。请查看受支持版本列表:
## https://pkg.go.dev/github.com/Shopify/sarama#SupportedVersions
## 示例:kafka_version = "2.6.0"
## 示例:kafka_version = "0.10.2.0"
# kafka_version = "0.10.2.0"
## 要消费的主题。
topics = ["telegraf"]
## 要消费的主题正则表达式。匹配项将被添加到`topics`中。
## 示例:topic_regexps = [ "*test", "metric[0-9A-z]*" ]
# topic_regexps = [ ]
## 设置此标签后,它将作为值添加到所有带有主题的指标中。
# topic_tag = ""
## 应作为指标标签传递的Kafka消息头列表。仅适用于Kafka 0.11+版本,在较低版本上消息头不可用。
# msg_headers_as_tags = []
## 其值应覆盖指标名称的Kafka消息头的名称。如果在当前选项和`msg_headers_as_tags`选项中指定了相同的消息头,它将从`msg_headers_as_tags`列表中排除。
# msg_header_as_metric_name = ""
## 使用给定源设置指标的时间戳。
## 可用选项有:
## metric -- 不修改指标时间戳
## inner -- 使用内部消息时间戳 (Kafka v0.10+)
## outer -- 使用外部(压缩)块时间戳 (Kafka v0.10+)
# timestamp_source = "metric"
## 可选的客户端ID
# client_id = "Telegraf"
## 可选的TLS配置
# enable_tls = false
# tls_ca = "/etc/telegraf/ca.pem"
# tls_cert = "/etc/telegraf/cert.pem"
# tls_key = "/etc/telegraf/key.pem"
## 使用TLS但跳过链和主机验证
# insecure_skip_verify = false
## 保活探测之间的周期。如果未指定或为零,则默认使用操作系统配置。
# keep_alive_period = "15s"
## SASL身份验证凭据。这些设置通常应与启用的TLS加密一起使用。
# sasl_username = ""
# sasl_password = ""
## 可选的SASL机制,可选其一:
## OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI, AWS-MSK-IAM
# sasl_mechanism = ""
## 如果`sasl_mechanism`是`GSSAPI`则使用
# sasl_gssapi_service_name = ""
## 可选其一:`KRB5_USER_AUTH` 和 `KRB5_KEYTAB_AUTH`
# sasl_gssapi_auth_type = "KRB5_USER_AUTH"
# sasl_gssapi_kerberos_config_path = "/"
# sasl_gssapi_realm = "realm"
# sasl_gssapi_key_tab_path = ""
# sasl_gssapi_disable_pafxfast = false
## 如果`sasl_mechanism`是`OAUTHBEARER`则使用
# sasl_access_token = ""
## 如果`sasl_mechanism`是`AWS-MSK-IAM`则使用
# sasl_aws_msk_iam_region = ""
## 用于基于配置文件的身份验证
## sasl_aws_msk_iam_profile = ""
## 用于基于角色的身份验证
## sasl_aws_msk_iam_role = ""
## sasl_aws_msk_iam_session = ""
## 要作为TOML表传递的任意键值字符串对。例如:
## {logicalCluster = "cluster-042", poolId = "pool-027"}
# sasl_extensions = {}
## SASL协议版本。连接到Azure EventHub时设置为0。
# sasl_version = 1
## 禁用Kafka元数据完整获取
# metadata_full = false
## 消费者组名称。
# consumer_group = "telegraf_metrics_consumers"
## 压缩编解码器表示Kafka在消息中识别的各种压缩编解码器。
## 0 : 无
## 1 : Gzip
## 2 : Snappy
## 3 : LZ4
## 4 : ZSTD
# compression_codec = 0
## 初始偏移位置;可选 "oldest" 或 "newest"。
# offset = "oldest"
## 消费者组分区分配策略;可选 "range", "roundrobin" 或 "sticky"。
# balance_strategy = "range"
## 包括连接在内的元数据操作的最大重试次数。设置Sarama库的`Metadata.Retry.Max`配置值。如果为0或未设置,则使用Sarama默认值3。
# metadata_retry_max = 0
## 重试退避类型。有效选项:"constant", "exponential"
# metadata_retry_type = "constant"
## 重试前的等待时间。当`metadata_retry_type`为"constant"时,每次重试都延迟此时间。当为"exponential"时,第一次重试延迟此时间,后续延迟加倍。如果为0或未设置,则使用Sarama默认值250毫秒。
# metadata_retry_backoff = 0
## 当`metadata_retry_type`为"exponential"时,重试前的最大等待时间。对于其他重试类型忽略。如果为0,则没有退避限制。
# metadata_retry_max_duration = 0
## 当设置为true时,将每个引导代理地址转换为一组IP,然后对每个IP执行反向查找以获取其规范主机名。此主机名列表随后替换原始地址列表。
# resolve_canonical_bootstrap_servers_only = false
## 要消费的消息的最大长度,单位为字节(默认0/无限制);更大的消息将被丢弃。
max_message_len = 1000000
## 最大未交付消息数
## 此插件使用跟踪指标,确保在从原始代理确认消息之前,消息已被读取到输出,以防止数据丢失。此选项设置从代理读取但尚未被输出写入的最大消息数。
##
## 选择此值时需要注意代理的`metric_batch_size`值。将最大未交付消息数设置得太高可能导致数据批次持续流向输出。而设置得太低可能永远无法刷新代理的消息。
# max_undelivered_messages = 1000
## 消费者处理消息应花费的最大时间。如果调试日志打印来自sarama的关于"放弃订阅[主题],因为消费花费时间太长"的消息,请将此值增加到超过输出插件所花费的时间。
##
## 请注意,有效超时可能在`max_processing_time`和`2 * max_processing_time`之间。
# max_processing_time = "100ms"
## 每个请求中从代理获取的默认消息字节数(默认1MB)。这应大于您的大多数消息,否则消费者将花费大量时间协商大小而不是实际消费。类似于JVM的`fetch.message.max.bytes`。
# consumer_fetch_default = "1MB"
## 要消费的数据格式。
## 每种数据格式都有其自己独特的配置选项集,请在此处阅读更多相关信息:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
# data_format = "influx"