使用 Prometheus 監控 Spring Boot 應用程式
這篇文章記錄如何在 Spring Boot 應用程式中加入 micrometer-registry-prometheus,並透過 Spring Boot Actuator 暴露 Prometheus 可以抓取的 Metrics endpoint。
Grafana 與 Prometheus 的安裝流程已經在前一篇文章介紹過,因此本文會專注在 Spring Boot 與 Prometheus 之間的設定:Spring Boot 要如何產生監控指標、Prometheus 要如何抓取這些指標,以及設定完成後要如何確認資料是否正常。
整體架構
在這個監控流程中,Spring Boot 應用程式本身不會主動把資料推送到 Prometheus,而是透過 Actuator 開放 /actuator/prometheus endpoint。Prometheus 會依照設定的間隔定期呼叫這個 endpoint,將應用程式的 Metrics 抓回來儲存。
整體流程如下:
- Spring Boot 加入 Actuator 與 Prometheus Registry 相依套件
- Spring Boot 開放
/actuator/prometheusendpoint - Prometheus 設定 scrape target,定期抓取 Spring Boot Metrics
- 在 Prometheus Web UI 確認 target 狀態與查詢 Metrics
- Grafana 透過 Prometheus 資料來源建立 Dashboard
本文會聚焦在前四個步驟,Grafana Dashboard 的操作不會在這篇文章中展開。