使用jmx_exporter时,我可以在/ metrics端点上看到jvm,process,java等指标,但不能查看通过JMX公开的自定义指标。
当我删除代理并添加jolokia代理时,我可以在Jolokia的公开端点上以JSON格式看到这些自定义指标,而不会出现问题。证明存在。
jmx出口商代理配置
sentence_translations
我通过stackoverflow和google组进行了搜索。许多人提出了类似的问题,但我看不到解决方案。 任何有关为何无法按预期工作的帮助。
答案 0 :(得分:0)
您需要添加白名单条目,其中包含用于自定义JMX Bean对象名称的模式。
示例:假定域为foo
,然后将以下内容添加到您的JMXExporter配置YAML的最顶层
whitelist: ["foo:*"]
将打印foo
域中Bean的所有度量标准。
边注:我发现处理规则集中的pattern
项有点棘手,因此,如果您遇到后续问题,我将添加我的发现。
因此,pattern
部分中rules
项的模式字符串必须适用于bean度量标准(see documentation)的特定规范化表示形式:
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(或者适用于默认的博览会格式化程序)。
如果您允许JMXExporter使用默认格式设置器,请在HELP ...
行中提供规范化的格式,以帮助您构建模式匹配器(通过 not rules
部分)。如果不进行任何规则运行,则可以复制规范化的Bean度量表示形式,并使用它来定义匹配的模式。