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.hqwc.cn/news/63716.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ES6】深入理解ES6(1)

一、块级作用域绑定 var声明及变量提升机制 二、字符串和正则表达式 字符串(String)是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。 更好的Unicode支持 1. UTF-16码位 字…

【Archaius技术专题】「Netflix原生态」动态化配置服务之微服务配置组件变色龙

前提介绍 如果要设计开发一套微服务基础架构,参数化配置是一个非常重要的点,而Netflix也开源了一个叫变色龙Archaius的配置中心客户端,而且Archaius可以说是比其他客户端具备更多生产级特性,也更灵活。*在NetflixOSS微服务技术栈…

《Java-SE-第三十四章》之Optional

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

RFID工业识别技术:供应链智能化的科技颠覆

RFID工业识别技术,作为物联网的先锋,正在供应链管理领域展现着前所未有的科技颠覆。从物料追踪到库存管理,再到物流配送,RFID技术以其高效的数据采集和智能的自动化处理,彻底改变着传统供应链的运营方式。 RFID在物料追…

全国各城市-货物进出口总额和利用外资-外商直接投资额实际使用额(1999-2020年)

最新数据显示,全国各城市外商直接投资额实际使用额在过去一年中呈现了稳步增长的趋势。这一数据为研究者提供了对中国外商投资活动的全面了解,并对未来投资趋势和政策制定提供了重要参考。 首先,这一数据反映了中国各城市作为外商投资的热门目…

Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。 全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建[1] Mac 上安装 Prometheus brew install prometheus 安装路径在 /usr/local/Cellar/prometheus/2.20.1, 配置文件在 /usr…

群晖安装wireguard(群晖7.1)

前言 上篇文章介绍了乌班图如何安装wireguard,但是感觉虚拟机安装有损优雅性。 本期视频我们介绍使用群晖安装wireguard。 由于原来黑群晖内核版本太低了。 我这里升级到群晖dns918(7.1版本) 内核版本为4.4 实际上这仍然不满足wireguar…

k8s之StorageClass(NFS)

一、前言 1、环境 k8s v1.23.5 ,服务器是centos7.9 192.168.164.20 k8s-master1 192.168.164.30 k8s-node1 192.168.164.40 k8s-node2 2、貌似storageClass在kubernetes v1.20就被砍了。 因为它比较慢,而且耗资源,但可以通过不同的实现镜…

SpringBoot启动图标替换-banner文件

1.banner.txt文件内容如下 ${AnsiColor.BRIGHT_YELLOW}${AnsiStyle.BOLD}_________ .__ __________ __ / _____/____________|__| ____ ____\______ \ ____ _____/ |_ \_____ \\____ \_ __ \ |/ \ / ___\| | _//…

cmake扩展(1)——VS+CMake创建Qt项目

创建项目 创建CMakeLists #cmake最低版本 cmake_minimum_required(VERSION 3.10) #项目名 project(regextool)#查找所有*.h,*.ui,*.cpp文件,并存入SOURCES中 file(GLOB SOURCES "*.cpp" "*.ui" "*.h")#开启moc set(CMAKE_AUTOMOC O…

Leetcode33 搜索旋转排序数组

题解: /*** 旋转排序数组可分为N1 N2两个部分,如:[4,5,6,7,1,2,3],N1为[4,5,6,7],N2为[1,2,3]** 必然满足以下两个条件:* 1. N1和N2都是分别递增的;* 2. N1中的所有元素大于N2中的所有元素;** …

Python-OpenCV中的图像处理-颜色空间转换

Python-OpenCV中的图像处理-颜色空间转换 颜色空间转换获取HSV的值 颜色空间转换 在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种: BGR G r a y 和 B G R Gray 和 BGR Gray和BGRHSV。 注意:在 OpenCV 的…