监控 Google Cloud Managed Service for Apache Kafka 集群

Managed Service for Apache Kafka 会收集可用于监控 Kafka 集群的指标。本页面介绍了如何在 Google Cloud 控制台中查看这些指标。

概览

Managed Service for Apache Kafka 会导出开源 Kafka 发行版中提供的多种指标,以及特定于服务的指标,例如消费群组偏移滞后时间。

这些指标分为以下四类资源:

  • 集群:这些指标有助于维护集群的整体健康状况。

  • 主题:这些指标包括发布者和消费者的速率和错误。 它们会监控 Kafka 应用的总体健康状况以及特定于代理的问题。

  • 主题分区:这些指标旨在监控和调试特定于各个分区的性能问题,例如键分布不均匀。

  • 主题分区消费者群组:这些指标用于监控消费者应用的健康状况,主要是消费者滞后时间。使用方群组的开源 Kafka 错误指标无法按分区提供,只能按主题提供。

部分指标可以按代理索引分组。根据代理索引,您可以查找相应代理的配置可用区。如需了解详情,请参阅查看中介。

查看 Kafka 集群的指标

您可以通过以下方式查看指标:

  • 集群详情页面包含集群、主题和消费群组的监控信息中心。这些信息中心包含预定义的图表,可让您了解集群的总体健康状况和性能。

  • 您可以使用 Metrics Explorer 查看所有可用指标、创建自定义图表,或汇总多个集群的指标。

所需的角色和权限

如需获得查看监控图表所需的权限,请让您的管理员为您授予项目的 Managed Kafka Viewer (roles/managedkafka.Viewer) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

使用监控信息中心

如需查看 Managed Service for Apache Kafka 集群的监控信息中心,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到“集群”

  2. 点击集群的名称。

  3. 如需查看集群的指标,请选择监控标签页。

  4. 如需查看集群中某个主题的指标,请执行以下操作:

    1. 选择资源标签页。

    2. 在主题列表中,点击相应主题的名称。

    3. 在主题详情页面中,选择监控标签页。

  5. 如需查看集群中某个消费群组的指标,请执行以下操作:

    1. 选择资源标签页。

    2. 在消费者群组列表中,点击相应消费者群组的名称。

    3. 在消费者群组详情页面中,选择监控标签页。

如需了解详情,请参阅查看 Kafka 集群。

使用 Metrics Explorer

如需使用 Metrics Explorer 查看 Managed Service for Apache Kafka 指标,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往 Metrics Explorer 页面。

    转到 Metrics Explorer

  2. 在配置部分,点击选择指标。

  3. 在过滤条件中,输入 Apache Kafka。

  4. 在有效资源中,选择以下选项之一:

    • Apache Kafka 集群

    • Apache Kafka 主题

    • Apache Kafka 主题分区

    • Apache Kafka 主题分区使用方群组

  5. 选择一个指标,然后点击应用。

如需详细了解 Metrics Explorer,请参阅使用 Metrics Explorer 创建图表。

Managed Service for Apache Kafka 指标

下表列出了用于监控 Kafka 集群和集群资源的常用指标。如需查看可用指标的完整列表,请参阅Google Cloud 指标。

Managed Service for Apache Kafka 服务由服务网址 managedkafka.googleapis.com 标识。

集群指标

以下指标适用于集群。如需查看特定集群的指标,请按 cluster_id 标签进行过滤。

指标 说明 等效 MBean 名称
cpu/core_usage_time 集群的累计 CPU 用量(以 vCPU 为单位)。这有助于了解集群的总体运营成本。 不适用
cpu/limit 为集群配置的当前 CPU 数量。可用于监控 CPU 利用率(以比率表示),与 cpu/usage 指标搭配使用。 不适用
memory/usage 集群上的当前 RAM 用量。可与 memory/limit 指标结合使用,以监控 RAM 利用率(以比率表示)。 不适用
memory/limit 集群的当前配置 RAM 大小。可与 memory/usage 指标结合使用,以监控 RAM 利用率(以比率表示)。 不适用
jvm/memory_area/bytes_used 代理和控制器的给定 JVM 内存区域(例如堆或非堆)的已用字节数。 java.lang:type=Memory,HeapMemoryUsage.used
java.lang:type=Memory,NonHeapMemoryUsage.used
jvm/memory_area/bytes_committed 代理和控制器的给定 JVM 内存区域(例如堆或非堆)的已提交字节数。 java.lang:type=Memory,HeapMemoryUsage.committed
java.lang:type=Memory,NonHeapMemoryUsage.committed
cluster_byte_in_count 从客户端发送到所有主题的总字节数。 kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
cluster_byte_out_count 从所有主题发送到客户端的字节总数。 kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
cluster_message_in_count 已发布到所有主题的消息总数。 kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
request_count 向代理发出的请求总数 kafka.network:type=RequestMetrics,name=RequestsPerSec,request= {Produce|FetchConsumer|FetchFollower},version=([0-9]+)
request_byte_count 向集群发出的请求的总大小(以字节为单位)。 kafka.network:type=RequestMetrics,name=RequestBytes,request= ([-.\w]+)
partitions 此集群当前处理的分区数量(按代理细分)。 kafka.server:type=ReplicaManager,name=PartitionCount
request_latencies 每个请求所用的毫秒数(以各种百分位表示) kafka.network:type=RequestMetrics,name=TotalTimeMs,request= {Produce|FetchConsumer|FetchFollower}
consumer_groups 当前从代理处消费的消费群组数量 kafka.server:type=GroupMetadataManager,name=NumGroups
offline_partitions 控制器观察到的离线主题分区数。 kafka.controller:type=KafkaController,name=OfflinePartitionCount

主题指标

以下指标适用于主题。如需查看特定主题的指标,请按 cluster_id 和 topic_id 标签进行过滤。

指标 说明 等效的 MBean 名称
message_in_count 发布到主题的消息总数。 kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec, topic=([-.\w]+)
byte_in_count 从客户端发送到主题的字节总数。 kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=([-.\w]+)
topic_request_count 向相应主题发出的生成请求和提取请求的总数。 kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,topic=([-.\w]+)
topic_error_count 向主题发出的失败的生成请求和失败的提取请求的总数。 kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=([-.\w]+)
byte_out_count 发送到客户端的总字节数。 kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec, topic=([-.\w]+)

分区指标

以下指标适用于分区。如需查看主题中特定分区的指标,请按 cluster_id、topic_id 和 partition_index 标签进行过滤。

指标 说明 等效的 MBean 名称
consumer_lag 领导者与每个跟随者副本之间的复制延迟时间(以消息为单位)。 kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
log_segments 当前日志段的数量。这有助于确保存储分层保持健康状态。 kafka.log:type=Log,name=NumLogSegments,topic=([-.\w]+),partition=([0-9]+)
first_offset 主题中每个分区的第一个偏移量。与 last_offset 结合使用时,可用于监控存储的消息总数的上限,以及查找最旧消息的实际偏移量。 kafka.log:type=Log,name=LogStartOffset,topic=([-.\w]+),partition=([0-9]+)
last_offset 分区中的最后一个偏移量。这可用于查找每个分区随时间变化的最新偏移量。这有助于确定重新处理数据所需的特定偏移量,以便从过去的特定时间开始重新处理数据。 kafka.log:type=Log,name=LogEndOffset,topic=([-.\w]+),partition=([0-9]+)
byte_size 分区在磁盘上的大小(以字节为单位)。 不适用

使用方群组指标

以下指标适用于消费群组。如需查看特定消费群组的指标,请按 consumer_group_id 标签进行过滤。

指标 说明 等效的 MBean 名称
offset_lag 每个分区的消费者组的最新偏移量与上次提交的偏移量之间的差值。此指标用于估算消费者尚未成功处理的已生成消息数量。 不适用

后续步骤

Apache Kafka® 是 Apache Software Foundation 或其关联公司在美国和/或其他国家/地区的注册商标。