微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Springboot with micrometer/prometheus:在运行时禁用和启用某些特定指标

如何解决Springboot with micrometer/prometheus:在运行时禁用和启用某些特定指标

我们知道可以使用属性在每米的基础上启用/禁用微米度量,特别是设置 management.metrics.enable.=true/false,但我们需要更动态的东西(无需部署和重新启动springboot 应用程序。我们需要通过读取在外部数据库上设置的值来动态启用/禁用某些指标(例如,具有指标名称列的表和作为“启用/禁用”),例如每分钟轮询一次该表。 所以我们想象的场景是一个外部表,有人可以更新记录,将某个指标的名称设置为“启用”或“禁用”,我们的 SpringBoot 模块会不断更新该表,从而启用/禁用相应的指标。 在您看来,这可能吗,以防万一,用于这种情况的最佳方法是什么?

我尝试使用如下所示的微米表过滤器,但是,如其他一些帖子中所述,它们会永久工作,因此在拒绝调用后,该指标将永远禁用:

meters.config().meterFilter(MeterFilter.denyNameStartsWith(metricName));

附注: 我还阅读了有关 spring cloud (config server) 的有关可以在运行时刷新的属性的外部化的信息,这可能不是正确的解决方案,无论如何我试图探索它,但它不适用于 springboot 属性,它仅适用于自定义属性在外部属性文件上。因此,如果我尝试使用 management.metrics.enable.mymetricname=false 覆盖 management.metrics.enable.mymetricname=true 之类的属性,反之亦然,并在 http /refresh 后使用 curl 检查 prometheus 端点,有时它会起作用,对应指标启用或禁用,有时不启用。

预先感谢您的每一个支持或建议。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。