想象这是我的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
}
}
}
现在我已经将我的prometheus环境连接到/执行器/prometheus
并且工作正常。我希望prometheus读取我的httptrace,所以我还将/执行器/httptrace
添加到我的prometheus配置中。然而这不起作用。httptraceendpoint上的格式是json,prometheus中的格式是yaml,我想我需要prometheus yaml中的httptrace。Prometheus吃yaml很好,json不太好。
如何将httptrace从我的Spring启动项目传递给执行器/prometheus?最后,我的目标是为grafana中的每个请求获取timeT的值。
Spring的HttpTraceRepository将endpoint上但不在prometheus中的最近跟踪公开为百分位数。所以我可以建议两条路径:
HttpTraceRepository
,它包装了您使用的一个(默认为InMemory……),然后覆盖该方法以从[io. microeter.core]触发一些自定义的Timer
,其中包含定时(https://micrometer.io/docs/concepts#_timers),如果您还通过https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.metrics.customizing.per-meter-properties启用,这些定时将被聚合为百分位数最后,我的目标是为grafana中的每个请求获取timeT的值。
http_server_requests_seconds_count
是应用程序在此endpoint收到的请求总数
http_server_requests_seconds_sum
是应用程序在此endpoint收到的每个请求的持续时间之和
这篇很棒的文章解释了如何在普罗米修斯中使用它,https://tomgregory.com/spring-boot-default-metrics/