gpt4 book ai didi

spring - 如何使用 Spring-Boot 的 RestTemplate 在 uri 标记中获取 http-client-requests 指标的模板化值?

转载 作者:行者123 更新时间:2023-12-04 00:23:22 25 4
gpt4 key购买 nike

我们使用的是 Spring Boot 2.1.4 和 micrometer-registry-prometheus依赖来捕获指标。

我们有一个 Spring Boot 服务使用 RestTemplate 调用另一个服务的情况。此调用生成的指标包含 URI 中的实际值,而不是模板化值。

例如,在 /actuator/prometheus端点,我看到这样的条目:
http_client_requests_seconds_count{clientName="someClient",method="GET",status="200",uri="/person/lookup?firstName=Tony&lastName=Soprano",} 1.0
根据文档,我希望看到变量名称而不是值,如下所示:
http_client_requests_seconds_count{clientName="someClient",method="GET",status="200",uri="/person/lookup?firstName={firstName}&lastName={lastName}",} 1.0
有没有办法获得默认值 http.client.requests度量值以使用 URI 标记的模板化值?

Spring 文档位于 https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-metrics-http-clients关于 uri 标签是这样说的:

Request’s URI template prior to variable substitution, if possible (for example, /api/person/{id})



我们如何使变量替换成为可能?

最佳答案

我假设您正在使用 RestTemplateBuilder建立您的 RestTemplate否则,您将无法注册指标。

你真的把模板化的 url 传递给 RestTemplate s 交换方法并传递参数以进行替换?为我工作 2.1.4.RELEASE2.2.1.RELEASE .

    template.getForObject("http://localhost:" + this.serverPort + "/hello/{id}",
String.class, Collections.singletonMap("id", "loop"));

结果是:
http_client_requests_seconds_count{application="micrometered2",clientName="localhost",method="GET",outcome="SUCCESS",status="200",uri="/hello/{id}",} 23.0

关于spring - 如何使用 Spring-Boot 的 RestTemplate 在 uri 标记中获取 http-client-requests 指标的模板化值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58942924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com