java - 仅显示 Java 成功/失败指标的失败计数
问题描述
关于如何在 Grafana 中的 Java 计数器的特定条件下构建视觉效果的快速问题。
目前,我有一小段java代码,很简单。
private String question(MeterRegistry meterRegistry) {
if (someCondition()) {
Counter.builder("theCounter").tags("GOOD", "GOOD").register(meterRegistry).increment();
return "good";
} else {
LOGGER.warn("it is failing, we should increment failure");
Counter.builder("theCounter").tags("FAIL", "FAIL").register(meterRegistry).increment();
return "fail";
}
}
如您所见,它非常简单,只是一个“如果满足条件,则递增 GOOD 计数器,如果不满足,则递增 FAIL 计数器”
我有兴趣仅为失败构建仪表板。
当我查询我的/prometheus
端点时,我成功地看到:
myCounter_total{FAIL="FAIL",} 7.0
myCounter_total{GOOD="GOOD",} 3.0
因此,我开始使用这个查询。
myCounter_total{_ws_="workspace",_ns_="namespace",_source_="source}
不幸的是,这个查询让我看到了一切,好的和失败的。在我的示例中,我看到了所有 10 个计数器,而我只想看到 7 个失败。
我试着把
myCounter_total{FAIL="FAIL",_ws_="workspace",_ns_="namespace",_source_="source}
{{FAIL}}
但没有运气。请问我错过了什么吗?
解决方案
例如,只为这种情况创建一个计数器并为其指定一个名为status的标签。现在,根据是出现好还是失败条件,用字符串"GOOD"
或"FAIL"
作为状态标签的值来增加计数器,例如在这个伪代码中:
Counter myCounter =
Counter.build().name("myCounter").help("This is my counter").labelNames("status").register();
if (someCondition()) {
myCounter.labels("GOOD").increment();
} else {
myCounter.labels("FAIL").increment();
}
现在您应该可以看到这样的查询输出:
myCounter_total{status="FAIL"} 7.0
myCounter_total{status="GOOD"} 3.0
出于可视化目的,如果您想查看两张图表,一张表示好的情况,一张表示坏的情况,您可以使用如下所示的内容。这个查询查询myCounter_total
揭示了它的数据,而 Legend 负责分离具有不同状态标签值的值/图。
询问:myCounter_total
传奇:{{status}}
推荐阅读
- mysql - A connection attempt failed because the connected party did not properly respond after a period of time - VB
- apl - 是否曾经有一个 APL-ASCII 音译方案获得了重大采用?
- sql-server - T-SQL 使用触发器或函数创建自定义列
- webpack - 在 webpack 配置中禁用部分 babelrc
- gradle - 如何在 Raspberry Pi 上运行 JavaFX 11 应用程序?
- c++ - 从数组中删除条目
- r - 使用 R 从 NetCDF4 文件访问大型数据集
- apache - apache httpd端口8009后面的Docker tomcat未连接
- excel - EXCEL / POWERQUERY / VBA - 合并两个具有多个整体的表
- javascript - 使用 fetch 在 POST 请求上重新加载页面