您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何清理SpringBoot应用无用的metrics指标
## 前言
在微服务架构中,监控是保障系统稳定性的重要手段。Spring Boot Actuator提供了强大的metrics指标收集功能,但随着应用迭代,会产生大量无用指标,导致:
- 监控系统存储压力增大
- 指标查询性能下降
- 关键指标被噪声淹没
本文将系统介绍识别和清理无用metrics的完整方案。
---
## 一、Metrics指标的生命周期
### 1.1 指标自动注册机制
Spring Boot通过`MeterRegistry`自动注册:
```java
// 示例:JVM指标自动注册
@Autowired
private MeterRegistry registry;
registry.gauge("custom_metric", value);
来源类型 | 示例指标 | 问题 |
---|---|---|
废弃功能 | old_api_requests |
功能下线后未清理 |
第三方库 | hikaricp_connections |
未使用的连接池 |
临时调试 | debug_timer |
发布后遗留 |
访问/actuator/metrics
获取完整列表:
curl http://localhost:8080/actuator/metrics
registry.getMeters().stream()
.filter(m -> m.getId().getName().startsWith("无用前缀"))
.forEach(registry::remove);
在Prometheus中执行查询:
sum by (__name__)({__name__=~".*"})[1h:]
筛选出值为0或不变的指标
registry.remove(new Meter.Id("unused_metric", Tags.empty(), null, null, Meter.Type.COUNTER));
@Configuration
public class MetricsCleanupConfig {
@Bean
public MeterFilter removeUnusedMetrics() {
return MeterFilter.deny(id -> {
return id.getName().startsWith("legacy_");
});
}
}
management:
metrics:
enable:
jvm: false # 禁用JVM指标
export:
prometheus:
step: 1m
distribution:
percentiles-histogram:
http.server.requests: false
@Bean
MeterFilter disableTomcatMetrics() {
return MeterFilter.denyNameStartsWith("tomcat.");
}
// 好例子:带业务前缀
Counter.builder("order.payment.count")
.description("支付成功次数")
.register(registry);
@PreDestroy
public void cleanup() {
registry.remove(new Meter.Id("temp_metric", ...));
}
# metrics_cleaner.py
import requests
def check_unused_metrics():
metrics = requests.get("http://localhost:8080/metrics").json()
for m in metrics:
if is_unused(m):
print(f"待清理指标: {m}")
/actuator/metrics
# Alert当指标数量异常增长
increase(metrics_count[1h]) > 50
MeterFilter.denyUnless(id ->
id.getTag("env").equals("production"));
spring:
sleuth:
metrics:
enabled: false # 关闭分布式追踪指标
@Primary
@Bean
public CustomMeterRegistry customRegistry(){
return new CustomMeterRegistry();
}
通过定期指标审计(建议每月一次)+ 自动化清理机制,可保持metrics系统的整洁。记住: - 清理前确保指标未被仪表盘/告警使用 - 保留核心业务指标不少于6个月 - 文档记录所有手动清理操作
最佳实践:将指标清理纳入CI/CD流水线,作为发布卡点进行检查 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。