Skip to main content

监控指标

本文中提及的 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