如何停止发布指标但仍可在 spring 启动千分尺中的 /metrics 下访问?

How to stop publishing metrics but still keep accessible under /metrics in spring boot micrometer?

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

如果我喜欢这样

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

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

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

如果您正在寻找如何公开 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,端点仅用于诊断目的,因此您应该使用监控系统特定的仪表注册表之一进行监控,如下所示:

The actuator endpoint is at best a toy, a diagnostic tool. The real heavy lifting of structuring the data for publishing happens in each registry implementation.


更新:

根据你的评论,如果我理解正确的话,你想公开 metrics 端点上的所有指标,但将其中一些指标发布到远程仪表注册表。

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

有关 Prometheus 示例,请参阅 this commit and this branch