如何在Application Insights中查询运行于Azure VM的Kafka监控指标
Kafka对接Azure Application Insights相关问题解答
一、Kafka依赖自动采集机制工作逻辑
- 该方案使用的Azure Monitor Java进程内代理基于OpenTelemetry Java Instrumentation实现,会在Kafka对应的JVM进程类加载阶段通过字节码增强技术无侵入植入埋点逻辑,全程不需要修改Kafka本身的源码或配置。
- 代理内置了Kafka服务端、生产者、消费者的全链路匹配规则,会自动采集Kafka核心操作的调用数据:包括生产者消息发送、消费者消息拉取、Broker副本同步、请求处理等链路的耗时、执行状态、消息大小、关联Topic、节点ID等元数据。
- 采集到的所有数据会自动补全链路上下文后,统一上报到Application Insights后端做聚合存储。
二、Kafka对应指标的查看位置
- 性能面板:打开Application Insights控制台左侧「性能」菜单,系统会自动分类出Kafka相关的请求/依赖操作,可按操作类型(比如
kafka.send、kafka.receive)筛选,查看调用量、平均耗时、错误率等聚合指标。 - 日志面板:打开左侧「日志」菜单,执行KQL查询
dependencies | where type == "Kafka"即可获取所有Kafka相关的依赖调用原始数据,也可自定义做维度聚合分析。 - 指标面板:打开左侧「指标」菜单,在
azure.applicationinsights命名空间下可找到代理预采集的Kafka指标项,直接生成可视化图表或配置告警规则。
三、获取JMX指标的objectName和attribute的方法
- 你可以直接用JDK自带的
jconsole或jvisualvm工具,连接到运行Kafka的JVM进程,切换到MBean标签页:- 在MBean目录树中找到
kafka分类,分类下会按Broker、Topic、Producer、Consumer、网络、控制器等功能维度拆分所有可用的MBean对象 - 点击你需要采集的目标MBean,右侧详情页会直接展示完整的
objectName字符串,以及该MBean下所有可用的属性(attribute)列表和实时值,直接复制对应内容到Java代理的JSON配置文件的JMX指标配置项即可。
- 在MBean目录树中找到
- 示例配置参考:
{ "jmxMetrics": [ { "objectName": "kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec", "attribute": "Count", "display": "kafka_broker_messages_in_total" } ] }
内容的提问来源于stack exchange,提问作者Frances Coetzer
相关产品推荐
相关产品推荐

