阿丹:
? ? ? ? 之前已經實現了使用Prometheus來對服務器進行了監控和儀表盤的創建,現在就需要對這些監控方法使用在spring-boot中去。
實現思路:
? ? ? ? 1、集成Actuator
? ? ? ? 2、加入Prometheus的依賴
? ? ? ? 3、配置開放端口、以及開放監控
? ? ? ? 4、配置Prometheus中的配置
? ? ? ? 5、使用Grafana中的SpringBoot Actuator展示模版
一、集成Actuator
?引入依賴
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Spring Actuator是Spring框架中的一個模塊,旨在為應用程序提供監控和管理的功能。它為開發人員提供了一系列的HTTP端點,可以用來查看應用程序的運行狀況、性能指標、日志信息等。Actuator可以幫助開發人員進行應用程序的監控、診斷和管理,從而更好地了解應用程序的運行情況。
Spring Actuator提供了一些常用的端點,包括:
-
/health:用于檢查應用程序的健康狀況,例如數據庫連接是否正常、磁盤空間是否足夠等。
-
/info:用于查看應用程序的一般信息,例如應用程序的名稱、版本、描述等。
-
/metrics:用于查看應用程序的運行指標,例如CPU使用率、內存使用量、請求次數等。
-
/logfile:用于查看應用程序的日志文件。
-
/env:用于查看應用程序的環境變量。
除了這些常用端點,Actuator還提供了一些其他功能,如配置端點、線程Dump端點、熱重啟端點等。開發人員可以根據自己的需求自定義配置和使用這些端點。
在Spring項目中集成Actuator非常簡單,只需在項目的依賴中加入相關的Actuator模塊,并進行必要的配置,即可啟用Actuator的功能。
依賴說明:
在Spring Boot應用程序中使用Prometheus進行監控時,spring-boot-starter-actuator
依賴提供了與Prometheus進行集成的能力。通過添加這個依賴,你可以使Spring Boot應用程序暴露所需的端點,以供Prometheus抓取并收集監控指標。
具體來說,spring-boot-starter-actuator
中的Actuator模塊啟用了以下與Prometheus相關的功能:
- 自動配置:Actuator自動配置模塊將根據在應用程序中定義的配置屬性,自動為應用程序啟用與Prometheus集成的相關功能。這使得無需手動配置即可與Prometheus進行集成。
- 端點暴露:Actuator提供了一組HTTP端點,其中包括與Prometheus監控相關的端點。這些端點將監控數據暴露給Prometheus進行抓取。
- Metrics和Health信息:通過Actuator的端點,你可以獲取應用程序的Metrics信息和Health狀態。這些信息將被Prometheus抓取并存儲,以供進一步的分析和警報。
總之,spring-boot-starter-actuator
依賴使得Spring Boot應用程序能夠與Prometheus進行集成,從而通過Prometheus對應用程序進行監控和度量。
二、引入Prometheus依賴micrometer-registry-prometheus
。
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
micrometer-registry-prometheus
這個依賴在Spring Boot項目中使用Prometheus進行監控時,提供了將應用程序的度量數據暴露給Prometheus的功能。
具體來說,micrometer-registry-prometheus
是一個Micrometer的Prometheus注冊器實現。Micrometer是一個用于Java應用程序的度量庫,它提供了一種標準化的方式來收集和報告度量數據。通過添加這個依賴,你可以將Micrometer與Prometheus集成,從而將應用程序的度量數據暴露給Prometheus進行抓取。
當與Prometheus集成后,你可以通過配置將Micrometer生成的度量數據發送到Prometheus,然后使用PromQL進行查詢和分析。這樣,你可以獲得應用程序的性能指標,如請求處理時間、數據庫查詢速率等,以便進行監控和問題診斷。
此外,micrometer-registry-prometheus
還提供了一些額外的功能,如自定義度量數據的命名和標簽,以及與Prometheus的自動發現功能進行集成等。
總之,micrometer-registry-prometheus
依賴使得Spring Boot項目能夠與Prometheus進行集成,以便更好地監控應用程序的性能。
三、添加yml配置
因為在默認的情況下,端點是不可用的,所以必須要公開,所以需要添加如下配置
management:endpoints:web:exposure:include: prometheus,health,info
并且指定服務名字
spring:application:name: adn-ask
四、 添加Prometheus配置
scrape_configs:- job_name: 'adn-ask' #prometheus任務名稱scrape_interval: 5s #每五秒抓取一次數據metrics_path: '/actuator/prometheus' #數據來源的地址static_configs:- targets: ['localhost:8081'] #拉去數據的地址
?
?
?注意在使用的時候服務名字一定要對應以及下面的端口號和ip地址。
五、導入SpringBoot Actuator的展示模板
使用的模版id為:12900?
提供展板的官網:?
Dashboards | Grafana Labs