监控指标
本文中提及的 AutoMQ Kafka 术语,均特指安托盟丘(杭州)科技有限公司通过 GitHub AutoMQ 组织下开源的 automq-for-kafka 项目。
本文将介绍 AutoMQ for Kafka 提供的监控指标(以 Prometheus 格式展示)。
通用指标
kafka_server_connection_count
节点当前建立的连接数。
- Type: Gauge
kafka_network_threads_idle_rate
Kafka SocketServer 网络线程的空闲率,范围:[0, 1.0]。
- Type: Gauge
kafka_io_threads_idle_time_nanoseconds_total
Kafka request handler 线程空闲时间,该指标为 Apache Kafka 原生指标 RequestHandlerAvgIdlePercent 的累计值,单位为纳秒,通过对时间(纳秒)求导可得线程空闲率。注意,当所在节点为组合节点(即同时作为 Controller 和 Broker)时,由于 Controller 和 Broker 分别拥有各自的 request handler,此时该指标为 Controller 和 Broker 的合计值,通过求导得出的线程空闲率最大值为 2.0。
- Type: Counter
Controller 指标
kafka_controller_active_count
用于表示当前 Controller 节点是否为 active Controller,指标值等于 1 表示为 active,0 表示非 active。
- Type: Gauge
kafka_broker_active_count
当前集群的活跃 Broker 数量。
- Type: Gauge
kafka_broker_fenced_count
当前集群被 fence 的 Broker 数量。
- Type: Gauge
kafka_topic_count
当前集群 Topic 总数。
- Type: Gauge
kafka_partition_total_count
当前集群分区总数。
- Type: Gauge
kafka_partition_offline_count
当前集群无主分区总数。
- Type: Gauge
kafka_stream_auto_balancer_metrics_time_delay_milliseconds
集群内各 Broker 节点上报 AutoBalancer 监控指标的延迟时间,延迟时间超过一定阈值时,该 Broker 节点即被 AutoBalancer 视为 out-of-sync 节点,不再参与 AutoBalancer 的分区调度。
Type: Gauge
Labels:
- node_id:上报 AutoBalancer 监控指标的节点 id
kafka_stream_s3_object_count
当前集群上传至对象存储的 Object 总数,按 Object 状态分类。
Type: Gauge
Labels:
state:Object 状态,分以下三类:
prepared:还未完成写入,未被 commit 的对象
committed:已完成写入并被 commit 的对象
mark_destroyed:被标记为删除的对象,在延迟一定时间后,对象将被从对象存储中删除
kafka_stream_s3_object_size_bytes
当前集群上传至对象存储的 Object 总大小。
- Type: Gauge
kafka_stream_stream_object_num
当前集群上传至对象存储的 StreamObject 数量。
- Type: Gauge
kafka_stream_stream_set_object_num
当前集群各 Broker 上传至对象存储的 StreamSetObject 数量。
Type: Gauge
Labels:
- node_id:对应的 Broker 节点 id
Broker 指标
kafka_message_count_total
Broker 节点收到的消息总数,对时间求导可得消息数量吞吐。
Type: Counter
Labels:
- topic
kafka_network_io_bytes_total
Broker 节点收到和发出的消息大小总量,对时间求导可得消息大小吞吐。
Type: Counter
Labels:
topic
partition
direction:
in: 表示收消息
out: 表示发消息
kafka_topic_request_count_total
Broker 节点上各 Topic 收到的请求总数,仅包含 produce 和 fetch 两种类型请求。
Type: Counter
Labels:
topic
type:请求类型
produce
fetch
kafka_topic_request_failed_total
Broker 节点上各 Topic 的请求失败总数,仅包含 produce 和 fetch 两种类型请求。
Type: Counter
Labels:
topic
type:请求类型
produce
fetch
kafka_request_count_total
Broker 节点收到的请求总数。
Type: Counter
Labels:
type:请求类型
version:该类型请求的 Api Version
kafka_request_error_count_total
Broker 节点的请求失败总数,注意,即使成功的请求也会计入该指标内,成功请求的 error code 为 NONE。
Type: Counter
Labels:
type:请求类型
error:error code,NONE 表示该请求成功
kafka_request_size_bytes_total
Broker 节点收到的请求大小总和。
Type: Counter
Labels:
- type:请求类型
kafka_request_size_50p(99p/mean/max)_bytes
Broker 节点收到的请求大小,按不同分位数表示。
Type: Gauge
Labels:
- type:请求类型
kafka_request_time_milliseconds_total
Broker 节点处理请求的耗时总和。
Type: Counter
Labels:
- type:请求类型
kafka_request_time_50p(99p/mean/max)_milliseconds
Broker 节点处理请求的耗时,按不同分位数表示。
Type: Gauge
Labels:
- type:请求类型
kafka_request_queue_time_milliseconds_total
Broker 节点请求排队时间总和,当 Kafka IO 线程繁忙时,会导致请求排队时间上升。
Type: Counter
Labels:
- type:请求类型
kafka_request_queue_time_50p(99p/mean/max)_milliseconds
Broker 节点请求排队时间,按不同分位数表示。
Type: Gauge
Labels:
- type:请求类型
kafka_response_queue_time_milliseconds_total
Broker 节点的响应排队时间,当 Kafka Network 线程繁忙时,会导致响应排队时间上升。
Type: Counter
Labels:
- type:请求类型
kafka_response_queue_time_50p(99p/mean/max)_milliseconds
Broker 节点响应排队时间,按不同分位数表示。
Type: Gauge
Labels:
- type:请求类型
kafka_request_queue_size
Broker 节点的请求队列大小。
- Type: Gauge
kafka_response_queue_size
Broker 节点的响应队列大小。
- Type: Gauge
kafka_purgatory_size
Broker 节点上等待 producer 或 fetch purgatory 的请求数量。
Type: Gauge
Labels:
type:
Produce
Fetch
kafka_partition_count
Broker 节点当前分配的分区数量。
- Type: Gauge
kafka_logs_flush_time_50p(99p/mean/max)_milliseconds
Broker 节点的日志刷盘时间,在 AutoMQ for Kafka 中,表示 Delta WAL 的刷盘时间,按不同分位数表示。
- Type: Gauge
kafka_log_end_offset
Broker 节点上各个分区的最大逻辑位点。
Type: Gauge
Labels:
topic
partition
kafka_log_size
Broker 节点上各个分区的消息大小。
Type: Gauge
Labels:
topic
partition
kafka_group_commit_offset
各 Consumer Group 在对应分区上的消费位点,注意,该指标由各 Consumer Group 对应的 Group Coordinator 所在的 Broker 上报 。
Type: Gauge
Labels:
consumer_group
topic
partition
kafka_group_count
各 Group Coordinator 所在 Broker 节点负责管理的 Consumer Group 数量。
- Type: Gauge
kafka_group_preparing_rebalance_count
正在准备进行 rebalance 的 Consumer Group 数量。
- Type: Gauge
kafka_group_completing_rebalance_count
正在等待 Leader 进行状态分配的 Consumer Group 数量。
- Type: Gauge
kafka_group_stable_count
Stable 状态的 Consumer Group 数量。
- Type: Gauge
kafka_group_empty_count
无任何成员但还未过期的 Consumer Group 数量。
- Type: Gauge
kafka_group_dead_count
无任何成员,且 metadata 已被移除的 Consumer Group 数量。
- Type: Gauge
kafka_stream_upload_size_bytes_total
Broker 节点上传至对象存储的数据总大小。
- Type: Counter
kafka_stream_download_size_bytes_total
Broker 节点从对象存储下载的数据总大小。
- Type: Counter
kafka_stream_network_inbound_usage_bytes_total
Broker 节点的总入带宽用量,包括接收消息,和从对象存储下载的数据量,对时间求导可得入流量吞吐。
Type: Counter
Labels:
type:
bypass:表示不被限流的入带宽用量,等同于 Broker 节点的消息入流量
catchup:表示冷读产生的入流量,也即因缓存未命中,或预读策略从 S3 读取数据的入流量
compaction:表示 Stream Set Object Compaction 产生的入流量,也即发生 compaction 时从 S3 读取数据的入流量
kafka_stream_network_outbound_usage_bytes_total
Broker 节点的总出带宽用量,包括消费消息,和上传至对象存储的数据量,对时间求导可得出流量吞吐。
Type: Counter
Labels:
type:
bypass:表示不被限流的出带宽用量,如消费热数据时的 Broker 节点消息出流量,或 Broker 上传发送消息产生的 Delta WAL 至 S3 时的出流量
catchup:表示冷读产生的出流量,等同于消费冷数据时的 Broker 节点出流量
compaction:表示 Stream Set Object Compaction 产生的出流量,也即发生 compaction 时向 S3 上传数据的出流量
kafka_stream_network_inbound_available_bandwidth_bytes
Broker 节点预留给冷读和 Compaction 的入流量吞吐,当该值小于冷读和 Compaction 的入流量需求时,其对应的请求将被置入限流队列排队,正常消息收发流量不受该限流影响。注意,该指标值仅代表采样时的瞬时值,受限于采样间隔和限流策略的具体实现,该指标值仅供参考使用。
- Type: Gauge
kafka_stream_network_outbound_available_bandwidth_bytes
Broker 节点预留给冷读和 Compaction 的出流量吞吐,当该值小于冷读和 Compaction 的出流量需求时,其对应的请求将被置入限流队列排队,正常消息收发流量不受该限流影响。注意,该指标值仅代表采样时的瞬时值,受限于采样间隔和限流策略的具体实现,该指标值仅供参考使用。
- Type: Gauge
kafka_stream_network_inbound_limiter_queue_time_50p(99p/max/sum)_nanoseconds
冷读和 Compaction 的入流量请求得到执行时,其在限流队列中的排队时间。
- Type: Gauge
kafka_stream_network_outbound_limiter_queue_time_50p(99p/max/sum)_nanoseconds
冷读和 Compaction 的出流量请求得到执行时,其在限流队列中的排队时间。
- Type: Gauge
kafka_stream_operation_latency_50p(99p/max/sum)_nanoseconds
AutoMQ for Kafka S3Stream 模块各阶段的操作耗时。
Type: Gauge
Labels:
operation_type
operation_name