SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等,但是无法监控eureka注册中心下各个微服务的健康状态,只能监控每一个微服务的启停状态,如果想要监控到这个状态,则需要手动进行埋点并把相关指标数据暴露到prometheus即可
对于整个监控流程图大致如下:
grafana和prometheus在我的其他文章中有相关说明,在此主要把注册中心这边通过actuator暴露指标数据并由prometheus采集的这个过程进行详细编码说明
首先创建一个PrometheusMetricsService类,此类主要负责对接监控数据采集服务,将指标通过此类设置到actuator/prometheus插件环境里
@Service
public class PrometheusMetricsService {
/**
* 实例状态统计
* eureka_instance_status{client="{client}",status="{status}"}
*/
private static final String EUREKA_INSTANCE_STATUS = "eureka_instance_status";