我在 springboot 2 中使用 Actuator 来公开/actuator/prometheus 端点,普罗米修斯实例将从中提取指标。
Everithing 完美无缺,除非我需要调整指标名称。我的意思不是对 Prometheus 有意义的后缀 (_count, _total, _bucket, ...) 而是类似于:
http_server_requests_seconds_count -> http_server_requests_count http_server_requests_seconds_max -> latency_seconds_max http_server_requests_seconds_sum -> latency_seconds_sum http_server_requests_seconds_bucket -> latency_seconds_bucket
有没有更好的方法来解决这个问题?
附言
我知道我可以使用
management.metrics.web.server.requests-metric-name=different
要得到
different_seconds_count
different_seconds_max
different_seconds_sum
different_seconds_bucket
但很难:
1º 删除 _seconds 后缀
2º 仅对其中一个使用不同的基本名称
我猜我可以写一个替代方案
PrometheusRenameFilter
但不确定如何将其配置为默认注册表。
最佳答案
您可以覆盖此方法并更新命名约定:
@Configuration
public class MetricsConfiga {
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(String applicationName) {
return (registry) -> registry.config().namingConvention(new NamingConvention() {
@Override
public String name(String name, Meter.Type type, String baseUnit) {
return "PREFIX" + Arrays.stream(name1.split("\\."))
.filter(Objects::nonNull)
.collect(Collectors.joining("_"));
}
});
}
}
关于spring-boot - 如何在 Spring-boot 2 中使用 Actuator 修改 prometheus 公开的指标名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49614147/