Lenses-Kafka Monitoring Suite
2018-07-13 本文已影响36人
04974ba324f9
一、Kafka Cluster Metrics
1. Cluster Health——集群节点层面的统计总览——kafkaAm虽然有部分功能,但是不像这样展示的很清晰,而且这样很cool

监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Brokers | broker数量 | - | 是 |
Active Controllers | 活跃的Controller | - | 是 |
Cluster Heartbeat | 心跳次数/s 消费者向coordinator发送心跳,以保持自身在组中活动 | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=Heartbeat | 否 |
underreplicated Partitions | 正在做复制的partition的数量 | - | 是 |
offline Partitions | 不可用的partition数量 | - | 是 |
Preferred Replica Imbalance | 不平衡的分区 | kafka.controller:type=KafkaController,name =PreferredReplicaImbalanceCount | 否 |
Unclean Leader Elections | Unclean的leader选举数量 | kafka.controller:type=ControllerStats, name=UncleanLeaderElectionsPerSec | 否 |
2. Message and Data Rate——以Topic为维度统计message速率
监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Messages/s | Topic的TPS | - | 是 |
Inflow/s | Topic的流入速率 | - | 是 |
Outflow/s | Topic的流出速率 | - | 是 |
3. Request Rates——KafkaApis消息处理请求耗时每个cluster or broker的信息展示的一目了然

监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Produce | 生产者请求 | - | 是 |
Fetch | 取数据请求 | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=Fetch | 否 |
Offsets | Offsets | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=Offsets | 否 |
Offset Commit | 提交Offsets | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=OffsetCommit | 否 |
Offset Fetch | 获取Offsets | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=OffsetFetch | 否 |
Metadata | 元数据 | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=Metadata | 否 |
Update Metadata | 更新元数据 | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=UpdateMetadata | 否 |
Fetch Consumer | 获取消费者 | - | 是 |
Fetch Follower | 获取生产者 | - | 是 |
Leader and ISR | Leader和ISR数据 | - | 是 |
Find Coordinator | 获取控制器 | kafka.network:type=RequestMetrics, name=TotalTimeMs,request=FindCoordinator | 否 |
Describe Groups | 获取组信息 | ApiKeys.DESCRIBE_GROUPS | 是 |
4. Network Traffic——每个topic的进出速率正常情况下 流入流出应当是趋于平衡
监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Ingress Rate | Topic流入速率 | - | 是 |
Egress Rate | Topic流出速率 | - | 是 |
Egress - Ingress Difference | 流入流出差异 | Egress Rate - Ingress Rate | 否 |

5. Issues——集群存在的问题监控
监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Underreplicated Partition | 正在做复制的partition的数量 | - | 是 |
offline Partitions | 不可用的partition | - | 是 |
Brokers Balance and Performance
监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Request Handler Idle Ratio | 请求处理程序空闲率 | kafka.network:type=Processor, name=IdlePercent,networkProcessor=0 | 否 |
Total Time to Process a Request | 请求处理总时间 | - | 是 |
Replica Count per Broker | 每个broker上副本数量 | 统计 | 否 |
Leader Replica Count per Broker | 每个broker上Leader数量 | - | 是 |
Underreplicated Partition per Broker | 每个broker上不同步的分区 | 统计 | 否 |
二、Consumer Producer Metrics
//TODO:这个我们系统暂时采集不到
三、Hard Disk Usage Metrics——硬盘使用数据
监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
Topic Size | Topic占用空间 | ApiKeys.DESCRIBE_LOG_DIRS | 否 |
Topic Size including Replication | Topic占用空间包含副本 | ApiKeys.ALTER_REPLICA_LOG_DIRS | 否 |
Data Stored per Broker | 每个broker数据存储 | ApiKeys.DESCRIBE_LOG_DIRS ApiKeys.ALTER_REPLICA_LOG_DIRS | 否 |
average record size on topic | Topic单条数据平均大小 | - | 是 |
四、Client Application Monitoringkafka进程的内存、GC这部分有助于我们分析问题
监控项 | 介绍 | 实现 | kafkaAm是否已实现 |
---|---|---|---|
JVM Memory Used | 内存占用 | MemoryMXBean | 否 |
GC | 垃圾回收时间 | GarbageCollectorMXBean | 否 |
CPU | CPU占用 | java.lang:type=OperatingSystem:ProcessCpuLoad java.lang:type=OperatingSystem:ProcessCpuTime | 否 |
Open File Descriptors | 打开文件描述符 | 否 |