Quarkus 配置 SmallRye 容错指标

标签 quarkus micrometer smallrye

我的 Quarkus 应用程序正在使用 Micrometer 和 Smallrye 容错扩展,并且我很欣赏使用 @CircuitBreaker 注释自动添加指标这一事实。然而,格式和标签有点丑陋,并且会使维护和操作仪表板以及监控变得痛苦,因为它们似乎是根据包和类自动生成的。示例:重构或移动它们基本上会破坏 Prometheus 查询。

是否可以使用 Quarkus 进行配置?

这就是开箱即用的指标

ft_some_really_long_package_name_ClassName_methodName_Circuitbreaker_halfOpen_total{} 0

我想要的是这样的东西

Circuitbreaker_halfOpen_total{package="com.somepackage", class="SomeClass", method="SomeMethod"} 0

最佳答案

嗯。我认为,您应该能够使用 MeterFilter 来完成此操作,但要正确处理字符串(以拆分包/类名/方法名)

https://quarkus.io/guides/micrometer#using-meterfilter-to-configure-metrics

@Produces
@Singleton
public MeterFilter renameFaultToleranceMetrics() {
    return new MeterFilter() {
        @Override
        public Meter.Id map(Meter.Id id) {
            if (id.getName().endsWith("circuitbreaker_halfOpen_total")) {
                // Do things here to make a new list of tags based on string munging
              List<Tag> tags = ...
              return id.withName("circuitbreaker_halfOpen_total").replaceTags(tags);
            }
            return id;
        }
    };
}

示例如下:https://github.com/quarkusio/quarkus/blob/main/integration-tests/micrometer-mp-metrics/src/main/java/io/quarkus/it/micrometer/mpmetrics/RenameMeterFilterProducer.java

关于Quarkus 配置 SmallRye 容错指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65063496/

相关文章:

cassandra - Quarkus Cassandra 集成

java - Quarkus 如何指定 JNDI 数据源

dependency-injection - 当 CDI 来自外部依赖时,带有 Spring DI 注释的 CDI 是否可以工作?

java - 使用 Apache Camel/Smallrye/reactive 流 - 如何跨 JVM 将 "publisher"连接到 "subscriber"?

java - 如何在Fabric8 Open Jdk Container中启用扩展编码?

out-of-memory - 微米高内存使用率

spring-boot - 用千分尺查询数据

Spring Boot Actutor Web 指标 - 禁用(或分组)http_server_requests_seconds_sum

reactive-programming - Vertx 在 Quarkus vertx mutiny webclient 扩展中不可用

graphql - 是否可以在 quarkus-smallrye-graphql 中使用 quarkus 安全性?