【Azure Application Insights】配置 JMX 指标无法收集到参数的情况

简介: 在使用 Application Insights Java 3.x 收集 JMX 指标时,若无法收集到数据且程序无报错,通常是由于不同 Java 版本中 JMX 的属性名称不同所致。确保配置正确的 `name` 和 `attribute` 值至关重要。对于 GC 相关指标,建议参考特定配置,并使用 JMXTerm 工具查看当前环境中的 JMX 指标值,以确认属性名称的准确性。详细配置和解决方法可参见官方文档及 troubleshooting 指南。

问题描述

使用 Application Insights Java 3.x 收集 Java 管理扩展 (JMX) 指标, 根据文档在 applicationinsights.json 文件中添加 "jmxMetrics" 部分,并添加如下内容:

"jmxMetrics": [
    {
      "name": "Demo - G1 Collection Count Young",
      "objectName": "java.lang:name=G1 Young Generation,type=GarbageCollector",
      "attribute": "CollectionCount"
    },
    {
      "name": "Demo - G1 Collection Count Old",
      "objectName": "java.lang:name=G1 Old Generation,type=GarbageCollector",
      "attribute": "CollectionCount"
    },
    {
      "name": "Demo - Thread Count",
      "objectName": "java.lang:type=Threading",
      "attribute": "ThreadCount"
    }
  ]

但结果无法收集到数据,程序执行并没有报错。这是什么情况呢?


问题解答

正如在文档中提到的,必须要配置正确的Name 和 Attribute 值才能收集到JMX指标。而当前遇到的问题是由于不同java版本中的相关的attirbute名称不同导致

 

如果是收集 GC 相关的JMX指标可参考如下配置:

"jmxMetrics": [
      {
        "name": "Demo - G1 young gen",
        "objectName": "java.lang:name=G1 Young Generation,type=GarbageCollector",
        "attribute": "CollectionTime"
      },
      {
        "name": "Demo - G1 old gen",
        "objectName": "java.lang:name=G1 Old Generation,type=GarbageCollector",
        "attribute": "CollectionTime"
      }
]

 

而如果想知道当前Java版本中的java.lang 的参数名和属性值,可以通过下文:

 

下载 JMXTerm 然后参考文章( https://github.com/microsoft/ApplicationInsights-Java/wiki/Troubleshoot-JMX-metrics )来查看当前环境中的JMX指标值。

 

 

 

参考资料

配置 JMX 指标:https://learn.microsoft.com/zh-cn/azure/azure-monitor/app/java-jmx-metrics-configuration#where-do-i-find-the-jmx-metrics-in-application-insights

 



当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
消息中间件 数据可视化 NoSQL
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
7886 0
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
|
前端开发 Java 调度
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
定时任务几乎是每个业务系统必不可少的功能,计算到期时间、过期时间等,定时触发某项任务操作。在使用单体应用时,基本使用Spring提供的注解即可实现定时任务,而在使用微服务集群时,这种方式就要考虑添加分布式锁来防止多个微服务同时运行定时任务而导致同一个任务重复执行。
2389 55
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
|
Java 中间件 调度
SpringBoot整合XXL-JOB【03】- 执行器的使用
本文介绍了如何将调度中心与项目结合,通过配置“执行器”实现定时任务控制。首先新建SpringBoot项目并引入依赖,接着配置xxl-job相关参数,如调度中心地址、执行器名称等。然后通过Java代码将执行器注册为Spring Bean,并声明测试方法使用`@XxlJob`注解。最后,在调度中心配置并启动定时任务,验证任务是否按预期执行。通过这些步骤,读者可以掌握Xxl-Job的基本使用,专注于业务逻辑的编写而无需关心定时器本身的实现。
5082 10
SpringBoot整合XXL-JOB【03】-  执行器的使用
|
消息中间件 Prometheus 监控
使用jmx exporter采集kafka指标
使用jmx exporter采集kafka指标
884 4
|
Java Linux 测试技术
JMeter和plugins-manager安装教程
JMeter和plugins-manager安装教程
2199 0
JMeter和plugins-manager安装教程
|
SQL 监控 Java
【Spring Boot 快速入门】十七、Spring Boot 集成XXL-JOB分布式任务调度平台
【Spring Boot 快速入门】十七、Spring Boot 集成XXL-JOB分布式任务调度平台
2593 0
【Spring Boot 快速入门】十七、Spring Boot 集成XXL-JOB分布式任务调度平台
|
16天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5848 30
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
1天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
559 134
|
10天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1174 2