如何在执行器普罗米修斯中导入执行器 httptrace?(执行器,弹簧靴,格拉法纳)



想象一下这是我 http://localhost:8080/actuator

{
"_links": {
"self": {
"href": "http://localhost:8080/actuator",
"templated": false
},
"health": {
"href": "http://localhost:8080/actuator/health",
"templated": false
},
"prometheus": {
"href": "http://localhost:8080/actuator/prometheus",
"templated": false
},
"httptrace": {
"href": "http://localhost:8080/actuator/httptrace",
"templated": false
}
}
}

现在我已经将我的普罗米修斯环境连接到/actuator/prometheus并且工作正常。我希望普罗米修斯读取我的httptrace,所以我也在我的普罗米修斯配置中添加了/actuator/httptrace。但是,这不起作用。httptrace 端点上的格式是 json,prometheus 中的格式是 yaml,我想我需要 prometheus yaml 中的 httptrace。普罗米修斯吃山药就好了,杰森吃得不多。

如何将我的 httptrace 从我的 Spring 引导项目传递给执行器/普罗米修斯?最后,我的目标是在grafana中获取每个请求的timeTake值。

Spring 的 HttpTraceRepository 将端点上最近的跟踪公开,但不将 prometheus 中的跟踪作为百分位数。所以我可以建议两条路径:

  1. 您实现自己的HttpTraceRepository来包装您使用的(默认为 InMemory...),然后覆盖该方法以使用计时 (https://micrometer.io/docs/concepts#_timers) 从 [io.micrometer.core] 触发一些自定义Timer,如果您还通过 https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.metrics.customizing.per-meter-properties 启用,这些将被聚合为百分位数

最后,我的目标是在grafana中获取每个请求的timeTake值。

  1. 只需使用每个端点捕获的http_server_requests_seconds_*(不是请求)

http_server_requests_seconds_count
是应用程序在此终结点收到的请求总数

http_server_requests_seconds_sum
是应用程序在此终结点收到的每个请求的持续时间的总和

这篇很棒的文章解释了如何在普罗米修斯中使用它,https://tomgregory.com/spring-boot-default-metrics/

最新更新