Spring boot2利用micrometric比較簡單,增加一個maven依賴,並配置actuator介面即可:
第一步:增加依賴<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.0.4</version></dependency>
具體版本請查詢最新版本
第二步:配置actuatormanagement.endpoints.web.exposure.include=prometheus,healthmanagement.server.port=8081
Springboot2 中的actuator預設是需要安全驗證的,可以通過include的方式關掉對應的uri路徑,micrometer預設的指標地址為:/actuator/prometheus
另外建議 actuator的地址獨立於服務的埠,這樣走Kubernetes的deployment模板配置中可以統一掉埠(比如8081),方便配置。
第三步:配置deployment模板我們把專案部署到kubernetes中,並把應用指標交給prometheus進行收集。我們知道prometheus採用的pull拉的方式。那麼部署到k8s上的deployment如何讓prometheus自動發現呢?
很簡單,方法如下:
在deployment中的 template->metadata->annotations 增加
prometheus.io/scrape: "true" prometheus.io/port: "8081" prometheus.io/path: "/actuator/prometheus"
kubernetes會查詢prometheus.io/scrape=true註釋的pod 。如果可以使用此註釋,則Prometheus會自動獲取指標。
prometheus.io/path=/endpoint註釋定義Prometheus應該在哪個路徑上抓取,不定義的話使用預設路徑:/metrics。
springboot2使用/actuator/prometheus 告訴Prometheus使用作為指標收集uri。
該prometheus.io/port=8081註解,告訴Prometheus pull的埠
最後一個重要的註解是prometheus.io/scheme=https註解。
下面是一個完整的deployment.yaml的k8s部署模板示例:
最新評論