拒絕黑盒應用-Spring Boot 應用視覺化監控
圖文簡介
邏輯關係
效果演示
快速開始
1、Spring Boot 應用暴露監控指標【版本 1.5.7.RELEASE】
首先,新增依賴如下依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_spring_boot</artifactId> <version>0.0.26</version> </dependency>
然後,在啟動類 Application.java
新增如下註解:
@SpringBootApplication
@EnablePrometheusEndpoint
@EnableSpringBootMetricsCollector
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
最後,配置預設的登入賬號和密碼,在 application.yml
中:
security: user: name: user password: pwd
提示:不建議配置
management.security.enabled: false
啟動應用程式後,會看到如下一系列的 Mappings
Mappings
利用賬號密碼訪問 http://localhost:8080/application/prometheus ,可以看到 Prometheus 格式的指標資料
指標資料
2、Prometheus 採集 Spring Boot 指標資料
首先,獲取 Prometheus 的 Docker 映象:
$ docker pull prom/prometheus
然後,編寫配置檔案 prometheus.yml
:
global: scrape_interval: 10s scrape_timeout: 10s evaluation_interval: 10m scrape_configs: - job_name: spring-boot scrape_interval: 5s scrape_timeout: 5s metrics_path: /application/prometheus scheme: http basic_auth: username: user password: pwd static_configs: - targets: - 127.0.0.1:8080 #此處填寫 Spring Boot 應用的 IP + 埠號
接著,啟動 Prometheus :
$ docker run -d \
--name prometheus \
-p 9090:9090 \
-m 500M \
-v "$(pwd)/prometheus.yml":/prometheus.yml \
-v "$(pwd)/data":/data \
prom/prometheus \
-config.file=/prometheus.yml \
-log.level=info
最後,訪問 http://localhost:9090/targets , 檢查 Spring Boot 採集狀態是否正常。
採集狀態
3、Grafana 視覺化監控資料
首先,獲取 Grafana 的 Docker 映象:
$ docker pull grafana/grafana
然後,啟動 Grafana:
$ docker run --name grafana -d -p 3000:3000 grafana/grafana
接著,訪問 http://localhost:3000/ 配置 Prometheus 資料來源:
Grafana 登入賬號 admin 密碼 admin
配置 DataSource
最後,配置單個指標的視覺化監控面板:
選擇 Graph
編輯
配置需要監控的指標
提示,此處不能任意填寫,只能填已有的指標點,具體的可以在 Prometheus 的首頁看到,即 http://localhost:9090/graph
指標
多配置幾個指標之後,即可有如下效果:
Grafana 監控介面
參考文件
- prometheus 官方文件
- Grafana Docker 安裝
- Spring Boot 官方文件
© 著作權歸作者所有,轉載或內容合作請聯絡作者
原文連結:
https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247486173&idx=1&sn=571a068a4d49cf7c054ebde623c67d17&chksm=fb3f1326cc489a30cef820c1be230a351b0ef0501f86f2a9c8dbf19bc694f9e5a32a40173194&token=423629656&lang=zh_CN#rd
本文由部落格一文多發平臺 OpenWrite 釋出!