Spring Micrometer
Actuator /actuator/prometheus、自定义 meter。
40 分钟
Spring Micrometer
CodeRoadMap backend 基于 Spring Boot,指标经 Micrometer 注册,由 Actuator 以 Prometheus 文本格式暴露。这是应用侧与本 track 的衔接点。
学习目标
- 添加
micrometer-registry-prometheus依赖 - 暴露
/actuator/prometheus并被 ops lab 抓取 - 编写简单业务 Counter(如课程报名)
核心内容
依赖
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
已有 sb-actuator 时只需补 registry 与 exposure。
配置
management:
endpoints:
web:
exposure:
include: health,prometheus,metrics,info
metrics:
tags:
application: coderoadmap-backend
application 标签便于多服务同 Prometheus 时过滤。
自动指标
Spring Boot 自动注册:
http_server_requests_seconds_*— HTTP 延迟与状态jvm_memory_used_bytes— 堆内存jdbc_connections_*— 数据源(若启用)process_cpu_usage— CPU
与 sc-observability 中自定义 Counter 写法一致:
@Service
public class EnrollService {
private final Counter enrollCounter;
public EnrollService(MeterRegistry registry) {
this.enrollCounter = Counter.builder("course.enroll.total")
.tag("type", "free")
.register(registry);
}
public void enroll(Long userId, String slug) {
// 业务逻辑…
enrollCounter.increment();
}
}
验证链路
curl -s localhost:8080/actuator/prometheus | grep course_enroll
# Prometheus: course_enroll_total{type="free"}
确认 prom-scrape 中 metrics_path 正确。
练习
- 访问
/actuator/metrics/http.server.requests与 Prometheus 导出对照命名差异