基於k8s的promethus監控

沒有監控 就沒有眼睛。 除了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

  •  counter   只增不減的計數器 適合:qps 等統計
  •  guage     有增有減的變化  適合: cpu 使用率等
  •  histogram 條形直方統計圖 適合: 請求耗時 響應大小等
  •  summary 和直方統計圖類似,能夠自定 分數位,適合: 請求耗時 響應大小等

 二、grafana 配置微服務

       以線程池監控爲例性能

      (1) 儀表盤配置spa

          

           a、選擇數據源 : Prometheus線程

           b、 編寫promQL: 主要對線程池 線程池數目、激活數目、隊列中數目進行統計平均值,接下來根據指標自定義報警策略

           

        (2)報警配置:

          

        c、配置報警條件: now 到 5 分鐘前: 查詢條件(B)即隊列中數目 超過 100 則觸發報警

        d、配置報警通知:配置sender, 釘釘推送通知

              

 

     當監控指標異常時 會觸發釘釘報警, 開發人員會獲得 通知 而後緊急處理。

相關文章
相關標籤/搜索