Apache Kafka是由LinkedIn开发的开源,容错,基于发布-订阅的消息传递系统。Kafka是一种分布式日志服务,由于其更高的吞吐量,可伸缩性,可靠性和复制性,通常被用来代替传统的消息broker。
Apache Kafka是数据集成的一种完美选择,包含快速且高度可扩展的功能。Kafka节点以弹性方式创建和删除;一个节点实时处理来自数千个客户端的数百次读/写。数据流分为多个分区,并分布在不同的broker上。Kafka技术细节延伸极其广泛,为此,拥有强大的Kafka监控软件对于解决问题和优化性能至关重要。
Applications Manager的 Kafka性能监控旨在帮助管理员收集Kafka指标,管理集群并就潜在问题自动向其发出告警。让我们看看监控Kafka所需要看到的内容以及通过Applications Manager收集的性能指标:
支持的版本:版本0.7.0至0.10.0.1
使用REST API创建新的Kafka监视器: 点击此处
要创建Apache Kafka Monitor,请执行以下步骤:
注意:
如果启用JMX后仍无法添加监视器,请尝试提供以下参数:
-Djava.rmi.server.hostname = [YOUR_IP]
通过点击监视器选项卡,转到监视器类别视图。在中间件/Portal表下点击Apache Kafka。显示的是Apache Kafka批量配置视图,分布在三个选项卡中:
Applications Manager的Kafka性能监控可基于以下选项卡中列出的指标提供对Kafka服务器的完全可见性:
参数 | 描述 |
---|---|
内存详情 | |
Total Physical Memory Size | 物理内存总量(以兆字节为单位)。 |
Free Physical Memory Size | 可用物理内存量(以兆字节为单位)。 |
Committed Virtual Memory Size | 保证正在运行的进程可用的虚拟内存量(以兆字节为单位)。 |
Total Swap Space Size | JVM保留的虚拟内存的总大小。 |
Free Swap Space Size | 可用虚拟内存大小。 |
线程详情 | |
Daemon Thread Count | 当前正在运行的守护程序线程数。 |
Peak Thread Count | 自Java虚拟机启动或重置峰值以来的活动线程峰值。 |
Live Thread Count | 当前正在运行的活动线程数。 |
Total Started Thread Count | 自Java虚拟机启动以来创建和启动的线程总数。 |
堆和非堆内存详细信息 | |
NonHeapMemoryUsage | 当前正在使用的非堆内存。 |
HeapMemoryUsage | 当前正在使用的堆内存。 |
在Kafka集群中,其中一个broker充当控制器,它负责管理分区和副本的状态,并执行诸如重新分配分区之类的管理任务。
参数 | 描述 |
---|---|
Kafka控制器详细信息 | |
Active Controller Count | 集群中活动控制器的数量。 |
Offline Partitions Count | 不可用分区的数量。 |
Leader Election Rate | leader elections的比率。 |
Unclean Leader Election Rate | Unclean Leader Election Rate |
参数 | 描述 |
---|---|
日志详细信息 | |
Log Flush Rate | 异步磁盘日志刷新率。 |
Broker主题指标 | |
Bytes In/Min | 每分钟的总传入字节速率(此broker上写入主题的数据量)。 |
Bytes Out/Min | 每分钟的总传出字节速率。 |
Bytes Rejected/Min | 每分钟broker拒绝的消息中的数据量。 |
Failed Fetch Requests/Min | broker每分钟针对该主题未能处理的来自使用者的数据读取请求数。 |
Failed Produce Requests/Min | 来自生产者的失败请求数。 |
Messages In/Min | 进入Kafkabroker的消息数。 |
复制管理器 | |
IsrExpands/Min | 同步中副本扩展的数量。(如果broker关闭,则某些分区的ISR将缩小。当该broker再次启动时,一旦完全获取副本,ISR将被扩展)。 |
IsrShrinks/Min | 同步副本的数量减少。(如果broker发生故障,则某些分区的ISR将缩小。当该broker再次发生故障时,一旦完全获取副本,ISR将被扩展)。 |
Leader Count | 特定主机作为领导者的分区数。 |
Partition Count | 集群中的分区数。 |
Under Replicated Partitions | 这表明集群中的分区数量未充分复制。 |
Request Handler Avg Idle Percen | 请求处理程序线程空闲的平均时间百分比。 |
参数 | 描述 |
---|---|
请求处理率 | |
Request Produce/Min | 在此broker上写入主题的消息数。 |
Request Fetch Consumer/Min | 用户从此broker程序上的此主题获取的数据量。 |
Request Fetch Follower/Min | 来自作为分区跟随者的broker的请求以获取新数据。 |
所需时间 | |
Total Time Produce/Min | 满足指定请求的总时间。 |
Total Time Fetch Consumer/Min | 使用者从此broker上的该主题中获取数据的总时间。 |
Total Time Fetch Follower/Min | 分区获取新数据所花费的总时间 |
网络处理器速率 | |
Network Processor Avg Idle Percent/Min | 每分钟网络处理器的平均可用容量。 |
参数 | 描述 |
---|---|
主题详情 | |
Topic Name | 指定主题名称。 |
Bytes in/Min | 每分钟的总传入字节速率(此broker上写入主题的数据量)。 |
Bytes Out/Min | 每分钟的总传出字节速率。 |
Failed Fetch Requests/Min | 每分钟失败的提取请求总数。 |
Failed Produce Requests/Min | 失败的生产者请求总数。 |
Messages In/Min | 进入Kafkabroker的消息数。 |
参数 | 描述 |
---|---|
储存详情 | |
Boot Class Path | 引导类加载器用来搜索类文件的引导类路径。 |
Class Path | 系统类加载器用来搜索类文件的Java类路径。 |
Spec Vendor | 此产品实现的JMX规范的供应商。 |
Spec Version | 该产品实现的JMX规范版本。 |
VM Name | Java虚拟机名称。 |
VM Vendor | Java虚拟机实施供应商。 |