【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

 



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

相关文章
|
应用服务中间件 nginx
|
消息中间件 数据可视化 NoSQL
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
8035 0
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
|
网络协议 物联网 网络安全
|
前端开发 Java 调度
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
定时任务几乎是每个业务系统必不可少的功能,计算到期时间、过期时间等,定时触发某项任务操作。在使用单体应用时,基本使用Spring提供的注解即可实现定时任务,而在使用微服务集群时,这种方式就要考虑添加分布式锁来防止多个微服务同时运行定时任务而导致同一个任务重复执行。
2476 55
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
|
Java 中间件 调度
SpringBoot整合XXL-JOB【03】- 执行器的使用
本文介绍了如何将调度中心与项目结合,通过配置“执行器”实现定时任务控制。首先新建SpringBoot项目并引入依赖,接着配置xxl-job相关参数,如调度中心地址、执行器名称等。然后通过Java代码将执行器注册为Spring Bean,并声明测试方法使用`@XxlJob`注解。最后,在调度中心配置并启动定时任务,验证任务是否按预期执行。通过这些步骤,读者可以掌握Xxl-Job的基本使用,专注于业务逻辑的编写而无需关心定时器本身的实现。
5363 10
SpringBoot整合XXL-JOB【03】-  执行器的使用
|
消息中间件 Prometheus 监控
使用jmx exporter采集kafka指标
使用jmx exporter采集kafka指标
946 4
|
搜索推荐 算法 Java
sort-06-shell sort 希尔排序算法详解
这是一个关于排序算法的系列文章摘要。文章汇总了各种排序算法,包括冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、计数排序、桶排序以及大文件外部排序。特别地,希尔排序是一种改进的插入排序,通过使用不同的步长对元素进行分组排序,以提高效率。算法最终以较小的步长进行排序,接近线性时间复杂度。文章还提供了Java代码实现,并举例说明了希尔排序的过程。所有内容可在开源项目[https://github.com/houbb/sort](https://github.com/houbb/sort)中找到。
|
Java Linux 测试技术
JMeter和plugins-manager安装教程
JMeter和plugins-manager安装教程
2273 0
JMeter和plugins-manager安装教程
|
算法 安全 前端开发
从零玩转前后端加解密之SM2
从零玩转前后端加解密之SM2
863 0
|
XML 数据可视化 Java
Android开发Jetpack从入门到精通教程
前言 即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇。
Android开发Jetpack从入门到精通教程