【问题标题】:How to stop publishing metrics but still keep accessible under /metrics in spring boot micrometer?如何停止发布指标但仍可在 Spring Boot 千分尺中的 /metrics 下访问?
【发布时间】:2018-07-29 13:55:49
【问题描述】:

我想继续收集jvm 和其他指标,但不想将它们全部推送到 cloudwatch 或 prometheus(或其他任何东西)。

如果我喜欢这个

@Bean
MeterRegistryCustomizer<MeterRegistry> customizer() {
    return (registry) -> registry.config()
        .meterFilter(MeterFilter.denyNameStartsWith("jvm"));
}

它停止发布到 cloudwatch,但与此同时,指标也从 /actuator/metrics/ 消失了。

无论如何我可以让它们在/actuator/metrics/ 下访问,但停止将它们推送到远程指标收集器?

【问题讨论】:

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


    【解决方案1】:

    如果您正在寻找如何公开 Spring Boot Actuator metrics 端点但不将指标发布到任何远程计量注册表(如 Prometheus),只需添加 org.springframework.boot:spring-boot-starter-actuator 而无需任何监控系统特定依赖项(如 io.micrometer:micrometer-registry-prometheus)即可.这是a working sample

    但是,基于the project owner's comment,端点仅用于诊断目的,因此您应该使用监控系统特定仪表注册表之一进行监控,如下所示:

    执行器端点充其量只是一个玩具,一个诊断工具。真实的 构建数据发布的繁重工作发生在每个 注册表实现。


    更新:

    根据您的评论,如果我理解正确,您希望在 metrics 端点上公开所有指标,但将其中一些指标发布到远程计量注册表。

    为此,您可以为metrics 端点添加SimpleMeterRegistry,并为远程仪表注册表添加MeterRegistryCustomizer 以添加一些MeterFilter

    有关 Prometheus 示例,请参阅 this committhis branch

    【讨论】:

    • 那不是我想要的。我想发布到远程仪表注册表,但只有其中一些。像所有非 jvm 指标一样。但是当我添加那个仪表过滤器时,所有的 jvm 指标都不会被发布,也会从执行器端点中删除。
    猜你喜欢
    • 2019-04-10
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多