如何使用不同标签对多个指标名称使用相同的 Counter 对象

Har*_*ary 5 micrometer spring-micrometer

我想记录多个指标名称的计数,例如 metricA、metricB、metricC 等等。一种选择是创建多个计数器对象,如下所示

Counter
.builder("metricA")
.register(registry);
Run Code Online (Sandbox Code Playgroud)

然而,这会导致很多我不喜欢的对象。

我想知道是否有一种方法可以使用相同的计数器对象并记录多个指标的计数。

有没有办法创建计数器,然后动态创建标签来获取相同的计数器对象并分别增加这些标签?

这个想法是在监控工具中使用相同的度量(仪表),并在同一图表中的标签周围进行分离。

或者是否有办法创建一个带有 10 个标签的计数器并一次增加一个标签?

mwe*_*uch 7

Micrometer 中的仪表通过其唯一的名称和标签组合来标识。仪表保存一种或多种度量数据类型,以公开特定于该仪表的一种或多种度量。例如,计数器仅保存一种数据类型:出现次数的计数。其他一些仪表(例如计时器)公开了多个指标。至少有一个计数、一个总和和一个滚动最大值。

在您的情况下,您不能使用计数器来记录多个/不同的计数。

因此,如果您有一个属于在一起的指标系列,您可以按相同的计量名称对它们进行“分组”,但为它们提供一个具有特定值的标签,以推断不同的“系列成员”(向下钻取)。(或者不通过仅推理没有标签的指标名称 - 如果您的监控解决方案允许这样做。)

例如

myops{op=foo}
myops{op=bar}
myops{op=baz}
Run Code Online (Sandbox Code Playgroud)