![](/img/trans.png)
[英]How to use Prometheus' JMX exporter java agent to collect custom metrics
[英]exporting custom metrics through prometheus jmx exporter
使用 jmx_exporter 时,我可以在 /metrics 端点上看到 jvm、process、java 等指标,但看不到我通过 JMX 公开的自定义指标。
当我删除代理并添加 jolokia 代理时,我可以在 JSON 格式的 Jolokia 公开端点上毫无问题地看到这些自定义指标。 那证明它存在。
jmx 导出器代理配置
rules:
- pattern: ".*"
我已经浏览过 stackoverflow 和 google 群组。 许多人提出了类似的问题,但我看不到解决方案。 关于为什么这不能按预期工作的任何帮助。
您需要添加一个包含自定义 JMX Bean 对象名称模式的白名单条目。
示例:假设域foo
,然后在顶级 JMXExporter 配置 YAML 中添加以下内容
whitelist: ["foo:*"]
将打印foo
域中 bean 的所有指标。
旁注:我发现在规则集中使用pattern
条目有点棘手,所以我将添加我的发现,以防您遇到这个后续问题。
因此, rules
部分中pattern
条目的模式字符串必须适用于 bean 指标的特定规范化表示(请参阅文档):
domain<beanpropertyName1=beanPropertyValue1, beanpropertyName2=beanPropertyValue2, ...><key1, key2, ...>attrName: value
如果您在规则项中提供pattern
条目,则在JMXCollector.java (第 174-175 行)中使用它来创建正则表达式模式,如下所示
if (yamlRule.containsKey("pattern")) {
rule.pattern = Pattern.compile("^.*(?:" + (String)yamlRule.get("pattern") + ").*$");
}
JMXCollector
使用它来检查您的规则集是否适用于给定的 bean(或以其他方式应用默认的展示格式化程序)。
如果您让它使用默认格式化程序(通过不向rules
部分添加条目),则 JMXExporter 将通过在HELP ...
行中提供规范化格式来帮助您构建模式匹配器。 如果您在没有规则的情况下运行,您可以复制规范化的 bean 度量表示并使用它来定义匹配模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.