java - 需要更改通过 JMX 公开的指标的名称
问题描述
我的 JMX 导出器类:
private static final String HEALTHDOMAIN = "com.xyz.abc:ContainerName=healthcheck";
private final MBeanExporter exporter;
public void registerHelathMbean(Object healthMbean, String entity) {
try {
this.exporter.registerManagedResource(healthMbean, new ObjectName(String.format("%s,entity=%s", HEALTHDOMAIN, entity)));
}
}
我的公制类:
import org.springframework.boot.actuate.health.Status;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedResource;
@ManagedResource()
public class MongoHealthMetric extends SimpleGauge {
public MongoHealthMetric(double value) {
super(value);
}
public void setValue(Status status) {
super.setValue(status.equals(Status.UP) ? 0.0 : 1.0);
}
@Override
@ManagedAttribute
public Double getValue() {
return super.getValue();
}
}
当我最终通过 Java 代理通过 JMX 导出指标时-
我得到的指标名称:com_xyz_abc_healthcheck_Value{entity="mongo"} 0.0
我想要的指标名称:healthcheck{entity="mongo"} 0.0
我已尝试多次调整 HEALTHDOMAIN,但找不到正确的域来获取上述指标名称。
解决方案
推荐阅读
- java - 如何在 Java 中调用 api?
- ios - 使用 PHPhotoLibrary 保存图片和视频时如何获取 Asset URL?
- css - 指示浏览器更喜欢打破增加父母的宽度
- python-3.x - 使用 Python Factor_Analyzer 进行因子分析
- process - 从 azure app service 执行进程
- android - 未加载 Android 语言环境文件
- google-colaboratory - Google 协作显示磁盘半满,而文件资源管理器中没有文件
- amazon-web-services - 如何在 AWS S3 中部署 ml 模型,从另一个 S3 获取输入并输出预测?
- design-patterns - 选择正确的 Flutter 设计模式
- mysql - 创建混合数字和字母主键