spring boot metrics監控指標使用教程

spring boot metrics是什麼?

針對應用監控指標暴露,spring boot有一套完整的解決方案,並且內置瞭好很多的指標收集器,如tomcat、jvm、cpu、kafka、DataSource、spring mvc(缺少直方圖的數據)等。基於micrometer技術,幾乎支持所有主流的監控服務的指標數據收集,這其中就包含瞭我們線上使用的Prometheus,這份指南旨在最快速接入boot的metrics功能,暴露prometheus的數據監控指標服務。

micrometer地址:https://micrometer.io/

一、引入依賴

implementation ('org.springframework.boot:spring-boot-starter-actuator')
implementation ('io.micrometer:micrometer-registry-prometheus:1.6.1')
implementation ('io.micrometer:micrometer-core:1.6.1')

actuator是spring boot中負責運維功能的包,這裡主要是通過它來暴露和管理metrics接口的。其他兩個依賴是為瞭包兼容引入的,在sprinr boot2.x中,actuator中默認引入的prometheus支持包存在兼容性問題,如果你的環境不存在兼容性問題,可以不用引入下面兩個依賴。

二、配置啟用

通過如下的配置,來開啟prometheus的端點接口服務

management.endpoints.web.exposure.include=prometheus

開啟服務後,會暴露/actuator/prometheus 端點接口服務。

在瀏覽器中,輸入http://localhost:8080/actuator/prometheus 。可以看到內置的指標收集器收集到的監控指標

三、獨立的web服務

默認情況下,/actuator/prometheus端點服務跟隨應用的web容器一起發佈,但是當我們的web服務面向公網需要授權認證時,可以使用如下配置啟用獨立的容器暴露服務

management.server.port=8081

四、全局標簽設置

在metrics監控系統設計中,tag用來標記區分一組指標集。比如我們在監控grpc時,servicename就是是監控指標的其中一個tag。有的時候為瞭區分環境和應用,我們會設置一些全局的tag:

management.metrics.tags.application = ${spring.application.name}
management.metrics.tags.region = bj

如上配置,我們添加瞭一個應用的名字和一個區域的tag。這種配置是全局的。雖然grpc的組件可能隻記錄瞭servicename,但是最終數據呈現時,也會帶上全局配置的tag

五、自定義指標收集

spring boot所有的指標最終都是通過MeterRegistry來註冊的,這個實例被spring托管,所以你可以在spring的上下文中註入這個實例,結合micrometer指標定義,自定義自己的監控指標

六、推送or拉取指標

目前,我們線上是通過k8s的monitoring.coreos.com/v1 api定義指定prometheus主動拉取應用pod的監控指標信息,主要是因為之前的metrics系統是基於prometheus client模式暴露的。在基於spring boot的metrics系統中,主動推送數據的模式非常容易實現,這裡需要prometheus-gateway支持

引入依賴

implementation("io.prometheus:simpleclient_pushgateway")

啟用push模式

#開啟prometheus的數據推送模式
management.metrics.export.prometheus.pushgateway.enabled=true
#prometheus服務端地址
management.metrics.export.prometheus.pushgateway.base-url=localhost:9091
#推送數據的頻率,默認1m(單位分鐘)
management.metrics.export.prometheus.pushgateway.push-rate=1m
#在jvm關閉之前將數據推送出去
management.metrics.export.prometheus.pushgateway.shutdown-operation=push

以上就是spring boot metrics監控指標使用教程的詳細內容,更多關於spring boot metrics監控指標教程的資料請關註WalkonNet其它相關文章!

推薦閱讀: