引入
这里首先说以下整体大概的思路,第一步当然是引入对应的 SDK
,第二步则是添加配置信息、定义自定义指标,并进行注册,接下来的第三步则是指标根据具体业务的处理逻辑,那么最后一步就是在 prometheus
服务中增加 job
配置,最终在 grafana
中展示自定义指标。
实操
引入 SDK
1 | <!-- Micrometer Prometheus registry --> |
配置信息
1 | management.endpoints.enabled-by-default=false |
注册自定义指标
1 | @Component |
指标业务逻辑
自定义指标注解
1
2
3
4
5@Documented
@Retention(RUNTIME)
@Target(METHOD)
public @interface Counter {
}注解实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25@Aspect
@Component
public class CounterAspect {
private static final Logger logger = LoggerFactory.getLogger(CounterAspect.class);
@Autowired
private ContentListener contentListener;
@Pointcut("execution(* com.example.controller.*.*(..)) && @annotation(com.example.annotation.Counter)")
private void cut() { }
@Around("cut()")
public Object advice(ProceedingJoinPoint pjp) throws Throwable {
Object retValue = pjp.proceed();
try {
// 记录结果指标
contentListener.getCounter().labels("label1", "label2").inc();
} catch (Exception e) {
logger.error("error", e);
}
return retValue;
}
}
Prometheus Server
中增加 Job
配置
1 | job_name: 'springboot-demo' |
接着重新启动 prometheus
1 | ./prometheus –config.file=prometheus.yml |
grafana
展示自定义指标
- 检查
curl http://localhost:8080/actuator/prometheus
是否存在自定义指标。 - 在
grafana
中配置prometheus server
数据源。 - 在面板中配置对应的指标和需要展示的图例。
总结
个人备注
此博客内容均为作者学习所做笔记,侵删!
若转作其他用途,请注明来源!