首页 > 解决方案 > 千分尺 - 在度量名称中添加默认前缀

问题描述

在千分尺中,我们可以创建一个新的仪表,做一些类似的事情

myMeterRegistry.gauge("my_metric", 69);

请参阅此处的代码https://github.com/micrometer-metrics/micrometer/blob/master/micrometer-core/src/main/java/io/micrometer/core/instrument/MeterRegistry.java#L468

默认情况下可以为我的myMeterRegistry对象包含一个“前缀”名称吗?

手动,它应该像:

myeterRegistry.gauge("myprefix_my_metric", 69);

我的目标是每个在我的应用程序中创建计量指标的开发人员都不必注意在指标名称的开头添加“myprefix_”

标签: micrometer

解决方案


MeterFilter可以让你这样做(但不要这样做!):

new MeterFilter() {
    @Override
    public Meter.Id map(Meter.Id id) {
      return id.withName("myprefix." + id.getName());
    }
}

然而,一个常见的前缀通常是一种不正确的维度。通常用户会尝试添加区域、主机或应用程序的名称作为前缀。这些最好作为标签提供,因为那时您可以跨系统聚合并使用通用仪表板。

推荐的commonTags方法:

registry.config().commonTags("team", "myteam", "region", "us-east-1");

对于分层计量注册表,标签将作为前缀包含在名称中。


推荐阅读