【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

 



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

相关文章
|
9月前
|
算法 NoSQL Java
场景题:10亿QQ用户,如何统计在线人数?
在竞争激烈的就业市场中,面试不仅考察八股文、算法和项目经验,场景题也愈发重要。本文介绍Java面试中的“在线人数统计”问题:面对亿级用户,如何高效统计在线人数。传统数据库方案难以应对频繁的上线下线操作带来的IO压力,而使用Bitmap(位数组)或Redis的Bitmap命令则能有效解决这一问题。通过将每个用户的在线状态映射到位数组中,仅需119.2MB内存即可处理10亿用户,在线人数统计变得简单高效。
355 9
|
监控 安全 关系型数据库
精通MySQL:数据库核心技术与应用实践
h3> 一、引言 MySQL作为开源关系型数据库管理系统的佼佼者,凭借其出色的性能、灵活性和稳定性,成为许多企业和开发者的首选
1025 0
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
557 4
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
255 9
|
缓存 负载均衡 安全
介绍一下Nginx的反向代理功能吧
【8月更文挑战第22天】介绍一下Nginx的反向代理功能吧
286 0
|
SQL Java 关系型数据库
SpringBoot 系列 JPA 错误姿势之 Entity 映射
本篇为 JPA 错误使用姿势第二篇,java 的 POJO 类与数据库表结构的映射关系,除了驼峰命名映射为下划线之外,还会有什么别的坑么?
773 0
SpringBoot 系列 JPA 错误姿势之 Entity 映射
|
人工智能 算法 Java
我整理了50道经典Java算法题,直接进了字节跳动!!
最近,很多小伙伴都想进入字节跳动这个快速发展的公司,而字节跳动对于算法的要求比较高。于是乎,有些小伙伴问我能否整理一些基础的算法题,帮助他们提升下基础算法能力。我:没问题啊!于是,经过半个多月的收集和整理,最终输出了这50道经典的Java算法题。
5525 0
|
Java 测试技术 API
Spring Boot中使用Swagger CodeGen生成REST client
Spring Boot中使用Swagger CodeGen生成REST client
|
前端开发 Java 测试技术
SpringBoot测试——高级配置
SpringBoot测试——高级配置
229 0