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

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

关于如何在grafana中的java计数器的特定条件下构建可视化的小问题。
目前,我有一小段简单的java代码。

  1. private String question(MeterRegistry meterRegistry) {
  2. if (someCondition()) {
  3. Counter.builder("theCounter").tags("GOOD", "GOOD").register(meterRegistry).increment();
  4. return "good";
  5. } else {
  6. LOGGER.warn("it is failing");
  7. Counter.builder("theCounter").tags("FAIL", "FAIL").register(meterRegistry).increment();
  8. return "fail";
  9. }
  10. }

正如你所看到的,它非常简单,只是一个“如果满足条件,增加良好计数器,如果不满足,增加失败计数器”
我感兴趣的是只为故障构建 Jmeter 板。
当我询问我的 /prometheus 我成功看到的端点:

  1. myCounter_total{FAIL="FAIL",} 7.0
  2. myCounter_total{GOOD="GOOD",} 3.0

因此,我开始使用这个查询。

  1. myCounter_total{_ws_="workspace",_ns_="namespace",_source_="source}

不幸的是,这个查询让我看到了一切,好的和坏的。在我的示例中,我看到了所有10个计数器,而我只想看到7个失败。
我试着把

  1. myCounter_total{FAIL="FAIL",_ws_="workspace",_ns_="namespace",_source_="source}
  2. {{FAIL}}

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

xriantvc

xriantvc1#

例如,在此情况下仅创建一个计数器,并为其指定一个名为status的标签。现在,根据是发生良好还是失败条件,使用字符串递增计数器 "GOOD""FAIL" 作为状态标签的值,例如,与此伪代码类似:

  1. Counter myCounter =
  2. Counter.build().name("myCounter").help("This is my counter").labelNames("status").register();
  3. if (someCondition()) {
  4. myCounter.labels("GOOD").increment();
  5. } else {
  6. myCounter.labels("FAIL").increment();
  7. }

现在您应该可以看到如下查询输出:

  1. myCounter_total{status="FAIL"} 7.0
  2. myCounter_total{status="GOOD"} 3.0

为了可视化的目的,如果你想看到两个图表,一个是好的,一个是坏的,你可以使用下面的东西。这是一个查询 myCounter_total 显示其数据,图例负责用不同的状态标签值分隔值/图形。
查询: myCounter_total 图例: {{status}}

展开查看全部

相关问题