繁体   English   中英

通过 prometheus jmx 导出器导出自定义指标

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM