当前位置: 首页 > news >正文

redis-exporter grafana面板配置

一、前言

     关于使用tensuns自带的grafana监控模板,监控redis-exporter接口会有一些数据丢失的问题,需要自行修改一下grafana模板的json

二、修改模板

redis grafana模板id:17507

主要是针对cpu使用率和内存使用率做一个说明,因为我在使用该模板时cpu使用率和内存使用率数据缺失

cpu是因为redis_exporter的数据收集中并没有redis_cpu_util这个数据项,所以显示就自然没有数据可以在prometheus查询该项会发现为空,需要使用node_exporter收集的cpu数据来展示

内存使用率会显示一个无穷大的数据,因为内存使用率是使用redis_exporter收集的redis_memory_used_bytes和redis_memory_max_bytes来计算的,我显示无穷大的原因是在配置redis时并没有给redis配置maxmemory最大内存限制,而redis_memory_max_bytes就是取得maxmemory的数据,所以需要给redis配置maxmemory

以下是我修改以后的json文件

修改cpu%项

      "editorMode": "code","exemplar": false,"expr": "redis_cpu_util * on (iid) group_right redis_up{account=~\"$account\",group=~\"$group\"} or label_replace(( 1- avg(rate(node_cpu_seconds_total{mode=\"idle\"}[2m])) by (instance))*100,\"nodehost\",\"$1\",\"instance\",\"(.*):.*\") * on (nodehost) group_left(vendor,account,group,name,region,instance) label_replace(redis_up{account=~\"$account\",group=~\"$group\"},\"nodehost\",\"$1\",\"instance\",\"(.*):.*\")",    #更改该项获取数据的配置,改成获取node_exporter监控的cpu参数"format": "table","hide": false,"instant": true,"interval": "","legendFormat": "__auto","refId": "B"},

修改CPU使用率项

 

"targets": [{"datasource": {"type": "prometheus","uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"},"exemplar": true,"expr": "(1 - avg(rate(node_cpu_seconds_total{instance=~\"$node_host:.+\",mode=\"idle\"}[2m])) by (instance))*100",      #修改该项为从node_exporter获取cpu监控数据"interval": "2m","legendFormat": "CPU使用率","refId": "A"}

还需要增加一个关于node_host的取值,redis_exporter的grafana模板原本的json是没有node_host

 

        {"current": {"selected": false,"text": "10.1.60.19:6379","value": "10.1.60.19:6379"},"datasource": {"type": "prometheus","uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"},"definition": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)","hide": 0,"includeAll": false,"multi": false,"name": "instance","options": [],"query": {"query": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)","refId": "StandardVariableQuery"},"refresh": 2,"regex": "","skipUrlSync": false,"sort": 1,"tagValuesQuery": "","tagsQuery": "","type": "query","useTags": false},                #在此处插入以下内容{"allFormat": "glob","current": {"selected": false,"text": "10.1.60.19","value": "10.1.60.19"},"datasource": {"type": "prometheus","uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"},"definition": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)","hide": 2,"includeAll": false,"label": "NodeHost","multi": false,"multiFormat": "regex values","name": "node_host",        #取node_host值"options": [],"query": {"query": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, instance)","refId": "StandardVariableQuery"},"refresh": 2,"refresh_on_load": false,"regex": "/(.*):.*/","skipUrlSync": false,"sort": 5,"type": "query","useTags": false},                  #到此处截止{"current": {"isNone": true,"selected": false,"text": "None","value": ""},"datasource": {"type": "prometheus","uid": "b270c2e2-cc3e-426b-a9ef-80a48217de5f"},"definition": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, iid)","hide": 2,"includeAll": false,"multi": false,"name": "iid","options": [],"query": {"query": "label_values(redis_up{vendor=~\"$vendor\",account=~\"$account\",group=~\"$group\",name=~\"$name\"}, iid)","refId": "StandardVariableQuery"},"refresh": 2,"regex": "","skipUrlSync": false,"sort": 1,"tagValuesQuery": "","tagsQuery": "","type": "query","useTags": false}

配置完成后可以查看获取数据的语句是否能正确执行

 

 以上就是使用redis grafana模板时的一些问题

相关文章:

  • linux SSH/Telnet/Shell/CMD终端软件之WindTerm
  • 定时获取微博热搜数据
  • 《WebKit 技术内幕》之五(1): HTML解释器和DOM 模型
  • 深度学习模型之yolov8实例分割模型TesorRT部署-python版本
  • Dell戴尔XPS 8930笔记本电脑原装Win10系统 恢复出厂预装OEM系统
  • c JPEG 1D DCT 优化1
  • Camera基础原理与畸变补偿
  • Webpack5入门到原理22:提升打包构建速度
  • EtherNet/IP开发:C++开发CIP源代码
  • 9-数组- 除自身以外数组的乘积
  • 开发实战角度:distinct实现原理及具体优化总结
  • 【QT+QGIS跨平台编译】之一:【sqlite+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • QMediaPlayer 类的应用--音频播放器
  • 专门为机器学习开发的jpy语言
  • go实现判断20000数据范围内哪些是素数(只能被1和它本身整除的数),采用多协程和管道实现
  • 3.7、@ResponseBody 和 @RestController
  • Java,console输出实时的转向GUI textbox
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JS+CSS实现数字滚动
  • Mithril.js 入门介绍
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Octave 入门
  • sessionStorage和localStorage
  • Spark学习笔记之相关记录
  • Spring Boot快速入门(一):Hello Spring Boot
  • webpack入门学习手记(二)
  • 对JS继承的一点思考
  • 浮现式设计
  • 理清楚Vue的结构
  • 线性表及其算法(java实现)
  • 异常机制详解
  • 回归生活:清理微信公众号
  • ​Linux·i2c驱动架构​
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (11)MATLAB PCA+SVM 人脸识别
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (三)docker:Dockerfile构建容器运行jar包
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)甲方乙方——赵民谈找工作
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .libPaths()设置包加载目录
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net 4.0发布后不能正常显示图片问题
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET MVC之AOP
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中的轻量级线程安全
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET中的Exception处理(C#)
  • /deep/和 >>>以及 ::v-deep 三者的区别