Spring-Boot-Actuator監控之Prometheus&Grafana


代碼示例:https://github.com/741978260/delay-spring-boot-starter.git

一、簡述

Spring Boot Actuator可以幫助你監控和管理Spring Boot應用,比如健康檢查、審計、統計和HTTP追蹤等。所有的這些特性可以通過JMX或者HTTP endpoints來獲得

Prometheus是一個開源的監控系統,數據爬蟲:根據配置的時間定期的通過HTTP抓去metrics數據;time-series 數據庫:存儲所有的metrics數據;簡單的用戶交互接口:可視化、查詢和監控所有的metrics

Grafana使你能夠把來自不同數據源比如Elasticsearch, Prometheus, Graphite, influxDB等多樣的數據以絢麗的圖標展示出來;它也能基於你的metrics數據發出告警。當一個告警狀態改變時,它能通知你通過email,slack或者其他途徑

二、應用

1. 應用添加依賴

<!--監控報警-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.驗證

應用啟動了,你可以通過http://localhost:8080/actuator來展示所有通過HTTP暴露的endpoints

 默認暴露了2個端點,端點進入,可以看到是health 、info 

 3.添加配置

通過設置management.endpoints.web.exposure.include*,暴露了所有端點;management.endpoint.health.show-details為always 可以展示細節

針對health檢查,指定去掉某項的檢查(比如不監控health.mail,health.sentinel):

 

 4.增加Micrometer Prometheus Registry到你的Spring Boot應用

Spring Boot使用Micrometer,一個應用metrics組件,將actuator metrics整合到外部監控系統中;為了整合Prometheus,你需要增加micrometer-registry-prometheus依賴:

<!-- Micrometer Prometheus registry  -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

一旦你增加上述的依賴,Spring Boot會自動配置一個PrometheusMeterRegistryCollectorRegistry來收集和輸出格式化的metrics數據,使得Prometheus服務器可以爬取。

所有應用的metrics數據是根據一個叫/prometheus的endpoint來設置是否可用。Prometheus服務器可以周期性的爬取這個endpoint來獲取metrics數據

驗證:

 5.使用Docker下載和運行Prometheus (linux下docker下載應用參加上一篇文章)

你可以使用docker pull命令來下載Prometheus docker image

docker images

docker pull prom/prometheus

docker images

mkdir prometheus

cd prometheus/

touch prometheus.yml

vim prometheus.yml

6.Prometheus配置(prometheus.yml)

 7.使用Docker運行Prometheus

docker run -d --name=prometheus -p 9090:9090 -v /opt/prometheus/prometheus.yml:/opt/prometheus/prometheus.yml prom/prometheus --config.file=/opt/prometheus/prometheus.yml

docker ps

8.在Prometheus儀表盤中可視化Spring Boot Metrics

 9.使用Docker下載和運行Grafana

docker images

docker pull grafana/grafana

docker images

docker run -d --name=grafana -p 3000:3000 grafana/grafana

docker ps

10.你可以訪問http://xxx:3000,並且使用默認的賬戶名(admin)密碼(admin)來登錄Grafana

 11.添加dashboard,編寫prometheus的查詢表達式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM