Prometheus Gauge值保留时长疑问:设置后未在Grafana显示
解决Micrometer Gauge指标在Grafana中不显示的问题
核心原因
Micrometer的Gauge默认是按需采集+依赖观测对象引用的,如果你只一次性设置值后再也不更新,大概率是因为后续Prometheus采集时,Gauge对应的观测对象被GC回收,或者没有触发采集逻辑,导致指标没被暴露。
具体解决方案
1. 改用持有的观测对象绑定Gauge
不要用Gauge.set()这类一次性设置的方法,而是定义一个全局持有类,保持对固定值的引用,让Micrometer每次采集都能拿到值:
// 定义全局持有类,保存应用启动信息 public static class AppMetricsHolder { private final long startupTimestamp; private final String gitCommitHash; public AppMetricsHolder(long startupTimestamp, String gitCommitHash) { this.startupTimestamp = startupTimestamp; this.gitCommitHash = gitCommitHash; } public long getStartupTimestamp() { return startupTimestamp; } public String getGitCommitHash() { return gitCommitHash; } } // 在ApplicationListener中初始化并绑定Gauge @Override public void onApplicationEvent(ApplicationReadyEvent event) { // 初始化持有类,填入实际的启动时间和Git提交信息 AppMetricsHolder metricsHolder = new AppMetricsHolder( System.currentTimeMillis(), "a1b2c3d4..." // 实际Git提交哈希 ); MeterRegistry meterRegistry = event.getApplicationContext().getBean(MeterRegistry.class); // 绑定启动时间Gauge,添加业务标签 Gauge.builder("application.startup.timestamp", metricsHolder, AppMetricsHolder::getStartupTimestamp) .tags("environment", "production", "app_name", "your-app") .register(meterRegistry); // Git提交信息建议用标签承载,Gauge值设为固定1(因为Gauge是数值型指标) Gauge.builder("application.git.commit", metricsHolder, h -> 1.0) .tags("commit_hash", metricsHolder.getGitCommitHash(), "environment", "production") .register(meterRegistry); }
2. 先排查Prometheus采集是否正常
不要直接找Grafana,先访问应用的Prometheus端点(Spring Boot默认是/actuator/prometheus),搜索你定义的指标名:
- 如果端点里找不到,说明是Micrometer配置问题,检查:
- Spring Boot是否开启了端点暴露:
management.endpoints.web.exposure.include=prometheus - MeterRegistry是否正确注入
- Spring Boot是否开启了端点暴露:
- 如果端点里能找到,再去Grafana刷新指标列表,或者检查Prometheus数据源的同步状态
3. 避免用Gauge存储字符串
Prometheus的Gauge是数值型指标,像Git提交哈希这类字符串,应该放到标签里,而不是Gauge的值中,这样既符合Prometheus的指标规范,也能正常被采集展示。
关键注意点
Micrometer的Gauge依赖对观测对象的强引用,只要持有类的实例不被GC回收,每次Prometheus采集时都会调用getter方法获取值,保证指标持续存在。一次性设置的Gauge因为没有持续引用,很容易被Micrometer的过期清理机制移除。
内容的提问来源于stack exchange,提问作者J Freebird
相关产品推荐
相关产品推荐

