沒有監控 就沒有眼睛。 除了k8s的基本監控外(pod運行情況、佔用內存、cpu)。爲了對微服務項目中的(1)各類參數線程池、QPS、RT、業務指標(2)系統負載、thread、mem、class、tomcat、gc、等jvm指標進行監控前端
採用 promethus 對spring boot業務埋點進行監控。 由於k8s對promethus很好的支持。同時spring boot 集成client很方便。對spring boot actuator 的metrics指標有很好的集成spring
因此採用了基於 k8s的 promethus job 對業務指標採起拉模式收集。 同時因爲 promethus 支持 grafana前端UI界面。 因此整個架構簡單採用tomcat
這裏採用了pull模式。對application性能有必定影響。若是對定時任務短期指標(promethues來不及拉取) 或者性能比較高 採用 push模式架構
一、spring boot 集成 promethus 可參考 https://cloud.tencent.com/developer/article/1096692 具體使用不詳細介紹app
主要是 promethus四種類型的使用 https://prometheus.io/docs/concepts/metric_types/jvm
二、grafana 配置微服務
以線程池監控爲例性能
(1) 儀表盤配置:spa
a、選擇數據源 : Prometheus線程
b、 編寫promQL: 主要對線程池 線程池數目、激活數目、隊列中數目進行統計平均值,接下來根據指標自定義報警策略
(2)報警配置:
c、配置報警條件: now 到 5 分鐘前: 查詢條件(B)即隊列中數目 超過 100 則觸發報警
d、配置報警通知:配置sender, 釘釘推送通知
當監控指標異常時 會觸發釘釘報警, 開發人員會獲得 通知 而後緊急處理。