Grafana展示k8s中pod的jvm監控面板/actuator/prometheus

場景

? ? ? ? 為保障java服務正常運行,對服務的jvm進行監控,通過使用actuator組件監控jvm情況,使用prometheus對數據進行采集,并在Grafana展現。

? ? ? ? ?基于k8s場景

prometheus數據收集

  • 配置service的lable,便于prometheus使用lable進行數據采集,本案例使用prometheus=jvm為標簽
kubectl edit service lizz-test-server -n lizz#輸出修改
...
apiVersion: v1
kind: Service
metadata:creationTimestamp: "2022-05-05T08:16:46Z"labels:prometheus: jvm # 增加采集識別標簽app: lizz-test-servername: lizz-test-servernamespace: lizz
...
# 查看k8s中service
kubectl describe service lizz-test-server -n lizz#輸出
name:                     lizz-test-server
Namespace:                lizz
Labels:                   prometheus=jvmapp=lizz-test-server
Selector:                 app=lizz-test-server
...
  • 重啟service或pod,新增標簽生效,pod中會帶上server中的lable
# 刪除pod方式重啟,k8s啟動pod
kubectl delete pod lizz-test-server-xxx# k8s滾動重啟service
kubectl rollout restart deployment/lizz-test-server
  • 修改prometheus配置文件,增加采集數據任務
# 查看monitoring空間下的configMap,可以看到prometheus的configMap
# cm 和 ConfigMap一個意思
kubectl get cm -n monitoring
#修改配置,加入jvm數據采集
kubectl edit cm prometheus-server-conf -n monitoring
  • ?在配置文件中的scrape_configs下增加抓取任務如下:
global:scrape_interval: 30sevaluation_interval: 30s
...
scrape_configs:- job_name: 'jvm-monitor' #任務名稱metrics_path: /actuator/prometheus # 數據抓取地址scheme: http # 請求協議kubernetes_sd_configs: # 服務發現配置- role: endpoints # 在Kubernetes Endpoints中查找服務relabel_configs:- source_labels: [__meta_kubernetes_service_label_prometheus] # 匹配標簽regex: 'jvm' # 保留標簽值為jvm的服務action: keep- source_labels: [__meta_kubernetes_namespace] action: replace # 替換標簽,用于和模板中的內容一致target_label: spring_namespace #可以根據模板中的內容進行調整- source_labels: [__meta_kubernetes_service_name]action: replace # 替換標簽,用于和模板中的內容一致target_label: spring_name #可以根據模板中的內容進行調整- source_labels: [__meta_kubernetes_pod_name]action: replace # 替換標簽,用于和模板中的內容一致target_label: instance #可以根據模板中的內容進行調整
...
  • 當抓取地址不一致時,可以將metrics_path進行替換,配置如下:
...relabel_configs:- source_labels: [__meta_kubernetes_service_label_prometheus]regex: 'jvm'action: keep- source_labels: [__meta_kubernetes_service_name]regex: 'lizz-test1-server' #當service.name=lizz-test1-server是action: replace # 替換方法target_label: __metrics_path__ # 替換標簽metrics.pathreplacement: /lizz-test1-server/actuator/prometheus # 替換后的路徑
...
  • ?刷prometheus緩存,在服務配置中查看配置是否生效。?

  • 在graph中搜索jvm就可以看到是否已經采集成功。

Grafana創建面板

  • 下載jvm面板模板

Dashboards | Grafana Labs

?

  • dashboards中使用import導入?

  • 填寫面板信息和數據源后導入完成

  • ?完成后顯示jvm監控面板信息,其中篩選項如果沒有正確顯示,可以進行修改如下

修改篩選項內容和取值

  • Name:這個選項的id,取值時使用
  • Lable:顯示明細
  • Date source:數據來源
  • query Type:數據類型
  • lable:取值標簽
  • metric:匹配條件,為空時顯示所有內容
    • ?jvm_memory_used_bytes{spring_namespace="$namespace",spring_name="$service"}
    • jvm_memory_used_bytes指標對應的就是prometheus中采集的數據指標
    • jvm_memory_used_bytes指標中,spring_namespace等于name為“namespace”選擇中的值,spring_name等于name為“service”框中的值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39159.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39159.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39159.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LVS負載均衡集群

目錄 集群 什么是集群 (含義) 集群的分類 LVS 負載均衡器的集群架構 負載均衡器的群集工作模式 LVS負載均衡器的調度算法 LVS組成作用 組成 作用 LVS群集創建與管理 創建步驟 ipvsadm工具 LVS-NAT部署實戰 1、部署共享存儲 2、配置節點服務器(后端服…

JetPack Compose 學習筆記(持續整理中...)

1.為什么要學? 1.命令式和聲明式 UI大戰,個人認為命令式UI自定義程度較高,能更深入到性能,內存優化方面,而申明式UI 是現在主流的設計,比如React,React Native,Flutter,Swift UI等等,現在性能也逐漸在變得更好 2.還有一個原因compose 是KMM 是完整跨平臺的UI基礎 3.…

kafka使用心得(一)

kafka入門 一種分布式的、基于發布/訂閱的消息系統,scala編寫,具備快速、可擴展、可持久化的特點。 基本概念 topic 主題 partition 分區,一個topic下可以有多個partition,消息是分散到多個partition里存儲的,part…

劍指Offer48.最長不含重復字符的子字符串 C++

1、題目描述 請從字符串中找出一個最長的不包含重復字符的子字符串,計算該最長子字符串的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因為無重復字符的最長子串是 “abc”,所以其長度為 3。 示例 2: 輸入: “bbbbb” 輸出: 1 解釋: 因為無重復字…

圖像處理技巧形態學濾波之膨脹操作

1. 引言 歡迎回來,我的圖像處理愛好者們!今天,讓我們繼續研究圖像處理領域中的形態學計算。在本篇中,我們將重點介紹腐蝕操作的反向效果膨脹操作。 閑話少說,我們直接開始吧! 2. 膨脹操作原理 膨脹操作…

macOS CLion 使用 bits/stdc++.h

macOS 下 CLion 使用 bits/stdc.h 頭文件 terminal運行 brew install gccCLion里配置 -D CMAKE_CXX_COMPILER/usr/local/bin/g-11

Visual Studio 2022 中解決使用scanf報錯的方法(一勞永逸)

目錄 【前言】 一、scanf報錯示例 二、解決使用scanf報錯的方法 解決方法1(不推薦) 解決方法2(不推薦) 解決方法3(強烈推薦) 第一步 第二步 第三步 三、效果演示(方法三) …

根據一棵樹的兩種遍歷構造二叉樹

題目 給定兩個整數數組 preorder 和 inorder ,其中 preorder 是二叉樹的先序遍歷, inorder 是同一棵樹的中序遍歷,請構造二叉樹并返回其根節點。 示例 1: 輸入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 輸出: [3,9,20,null,null,…

Unity-Linux部署WebGL項目MIME類型添加

在以往的文章中有提到過使用IIS部署WebGL添加MIME類型使WebGL項目在瀏覽器中能夠正常加載,那么如果咱們做的是商業項目,往往是需要部署在學校或者云服務器上面的,大部分情況下如果項目有接口或者后臺管理系統,后臺基本都會使用Lin…

機器學習筆記:李宏毅ChatGPT Finetune VS Prompt

1 兩種大語言模型:GPT VS BERT 2 對于大語言模型的兩種不同期待 2.1 “專才” 2.1.1 成為專才的好處 Is ChatGPT A Good Translator? A Preliminary Study 2023 Arxiv 箭頭方向指的是從哪個方向往哪個方向翻譯 表格里面的數值越大表示翻譯的越好 可以發現專門做翻…

Ceph入門到精通-Linux下Ceph源碼編譯和GDB調試

Ceph版本:14.2.22 Linux版本:ubuntu-server 18.04 第一部分 下載Ceph源碼 1.1 配置Ceph源碼鏡像源 Ceph源碼是托管在Github上,由于某些原因,國內訪問Github網站很慢,所以需要從其他途徑加速獲取源碼。Github官方給出…

【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么區別和聯系

文章目錄 01-network-manager-all.yaml、interfaces 和 resolv.conf 是與網絡配置相關的文件,它們在網絡設置中有著不同的作用和使用方式。 01-network-manager-all.yaml: 這是一個配置文件,通常在 Ubuntu 系統上使用 NetworkManager 進行網絡管理時使用…

ChatGPT?保密嗎?它有哪些潛在風險?如何規避?

自2022年11月公開發布以來,ChatGPT已成為許多企業和個人的必備工具,但隨著該技術越來越多地融入我們的日常生活,人們很自然地想知道:ChatGPT是否是保密的。 問:ChatGPT保密嗎? 答:否&#xff0…

C++11并發與多線程筆記(3)線程傳參詳解,detach()大坑,成員函數做線程函數

C11并發與多線程筆記(3)線程傳參詳解,detach 大坑,成員函數做線程函數 1、傳遞臨時對象作為線程參數1.1 要避免的陷阱11.2 要避免的陷阱21.3 總結 2、臨時對象作為線程參數2.1 線程id概念2.2 臨時對象構造時機抓捕 3、傳遞類對象…

VR時代真的到來了?

業界對蘋果的期待是,打造一臺真正顛覆性的,給頭顯設備奠定發展邏輯底座的產品,而實際上,蘋果只是發布了一臺更強大的頭顯。 大眾希望蘋果回答的問題是“我為什么需要一臺AR或者VR產品?”,但蘋果回答的是“…

從零開始學習 Java:簡單易懂的入門指南之MAth、System(十二)

常見API,MAth、System 1 Math類1.1 概述1.2 常見方法1.3 算法小題(質數)1.4 算法小題(自冪數) 2 System類2.1 概述2.2 常見方法 1 Math類 1.1 概述 tips:了解內容 查看API文檔,我們可以看到API文檔中關于Math類的定義如下: Math類…

每天一道leetcode:300. 最長遞增子序列(動態規劃中等)

今日份題目: 給你一個整數數組 nums ,找到其中最長嚴格遞增子序列的長度。 子序列 是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。例如,[3,6,2,7] 是數組 [0,3,1,6,2,2,7] …

【JavaEE進階】SpringBoot項目的創建

文章目錄 一. SpringBoot簡介1. 什么是SpringBoot?2. SpringBoot的優點 二. SpringBoot項目創建1. 使用IDEA創建2. 使用網頁創建SpringBoot項目 三. 運行SpringBoot項目 一. SpringBoot簡介 1. 什么是SpringBoot? Spring Boot 是一個用于快速構建基于 Spring 框架的應用程序…

Spring對象裝配

在spring中,Bean的執行流程為啟動spring容器,實例化bean,將bean注冊到spring容器中,將bean裝配到需要的類中。 既然我們需要將bea裝配到需要的類中,那么如何實現呢?這篇文章,將來闡述一下如何實…

SOFABoot——基本使用(筆記)

文章目錄 一、前言二、快速開始2.1 基本搭建2.2 測試是否成功2.3 其他部分日志測試異步啟動 三、SOFABoot的模塊化開發3.1 基于Spring上下文的隔離3.2 Root Application Context3.3 模塊并行化啟動3.4 JVM服務與RPC服務的發布與引用3.5 模塊配置Module-NameRequire-ModuleSprin…