在单独的服务中使用时千分尺不起作用

问题描述 投票:0回答:1

目前,我有 2 个定制弹簧制品 -

metrics-util
web-utils
。 metrics-util 包含与测量指标相关的所有功能,例如用于计算所有其余控制器的指标的网络过滤器。 Web-utils 使用metrics-util 中的一些函数来测量函数内的指标。

我的主 spring 程序调用其中的 web-utils 函数。我使用相同的名称和不同的标签。我面临的问题是我可以在

/actuator/metrics/{metric_name}
看到指标和不同的标签,但只有指标名称的第一个实例显示在 Prometheus 抓取的端点处。

千分尺版本:

implementation 'io.micrometer:micrometer-core:1.12.3'
implementation 'io.micrometer:micrometer-registry-prometheus:1.12.3'

我的注册表配置:

@Configuration
@ComponentScan(basePackages = ["co.hyperface.ark.metricsutil.*"])
class BaseMetricsConfig {

    @Bean
    MeterRegistry meterRegistry() {
        return new PrometheusMeterRegistry(PrometheusConfig.DEFAULT)
    }
}

我如何在我的程序中注入:

class MetricsUtil {

    private MeterRegistry meterRegistry

    @Autowired
    MetricsUtil (MeterRegistry meterRegistry) {
        this.meterRegistry = meterRegistry
    }
}

预期结果:

对于任何端点,web-filter 首先被激活,因此它的

callcount{call_type='rest_controller'}
必须增加,然后因为我在该控制器内调用 web-utils 函数,所以调用
callcount{call_type='external'}
必须增加。

但在抓取端点我只得到

callcount{call_type='rest_controller'}
。但我可以在
/actuator/metrics/callcount
看到他们两个 预先感谢。

spring-boot metrics micrometer spring-micrometer
1个回答
0
投票

metrics-util 包含与测量指标相关的所有功能,例如用于计算所有其余控制器指标的网络过滤器。 Web-utils 使用metrics-util 中的一些函数来测量函数内的指标。

您知道如果添加 Spring Boot Actuator,您将免费获得它吗?

我使用相同的名称和不同的标签。我面临的问题是我可以在 /actuator/metrics/{metric_name} 中看到指标和不同的标签,但只有指标名称的第一个实例显示在 Prometheus 抓取的端点处。

Prometheus 服务器不鼓励这样做,而 Prometheus 客户端则不可能这样做。请不要这样做。如果标签不同,则它是不同的指标。如果相同,标签也应该相同。如果您没有值或不知道值,您可以随时使用

null
none
na
unknown

解决方案:您可以删除“metrics-util”和“web-utils”,添加 Spring Boot 执行器来完成这一切(请参阅

http_server_requests
metric)。

© www.soinside.com 2019 - 2024. All rights reserved.