我有一个springboot Kotlin web服务,它使用Actuator (spring-boot-starter-actuator)和测微器(micrometer-registry-prometheus)向prometheus scraper公开指标。
为了监控队列中操作的大小,我使用了一个自定义的量规
val gauge = Gauge.build()
.name("operation_queue_size")
.help("Size of queue")
.register(collectorRegistry)
# later
gauge.inc()
# or
gauge.dec()我想通过添加一个表示队列中操作类型的标记来改进这个指标,但在Builder类上找不到任何合适的方法。
我们的目标是公开一个度量标准,比如:
operation_queue_size{op_type="deletions"} 999
operation_queue_size{op_type="insertions"} 999谢谢。
发布于 2020-03-26 21:27:24
我找到了解决方案:
val gauge = Gauge.build()
.name("ic_queue_size")
.help("Size of queue")
.labelNames("op_type")
.register(collectorRegistry)
# later
gauge.labels("deletions").inc()
# or
gauge.labels("deletions").dec()之所以很难找到,是因为这个库使用了术语labels,而普罗米修斯的文档将它们称为tags
发布于 2020-12-11 01:46:11
创建仪表盘有两种方法:
千分尺芯
使用测微仪,您可以从要检查的对象方法创建仪表盘,例如from baeldung
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
List<String> list = new ArrayList<>(4);
Gauge gauge = Gauge
.builder("cache.size", list, List::size)
.tags("example", "list size")
.register(registry);它接受一个字符串"cache.size"作为仪表的名称,一个对象list和一个lambda (() -> ),这里是list::size。多亏了这一点,仪表将会更新。
然后仪表每次都会自动更新(这里是一个带有断言的示例,其值是什么):
assertEquals(0.0, gauge.value());
list.add("1");
assertEquals(1.0, gauge.value());普罗米修斯客户端
对于prometheus sdk,它是:
import io.prometheus.client.CollectorRegistry;
import io.prometheus.client.Gauge;
Gauge gauge = Gauge.build()
.build("cache.size", "size of the cache")
.labelNames("type")
.register(collectorRegistry);但是,您需要手动更改仪表值:
# Increase
gauge.labels("list size").inc();
# Decrease
gauge.labels("list size").dec();
# Set value
gauge.labels("list size").set(list.size());现在你有选择了。
https://stackoverflow.com/questions/60868142
复制相似问题