弹簧测微计的计数注释可以忽略标签吗



我在应用程序中使用Spring千分尺将度量流传输到Prometheus。我有一个要求,我需要在@Counted注释的标签内发送一个唯一的id和错误代码。它是否可能忽略id并仅根据错误代码计数?

我的代码被剪切-

@Counted(name = "my_metric",
labels = {"error_code:$0", "unique_id:$1"})

我正在经历的/prometheus端点-

my_metric_total{error_code="test-1",unique_id="id-1"} 1.0
my_metric_total{error_code="test-1",unique_id="id-2"} 1.0

我想要通过/普罗米修斯端点-

my_metric_total{error_code="test-1",unique_id="id-1"} 1.0
my_metric_total{error_code="test-1",unique_id="id-2"} 2.0

增量应仅基于error_code进行。这可能使用@Counted注释吗?

这是不可能的,因为仪表是">通过其名称和尺寸唯一地标识";这意味着度量名称和标记构成了度量的一个单独实例,因此当您查询prometheus端点时,它将有两个条目。

根据您试图实现的目标,您可以在其他地方汇总不同的指标(例如Grafana(。

一个示例,使用PromQLsum by (error_code)...中的sum,它将为您提供聚合值。

最新更新