当前位置: 首页 > 知识库问答 >
问题:

如何停止发布指标,但仍可在Spring启动千分尺中的/Metrics下保持可访问性?

皇甫敏达
2023-03-14

我想继续收集< code>jvm和其他指标,但不想把它们全部推给cloudwatch或prometheus(或其他任何东西)。

如果我喜欢这个

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

它停止发布到云监视,但与此同时,指标也从/执行器/指标/消失。

有没有什么方法可以让我在< code>/actuator/metrics/下访问它们,但不要把它们推送到远程指标收集器?

共有1个答案

萧宏峻
2023-03-14

如果您正在寻找如何公开Spring Boot致动器< code >指标endpoint,但不将指标发布到任何远程计量注册表(如Prometheus ),只需添加< code > org . spring framework . boot:spring-boot-starter-Actuator ,而无需任何特定于监控系统的依赖项(如< code > io . micrometer:micrometer-registry-Prometheus

然而,根据项目业主的意见,endpoint仅用于诊断目的,因此您应使用一个特定于监控系统的仪表注册表进行监控,如下所示:

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


更新:

根据您的评论,如果我理解正确,您希望公开metricsendpoint上的所有度量,但将其中一些发布到远程仪表注册表。

为此,您可以为metricsendpoint添加SimpleMeter注册表,并为远程仪表注册表添加MeterRegister stryCustomizer以添加一些MeterFilter

请参阅此提交和此分支以获取普罗米修斯示例。

 类似资料:
  • 我有一个应用程序,其中包含2打Spring批处理cronjobs.There没有Rest控制器,因为它是一个分析应用程序,它每天运行,从数据库读取数据,处理它,然后将聚合数据存储在另一个数据库中。我想使用千分尺对作业进行Spring内置度量,并将它们推送到Prometheus。由于我的应用程序不是网络服务器应用程序,所以千分尺仍然会在HOST: 8080上发布结果?执行器会自动在HOST: 808

  • 我正在将JavaSpring项目从java 8迁移到java 11。所以我需要将dropwizard指标替换为千分尺。Dropwizard指标记录到达特定endpoint时的状态和响应。例如:endpoint- 有没有办法在千分尺中实现相同的效果?我知道有注释,但由于某种原因它不起作用。(我把它放在endpoint方法上)。 我的属性文件(仅与指标相关的值):

  • 有没有办法关闭执行器/千分尺中的一些返回的度量值?现在看着它们,我看到大约1000个,并想将它们缩减到精选的几个,比如100个,以便实际发送到我们的注册表。

  • 这篇题为“测微计:Spring Boot 2的新应用程序度量收集器”的博客文章提到了“维度的重要性”。 但是,它没有包括如何在Spring Boot应用程序中设置关联标签的足够示例。 现在,我正在使用Spring Boot 2的千分尺接口来提供Prometheus就绪输出,而无需进行任何基于Java的配置。例如,设置“主机”标签是否需要我编写一些代码?那会是什么样子? 以下是我的整个配置:

  • 我有一个带有Jersey RESTendpoint的web应用程序(war)。我正在与prometheus/micrometer集成以生成度量。我在这里公开了“/metrics”endpoint 我被困在如何生成http请求度量上。我找不到任何与获取这些指标相关的代码。有人能帮我吗?

  • 我有一个应用程序正在使用“插件应用程序”(没有启动器图标的应用程序,由主应用程序通过intent启动),我想让这个应用程序的Play Store“Open”按钮只打开主应用程序。 是否有一种方法可以不使用启动器图标,而是定义一个入口点,以便在play store安装后启动主应用程序(通过意图或启动一个虚拟活动,该活动将立即启动其他应用程序活动)。 我考虑删除启动器类别“android.intent