提问者:小点点

如何在执行器prometheus中导入执行器httptrace?(执行器,Spring启动,grafana)


想象这是我的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的值。


共1个答案

匿名用户

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

  1. 您实现自己的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/