首页 > 其他分享 >Grafana Query类型模板变量的使用

Grafana Query类型模板变量的使用

时间:2023-06-01 21:23:56浏览次数:37  
标签:false nodename label Grafana instance Query null true 模板

一、背景

假设我有2种类型的服务器,一种是本地电脑(每个指标名称都存在{nodename=‘mac-local’}),一种是阿里云服务器(每个指标名称都存在{nodename=‘aliyun’}),同时每个指标下都存在一个 {instance=‘具体的服务器的ip地址’}标签。

即我们采集的时间序列大致上都有如下标签:
eg:
node_uname_info{nodename='xxxx',instance='yyyy'}

二、需求

我们想监控一下每台主机的cpu的使用情况。同时不能在一个图形上显示出所有的机器的cpu使用率,需要根据用户的选择而显示。即要出现下图所示的结果,这个情况我们可以通过grafana的模板变量来实现。

 从上图可以,instance的出现是根据 服务器类型 的选择而不同的。

三、实现步骤

1、创建一个Dashboard

2、设置模板变量

1、在Dashboard页面点击小齿轮⚙️图标。

2、点击创建一个变量

3、添加 nodename 变量,获取服务器的类型

4、添加 instance 变量

注意:
instance变量的值是根据上一步 nodename 变量的值而来的,及选择不同的 nodename,instance 的值应该是不同的。及在 instance 变量的查询语句中需要引用 nodename 变的值,通过 $nodename 即可引用。

完成上方出现的3,4两步,即可出现需求中出现的画面

3、创建一个图表,监控一下 cpu 的使用率

4、上方例子的完成json字符串

{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": true,
  "gnetId": null,
  "graphTooltip": 0,
  "id": 3,
  "iteration": 1616217012533,
  "links": [],
  "panels": [
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": null,
      "decimals": 2,
      "description": "",
      "fieldConfig": {
        "defaults": {
          "custom": {},
          "unit": "percent"
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 8,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "hiddenSeries": false,
      "id": 2,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": true,
        "min": true,
        "rightSide": true,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 1,
      "nullPointMode": "null",
      "options": {
        "alertThreshold": true
      },
      "percentage": false,
      "pluginVersion": "7.4.3",
      "pointradius": 2,
      "points": true,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "expr": "(1 - avg(irate(node_cpu_seconds_total{mode='idle',nodename=~\"$nodename\",instance=~\"$instance\"}[5m])) by (instance)) * 100",
          "interval": "",
          "legendFormat": "{{instance}} CPU使用率",
          "refId": "A"
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [],
      "timeShift": null,
      "title": "$instance CPU使用率",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "$$hashKey": "object:231",
          "format": "percent",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "$$hashKey": "object:232",
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    }
  ],
  "schemaVersion": 27,
  "style": "dark",
  "tags": [],
  "templating": {
    "list": [
      {
        "allValue": null,
        "current": {
          "selected": true,
          "tags": [],
          "text": [
            "mac-local"
          ],
          "value": [
            "mac-local"
          ]
        },
        "datasource": null,
        "definition": "label_values(node_uname_info{nodename=~\".*\"},nodename)",
        "description": null,
        "error": null,
        "hide": 0,
        "includeAll": false,
        "label": "服务器类型",
        "multi": true,
        "name": "nodename",
        "options": [
          {
            "selected": false,
            "text": "aliyun",
            "value": "aliyun"
          },
          {
            "selected": true,
            "text": "mac-local",
            "value": "mac-local"
          }
        ],
        "query": {
          "query": "label_values(node_uname_info{nodename=~\".*\"},nodename)",
          "refId": "StandardVariableQuery"
        },
        "refresh": 0,
        "regex": "",
        "skipUrlSync": false,
        "sort": 0,
        "tagValuesQuery": "",
        "tags": [],
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      },
      {
        "allValue": null,
        "current": {
          "selected": true,
          "text": [
            "localhost:9081"
          ],
          "value": [
            "localhost:9081"
          ]
        },
        "datasource": null,
        "definition": "label_values(node_uname_info{nodename=~\"$nodename\",instance=~\".*\"},instance)",
        "description": null,
        "error": null,
        "hide": 0,
        "includeAll": false,
        "label": null,
        "multi": true,
        "name": "instance",
        "options": [
          {
            "selected": true,
            "text": "localhost:9081",
            "value": "localhost:9081"
          }
        ],
        "query": {
          "query": "label_values(node_uname_info{nodename=~\"$nodename\",instance=~\".*\"},instance)",
          "refId": "StandardVariableQuery"
        },
        "refresh": 0,
        "regex": "",
        "skipUrlSync": false,
        "sort": 0,
        "tagValuesQuery": "",
        "tags": [],
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      }
    ]
  },
  "time": {
    "from": "now-5m",
    "to": "now"
  },
  "timepicker": {},
  "timezone": "",
  "title": "测试模板变量",
  "uid": "Umb3YDQMz",
  "version": 6
}

链接:https://blog.csdn.net/fu_huo_1993/article/details/115026228

标签:false,nodename,label,Grafana,instance,Query,null,true,模板
From: https://www.cnblogs.com/wuchangblog/p/17450240.html

相关文章

  • 企业级springboot项目架构模板V3.0,开箱即用
    此次3.0更新点:1.加入文件服务(quick-storage)功能支持OSS、FTP存储(该服务支持以SDK的方式引入)2.修复sentinel因path路径问题导致流控失效问题3.修复word模板生成PDF文件工具类时首次生成时,图片生成没有成功写入FTP的问题,原因为临时文件路径问题。4.修改部分类的包路径5.auth服......
  • 企业级springboot项目架构模板V1.0,开箱即用
    项目地址:https://gitee.com/liujinxin_ark/quick-template/releases项目问题可在评论中留言,项目持续更新中…quick-template项目介绍软件架构quick-auth-serve工程quick-log-serve工程quick-common工程quick-config工程quick-base-serve工程quick-web-serve工程control目......
  • C#进行word模板占位符替换的几种工具
    word模板中,包含一些需要替换的项,比如{{姓名}}{{年龄}}或者$姓名$$年龄$,从数据库获取信息后,对模板进行替换操作生成新的word文档。简单对以下四种工具做了一下测试:1.NPOI:是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目NPOI操作word的功能很强大,但是读取占位符时,有一......
  • freemarker模板分页处理
    借鉴博客:https://www.cnblogs.com/zhouyu629/p/12433259.html  1、创建一个分页页面:page.html,里面只有分页的内容<#macrofpagepagepagesizetotalpagestotalrecordsurl><li><span>共${totalrecords}条记录&nbsp;&nbsp;第${page}页/共${totalpages}页</span&......
  • 堆栈算法模板
     动态维护中位数一般都是用双堆解决–同理:动态维护第K大数295.数据流的中位数难度困难800收藏分享切换为英文接收动态反馈中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如 arr=[2,3,4] 的中位数是 3 。例如 arr=......
  • Kotlin中的字符串模板
    字符串模板的使用在Kotlin中可以直接在字符串字面值中引用变量,例如:valname="william"valstr="mynameis${name}"println(str)并且Kotlin官方文档建议使用字符串模板来替代字符串连接符的使用,原因在于我们知道String类是immutable的,字符串连接符的实现原理是每次都......
  • 双指针算法模板和一些题目
    什么是同向双指针?什么是相向双指针?双指针的鼻祖题——两数之和TwoSum链表上的快慢指针算法快速排序&归并排序 同向双指针•相向双指针•几乎所有TwoSum变种•Partition•QuickSelect•分成两个部分•分成三个部分•一些你没听过的(但是面试会考的)......
  • C++模板从入门到精通:初阶篇
    一、泛型编程1.1什么是泛型编程?泛型编程是一种编程风格,其中算法以尽可能抽象的方式编写,而不依赖于将在其上执行这些算法的数据形式1。泛型编程可以提高代码的重用性、可维护性和类型安全性。泛型编程的基础是模板,模板是创建泛型类或函数的蓝图或公式。平常写的函数与泛型编程的模板......
  • 模板方法模式
    一、定义定义一个操作中的算法的框架,而将一些步骤延迟到了子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。二、实例来一个经典的脑筋急转弯。把一个大象装进冰箱要几个步骤?然后把一个长颈鹿装进冰箱要几个步骤?三、UML类图  四、钩子函数钩子......
  • python dig trace 功能实现——通过Querying name server IP来判定是否为dns tunnel
    dnstunnel确认方法,查询子域名最终的解析地址:使用方法:pythondig_trace.py "<7cf1e56b67fc90f8caaae86e0787e907>.nsconcreteblock.info"anySelectedrootnameserver: 192.203.230.10['.','info.','nsconcreteblock.info.','<......