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

news/2024/5/18 22:51:41 标签: grafana, prometheus, jvm

场景

        为保障java服务正常运行,对服务的jvm进行监控,通过使用actuator组件监控jvm情况,使用prometheus对数据进行采集,并在Grafana展现。

         基于k8s场景

prometheus数据收集

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-server
  name: lizz-test-server
  namespace: lizz
...
# 查看k8s中service
kubectl describe service lizz-test-server -n lizz


#输出
name:                     lizz-test-server
Namespace:                lizz
Labels:                   prometheus=jvm
                          app=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: 30s
  evaluation_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.path
            replacement: /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.niftyadmin.cn/n/4933560.html

相关文章

PP模块生产过程检验(工序检验)

质量检验是在一些情形下对物料进行检查的一个操作,用于检验物料是否符合标准。 1.常见检验类型: (1)进货检验(Incoming material Quality Check,IQC) (2) 生产过程检验(In Process Quality Check,IQPC) (3) 最终检验/产品检验(Final Quality Check,FQC) (4)出…

2023最全黑客工具合集(附github地址)

首先,恭喜你发现了宝藏。 本文章集成了2023全网优秀的开源攻防武器项目,包含: 信息收集工具(自动化利用工具、资产发现工具、目录扫描工具、子域名收集工具、指纹识别工具、端口扫描工具、各种插件....etc...)漏洞利…

Ajax 笔记(一)—— Ajax 入门

笔记目录 1. Ajax 入门1.1 Ajax 概念1.2 axios 使用1.2.1 URL1.2.2 URL 查询参数1.2.3 小案例-查询地区列表1.2.4 常用请求方法和数据提交1.2.5 错误处理 1.3 HTTP 协议1.3.1 请求报文1.3.2 响应报文 1.4 接口文档1.5 案例1.5.1 用户登录(主要业务)1.5.2…

数据库数据恢复-Oracle数据库数据恢复案例

数据库数据恢复环境: Oracle数据库ASM磁盘组有4块成员盘。 数据库故障&分析: Oracle数据库ASM磁盘组掉线 ,ASM实例无法挂载,用户联系我们要求恢复oracle数据库。 数据库数据恢复工程师拿到磁盘后,先将所有磁盘以只…

tensorflow / tensorflow-gpu cuda cudNN tensorRT 安装,启用显卡加速

tensorflow / tensorflow-gpu cuda cudNN tensorRT 安装,启用显卡加速 说明 Tensorflow-GPU 已被移除。请安装 tensorflow 。 tensorflow 通过 Nvidia CUDA 支持 GPU 加速操作。 自 2019 年 9月发布 的 TensorFlow2.1 以来,tensorFlow 和 tensorflow-GPU 一直是同…

阿里云预装LAMP应用导致MySQL不显示访问密码如何解决

😀前言 本篇博文是关于阿里云云服务器ECS部署MySQL过程中出现的一下坑,希望能够帮助到您😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家…

Uniapp录音实时回调原生插件-YL-AudioRecorder

YL-AudioRecorder 插件地址:https://ext.dcloud.net.cn/plugin?id14028 升级版 YL-AudioRecorderPlus 支持mp3录制及实时回调:https://ext.dcloud.net.cn/plugin?id14047 插件说明: 由于uni提供的录音管理器uni.getRecorderManager()&am…

C++初阶语法——类型指示符auto和空指针nullptr

前言:本篇文章的重点 1.C中的类型指示符auto 2.借由auto实现的范围for 3.C为什么要创建nullptr而不是用原本的NULL。 目录 一.auto1.auto的含义及使用2.auto使用注意事项3.范围for(重头戏)范围for注意事项 二.nullptr 一.auto 1.auto的含义及…