【问题标题】:Actuator metrics do not include http.server.requests执行器指标不包括 http.server.requests
【发布时间】:2020-06-06 07:14:32
【问题描述】:

我正在尝试从使用 spring boot 2 实现的 api 向 prometheus 公开计时指标。我已经包含了以下依赖项。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>

我通过 spring-cloud-starter-parent Finchley.SR1 管理依赖项,它在 spring-boot-starter-actuator 上提供了 2.0.4.RELEASE 版本,在 micrometer-registry-prometheus 上提供了 1.0.6 版本。

/actuator/prometheus 端点正在工作且可访问,但不包括我需要的指标。当我查看 /acutator/metrics 时,那里没有列出“http.server.requests”指标:

{
    "names": [
        "jvm.memory.max",
        "cache.eviction.weight",
        "cache.gets",
        "process.files.max",
        "jvm.gc.memory.promoted",
        "tomcat.cache.hit",
        "system.load.average.1m",
        "tomcat.cache.access",
        "jvm.memory.used",
        "jvm.gc.max.data.size",
        "jvm.gc.pause",
        "jvm.memory.committed",
        "system.cpu.count",
        "logback.events",
        "tomcat.global.sent",
        "jvm.buffer.memory.used",
        "tomcat.sessions.created",
        "jvm.threads.daemon",
        "system.cpu.usage",
        "jvm.gc.memory.allocated",
        "tomcat.global.request.max",
        "tomcat.global.request",
        "tomcat.sessions.expired",
        "jvm.threads.live",
        "jvm.threads.peak",
        "tomcat.global.received",
        "process.uptime",
        "cache.puts",
        "cache.size",
        "cache.evictions",
        "tomcat.sessions.rejected",
        "process.cpu.usage",
        "tomcat.threads.config.max",
        "jvm.classes.loaded",
        "jvm.classes.unloaded",
        "tomcat.global.error",
        "tomcat.sessions.active.current",
        "tomcat.sessions.alive.max",
        "jvm.gc.live.data.size",
        "tomcat.servlet.request.max",
        "tomcat.threads.current",
        "tomcat.servlet.request",
        "process.files.open",
        "jvm.buffer.count",
        "jvm.buffer.total.capacity",
        "tomcat.sessions.active.max",
        "tomcat.threads.busy",
        "process.start.time",
        "tomcat.servlet.error"
    ]
}

根据文档,以及我在谷歌上可以找到的所有内容,它应该是开箱即用自动配置的指标之一。

我已经尝试过将 spring.metrics.web.server.auto-time-requests 属性设置为 true,并在我正在测试的端点上使用 @Timed 注释,但无论哪种方式我都一无所获。

我发现这个已解决的问题,其中有人有相同的症状,但他们使用的是 spring boot 1.5,他们的问题是我没有的不必要的额外依赖:

Actuator /metrics endpoint does not include http.server.requests

知道什么会导致执行器不公开 http.server.requests 指标吗?

我应该补充一点,我还有 6 项与此类似的其他服务,其中指标按预期工作,所以它只是这 7 项服务中的一项无法正常工作。我不知道这个有什么不同。我什至尝试将其剥离以删除其他六个中不存在的任何依赖项,但这个仍然不会报告该指标。

【问题讨论】:

    标签: spring-boot spring-boot-actuator spring-micrometer


    【解决方案1】:

    您可以在访问任何一个端点后吗?只需从邮递员或您的应用程序中尝试一下,然后检查/metrics 端点。我希望它应该在那里。

    【讨论】:

    • 是的,我总是先向其中一个端点发送一些请求,然后再查看指标是否存在。
    猜你喜欢
    • 2019-11-22
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多