You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Micrometer 1.13.0指标名称声明错误导致Prometheus采集失败

问题解决:Micrometer 1.13.0 jvm_info指标格式导致Prometheus采集失败

问题背景

Micrometer 1.13.0对jvm_info指标做了格式变更,将原本的gauge类型改为Prometheus的info类型,但Prometheus 2.53.0及以下版本不支持info类型,会抛出invalid metric type "info"错误,导致指标采集失败。

已知解决方案/规避措施

1. 升级Prometheus到2.54.0及以上版本

Prometheus从2.54.0版本开始正式支持info类型指标,升级后可直接兼容Micrometer 1.13.0的新格式,无需额外配置。

2. 强制将jvm_info指标类型改回gauge

如果暂时无法升级Prometheus,可通过自定义MeterFilter强制修改指标类型:

import io.micrometer.core.instrument.config.MeterFilter;
import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class PrometheusMetricConfig {
    @Bean
    public MeterRegistryCustomizer<PrometheusMeterRegistry> prometheusTypeFixCustomizer() {
        return registry -> registry.config().meterFilter(new MeterFilter() {
            @Override
            public Type type(String id, Type type) {
                if ("jvm_info".equals(id.getName())) {
                    return Type.GAUGE;
                }
                return type;
            }
        });
    }
}

3. 禁用默认jvm_info,自定义兼容旧格式的指标

先通过配置禁用默认指标:

management.metrics.enable.jvm.info=false

然后自定义一个gauge类型的jvm_info指标:

import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.context.annotation.Configuration;

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

@Configuration
public class CustomJvmInfoMetric {
    public CustomJvmInfoMetric(MeterRegistry registry) {
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        Gauge.builder("jvm_info", () -> 1.0)
                .tag("runtime", runtimeMXBean.getVmName())
                .tag("vendor", runtimeMXBean.getVmVendor())
                .tag("version", runtimeMXBean.getVmVersion())
                .description("JVM version info")
                .register(registry);
    }
}

补充说明

该变更是Micrometer 1.13版本的既定变更,目的是对齐Prometheus官方指标规范,但由于Prometheus版本兼容性问题导致采集失败,上述方案均可有效解决。

内容的提问来源于stack exchange,提问作者Eli Skoran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:57:15