Prometheus云原生监控:运维与开发实战
上QQ阅读APP看书,第一时间看更新

3.3 针对Spring Boot 2.x采集并可视化相关数据

Spring Boot 2.x通过Micrometer提供了监控数据,但是这些数据并没有可视化,所以不够友好。如果要可视化,还需要我们执行两个操作:

·Prometheus配置轮询采集Spring Boot 2.x的应用target提供的数据。

·Grafana将Prometheus作为数据源进行可视化大盘展示。

第一项操作可以在Prometheus里的prometheus.yml文件中加上Spring Boot 2.x应用8080端口的Job采集,并重新加载配置文件即可,这样就可以将Spring Boot 2.x的数据采集到Prometheus中。以下是prometheus.yml文件集成后Spring Boot 2.x的配置示例。


scrape_configs:
  - job_name: 'prometheus'      # Prometheus自身配置
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'springboot-demo' # Spring Boot 2.x应用数据采集
    metrics_path: '/actuator/prometheus'
    static_configs:
    - targets: ['localhost:8080']

如上配置所示,http://localhost:8080/actuator/prometheus页面中Spring Boot 2.x所应用的数据会被采集到Prometheus中。这些信息不但包含Spring Boot通过Micrometer的micrometer-jvm-extras提供的JVM信息,还会包含案例中在Spring Boot代码中通过监控得到的prome-theus.demo.counter和prometheus.demo.gauge数据,这些数据符合#TYPE和#HELP的Prome-theus数据格式规范(详见第7章),数据如下所示。


# HELP prometheus_demo_counter_total demo counter
# TYPE prometheus_demo_counter_total counter
prometheus_demo_counter_total{application="Demo",name="counter1",} 5731.0

# HELP prometheus_demo_gauge This is Gauge
# TYPE prometheus_demo_gauge gauge
prometheus_demo_gauge{application="Demo",name="gauge1",} 5731.0