仅显示java成功/失败度量的失败计数

jc3wubiy  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(449)

关于如何在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");
            Counter.builder("theCounter").tags("FAIL", "FAIL").register(meterRegistry).increment();
            return "fail";
        }
    }

正如你所看到的,它非常简单,只是一个“如果满足条件,增加良好计数器,如果不满足,增加失败计数器”
我感兴趣的是只为故障构建 Jmeter 板。
当我询问我的 /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}}

但是没有运气。请问我错过了什么?

xriantvc

xriantvc1#

例如,在此情况下仅创建一个计数器,并为其指定一个名为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 显示其数据,图例负责用不同的状态标签值分隔值/图形。
查询: myCounter_total 图例: {{status}}

相关问题