Prometheus监控 Redis & Redis Cluster 说明

说明
部署Prometheus+Grafana 来监控Redis

部署

了解了Prometheus是通过拉取的方式来保存监控数据的,可以自己写一个服务来去Redis来获取需要监控的相关指标,也可以直接用现成的exporter,如GitHub上redis_exporter,本文对Redis的监控是通过该导出器进行的。

下载&解压:

#下载
wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz
#解压
tar xvf redis_exporter-v1.3.5.linux-amd64.tar.gz

注意:redis_exporter 版本从 0.x to 1.x 有了很大的改变:为了使redis_exporter更紧密地遵循“编写导出器的最佳实践”,不再直接支持配置(和抓取)多个Redis实例,而是将这一任务推给了Prometheus服务器.
但如果已经按照Prometheus项目的推荐使用了导出器,并且仅scrape了一个实例(例如使用–redis.addr和–redis.password 标志),那么没有任何改变。

准备:

1)在开启redis_exporter [v1.3.5]之前,需要先配置Prometheus,按照Prometheus + Grafana 部署说明之「安装」装好Prometheus之后,修改其配置文件。本次示例是通过文件服务发现来处理的,因为监控服务的同时也要监控系统相关的指标,所以需要node_exporter和redis_exporter。文件发现机制有2种方式:exporter配置可以放到一个文件,也可以为每个实例单独配置文件。如放到一个配置文件:
① 多实例相同密码的抓取(只需要一个redis-exporter),集群信息:

3节点无从,密码 abc
192.168.163.132、133、134 -- 6379
192.168.163.132、133、134 -- 6380

1.1 exporter配置放到一个文件的相关配置:
prometheus.yml:

global:
  scrape_interval:     10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 10s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/nodes-instances.json
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/redis/redis-instances.json
    metrics_path: /scrape
    relabel_configs:
      - action: replace
        source_labels: [\'__address__\']
        regex: (.*):(.*)
        replacement: $1
        target_label: hostip
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
         target_label: instance
      - target_label: __address__
        replacement: 192.168.163.132:9123

nodes-instances.json:

[
  {
    \"targets\": [ \"192.168.163.132:9199\", \"192.168.163.133:9199\",\"192.168.163.134:9199\"]
  }
]

redis-instances.json:

[
  {
    \"targets\": [ \"192.168.163.132:6379\",\"192.168.163.133:6379\",\"192.168.163.134:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\"}
  },
  {
    \"targets\": [ \"192.168.163.132:6380\",\"192.168.163.133:6380\",\"192.168.163.134:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\"}
  }
]

以后如果有相关的实例集群包括主从加进来,只要修改以上2个exporter文件即可。最后开启exporter:

#各个节点执行 node-exporter:
./node_exporter --web.listen-address=:9199
#指定节点执行 redis_exporter:
./redis_exporter  -redis-only-metrics  -redis.password abc -web.listen-address=:9123

1.2 exporter配置独立存放的相关配置:
prometheus.yml:

global:
  scrape_interval:     10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 10s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/*.yml
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/redis/*.yml
    metrics_path: /scrape
    relabel_configs:
      - action: replace
        source_labels: [\'__address__\']
        regex: (.*):(.*)
        replacement: $1
        target_label: hostip
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.163.132:9123

targets/node/*.yml:

# ls -lh /etc/prometheus/targets/node/*.yml
-rw-r--r-- 1 root root 117 4月  18 14:51 /etc/prometheus/targets/node/test2_node_exporter.yml
-rw-r--r-- 1 root root 117 4月  18 14:51 /etc/prometheus/targets/node/test3_node_exporter.yml
-rw-r--r-- 1 root root 117 4月  18 14:51 /etc/prometheus/targets/node/test4_node_exporter.yml
# cat /etc/prometheus/targets/node/test2_node_exporter.yml
[
  {
    \"targets\": [\"192.168.163.132:9199\"],
    \"labels\": {\"env\":\"test\",\"alias\":\"test2\"}
  }
]
# cat /etc/prometheus/targets/node/test3_node_exporter.yml
[
  {
    \"targets\": [\"192.168.163.133:9199\"],
    \"labels\": {\"env\":\"test\",\"alias\":\"test3\"}
  }
]
# cat /etc/prometheus/targets/node/test4_node_exporter.yml
[
  {
    \"targets\": [\"192.168.163.134:9199\"],
    \"labels\": {\"env\":\"test\",\"alias\":\"test4\"}
  }
]

targets/redis/*.yml:

# ls -lh /etc/prometheus/targets/redis/*.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/test2_6379_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/test2_6380_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/test3_6379_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:15 /etc/prometheus/targets/redis/test3_6380_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/test4_6379_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:15 /etc/prometheus/targets/redis/test4_6380_redis_exporter.yml
# cat /etc/prometheus/targets/redis/test2_6379_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.132:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\",\"alias\":\"test2\"}
  }
]
# cat /etc/prometheus/targets/redis/test3_6379_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.133:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\",\"alias\":\"test3\"}
  }
]
# cat /etc/prometheus/targets/redis/test4_6379_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.134:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\",\"alias\":\"test4\"}
  }
]
# cat /etc/prometheus/targets/redis/test2_6380_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.132:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\",\"alias\":\"test2\"}
  }
]
# cat /etc/prometheus/targets/redis/test3_6380_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.133:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\",\"alias\":\"test3\"}
  }
]
# cat /etc/prometheus/targets/redis/test4_6380_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.134:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\",\"alias\":\"test4\"}
  }
]

以后如果有相关的实例集群加进来包括主从,只要新增2类exporter文件即可。最后开启exporter:

#各个节点执行 node-exporter:
./node_exporter --web.listen-address=:9199
#指定节点执行 redis_exporter:
./redis_exporter  -redis-only-metrics  -redis.password abc -web.listen-address=:9123

以上2种通过文件服务发现的方法,推荐第2个。因为新增的文件有问题也不影响服务,修改文件可能会引发问题;并且也可以为各个节点打需要的labels。
最后配置Grafana,效果:
\"\"
JSON Model:

{
  \"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\": 13,
  \"iteration\": 1587194136640,
  \"links\": [],
  \"panels\": [
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群个数\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 0,
        \"y\": 0
      },
      \"id\": 8,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(count(redis_up{cluster=~\\\"$cluster\\\"}>0) by (cluster))\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 5,
        \"y\": 0
      },
      \"id\": 4,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{cluster=~\\\"$cluster\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群活跃节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 4,
        \"x\": 10,
        \"y\": 0
      },
      \"id\": 6,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{cluster=~\\\"$cluster\\\"}>0)\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群活跃节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorPrefix\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"主节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 14,
        \"y\": 0
      },
      \"id\": 10,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{cluster=~\\\"$cluster\\\", role=\\\"master\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"主节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"从节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 19,
        \"y\": 0
      },
      \"id\": 12,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{cluster=~\\\"$cluster\\\", role=\\\"slave\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"从节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redus  Cluster OPS指标\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 16,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"ceil(sum(rate(redis_commands_processed_total{cluster=~\\\"$cluster\\\",instance=~\\\"$master\\\"}[$interval])) by (cluster))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{cluster}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis Cluster OPS\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用大小值\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 18,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_memory_used_bytes{instance=~\\\"$instance\\\"} \",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用大小\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"bytes\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis Server  CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 14,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"100* (rate(redis_cpu_sys_seconds_total{instance=~\\\"$instance\\\"}[$interval]) + rate(redis_cpu_user_seconds_total{instance=~\\\"$instance\\\"}[$interval]))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 20,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(redis_memory_used_bytes{instance=~\\\"$instance\\\"} / redis_config_maxmemory{instance=~\\\"$instance\\\"}) * 100\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 24,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(3,clamp_max((avg by (hostname,mode) ((clamp_max(rate(node_cpu_seconds_total{hostname=~\\\"$host\\\",mode!=\\\"idle\\\"}[$interval]),1)) or (clamp_max(irate(node_cpu_seconds_total{hostname=~\\\"$host\\\",mode!=\\\"idle\\\"}[5m]),1)) ))*100,100))\",
          \"hide\": true,
          \"interval\": \"\",
          \"legendFormat\": \"{{mode}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"1 - avg by (hostname)(rate(node_cpu_seconds_total{hostname=~\\\"$host\\\", mode=\\\"idle\\\"}[$interval]))\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percentunit\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统物理内存利用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 30,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(node_memory_Cached_bytes{hostname=~\\\"$host\\\"} + node_memory_Buffers_bytes{hostname=~\\\"$host\\\"} + node_memory_MemFree_bytes{hostname=~\\\"$host\\\"})/node_memory_MemTotal_bytes{hostname=~\\\"$host\\\"}\",
          \"hide\": true,
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"((node_memory_MemTotal_bytes{hostname=~\\\"$host\\\"} - (node_memory_MemAvailable_bytes{hostname=~\\\"$host\\\"} or (node_memory_MemFree_bytes{hostname=~\\\"$host\\\"} + node_memory_Buffers_bytes{hostname=~\\\"$host\\\"} + node_memory_Cached_bytes{hostname=~\\\"$host\\\"})))*100 / node_memory_MemTotal_bytes{hostname=~\\\"$host\\\"})\",
          \"hide\": false,
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统物理内存利用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": true,
      \"cacheTimeout\": null,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统磁盘使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 32,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": false,
      \"linewidth\": 1,
      \"links\": [],
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pluginVersion\": \"6.7.2\",
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(10,max((1 - node_filesystem_avail_bytes{hostname=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"} / node_filesystem_size_bytes{hostname=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"})*100) by (hostname)  > 0)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统磁盘使用率\",
      \"tooltip\": {
        \"shared\": false,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"series\",
        \"name\": null,
        \"show\": true,
        \"values\": [
          \"current\"
        ]
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点以及集群的 KEYS 总数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 22,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_db_keys{instance=~\\\"$master\\\"}) by (instance,db)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"sum(redis_db_keys{instance=~\\\"$master\\\"}) by (cluster)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{cluster}}_total\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"KEYS 总数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点活跃连接数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 26,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_connected_clients{instance=~\\\"$instance\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostip}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"活跃连接数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点内存碎片率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 28,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_mem_fragmentation_ratio{instance=~\\\"$instance\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"内存碎片率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点 的负载\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 43
      },
      \"hiddenSeries\": false,
      \"id\": 34,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"node_load1{hostname=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"负载(Load)\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    }
  ],
  \"refresh\": \"5s\",
  \"schemaVersion\": 22,
  \"style\": \"dark\",
  \"tags\": [],
  \"templating\": {
    \"list\": [
      {
        \"auto\": true,
        \"auto_count\": 100,
        \"auto_min\": \"1s\",
        \"current\": {
          \"selected\": false,
          \"text\": \"5s\",
          \"value\": \"5s\"
        },
        \"hide\": 0,
        \"label\": \"interval\",
        \"name\": \"interval\",
        \"options\": [
          {
            \"selected\": false,
            \"text\": \"auto\",
            \"value\": \"$__auto_interval_interval\"
          },
          {
            \"selected\": true,
            \"text\": \"5s\",
            \"value\": \"5s\"
          },
          {
            \"selected\": false,
            \"text\": \"30s\",
            \"value\": \"30s\"
          },
          {
            \"selected\": false,
            \"text\": \"1m\",
            \"value\": \"1m\"
          },
          {
            \"selected\": false,
            \"text\": \"10m\",
            \"value\": \"10m\"
          },
          {
            \"selected\": false,
            \"text\": \"30m\",
            \"value\": \"30m\"
          },
          {
            \"selected\": false,
            \"text\": \"1h\",
            \"value\": \"1h\"
          },
          {
            \"selected\": false,
            \"text\": \"6h\",
            \"value\": \"6h\"
          },
          {
            \"selected\": false,
            \"text\": \"12h\",
            \"value\": \"12h\"
          },
          {
            \"selected\": false,
            \"text\": \"1d\",
            \"value\": \"1d\"
          }
        ],
        \"query\": \"5s,30s,1m,10m,30m,1h,6h,12h,1d\",
        \"refresh\": 2,
        \"skipUrlSync\": false,
        \"type\": \"interval\"
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_up,cluster)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Cluster\",
        \"multi\": true,
        \"name\": \"cluster\",
        \"options\": [],
        \"query\": \"label_values(redis_up,cluster)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info,role)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Role\",
        \"multi\": true,
        \"name\": \"role\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info,role)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=~\\\"$role\\\"},instance)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"instance\",
        \"multi\": true,
        \"name\": \"instance\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=~\\\"$role\\\"},instance)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=\\\"master\\\"},instance)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"master\",
        \"multi\": true,
        \"name\": \"master\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=\\\"master\\\"},instance)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_up{cluster=~\\\"$cluster\\\"}, hostip)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"host\",
        \"multi\": true,
        \"name\": \"host\",
        \"options\": [],
        \"query\": \"label_values(redis_up{cluster=~\\\"$cluster\\\"}, hostip)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      }
    ]
  },
  \"time\": {
    \"from\": \"now-5m\",
    \"to\": \"now\"
  },
  \"timepicker\": {
    \"refresh_intervals\": [
      \"5s\",
      \"10s\",
      \"30s\",
      \"1m\",
      \"5m\",
      \"15m\",
      \"30m\",
      \"1h\",
      \"2h\",
      \"1d\"
    ]
  },
  \"timezone\": \"\",
  \"title\": \"Redis_Cluster_V1.35\",
  \"uid\": \"5FfBHG3Zz\",
  \"variables\": {
    \"list\": []
  },
  \"version\": 3
}

②:不同密码多实例抓取,因为使用的是 >1.x 的redis_exporter [v1.3.5],不支持多实例。因为一个export只能指定一个密码,如果想进行多实例不同密码抓取的话,所以需要在Prometheus配置多个redis_exporter,集群信息为:

3节点无从
192.168.163.132、133、134 -- 6379  密码 abc
192.168.163.132、133、134 -- 6380  密码 cba

prometheus.yml:

global:
  scrape_interval:     10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 10s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/*.yml
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter_A\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/redis/A*.yml
    metrics_path: /scrape
    relabel_configs:
      - action: replace
        source_labels: [\'__address__\']
        regex: (.*):(.*)
        replacement: $1
        target_label: hostip
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.163.132:9123
  - job_name: \'redis_exporter_B\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/redis/B*.yml
    metrics_path: /scrape
    relabel_configs:
      - action: replace
        source_labels: [\'__address__\']
        regex: (.*):(.*)
        replacement: $1
        target_label: hostip
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.163.132:9124

targets/redis/*.yml:

# ls -lh /etc/prometheus/targets/redis/A*.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/Atest2_6379_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/Atest3_6379_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/Atest4_6379_redis_exporter.yml
# ls -lh /etc/prometheus/targets/redis/B*.yml
-rw-r--r-- 1 root root 121 4月  18 13:14 /etc/prometheus/targets/redis/Btest2_6380_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:15 /etc/prometheus/targets/redis/Btest3_6380_redis_exporter.yml
-rw-r--r-- 1 root root 121 4月  18 13:15 /etc/prometheus/targets/redis/Btest4_6380_redis_exporter.yml
# cat /etc/prometheus/targets/redis/Atest2_6379_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.132:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\",\"alias\":\"test2\"}
  }
]
# cat /etc/prometheus/targets/redis/Atest3_6379_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.133:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\",\"alias\":\"test3\"}
  }
]
# cat /etc/prometheus/targets/redis/Atest4_6379_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.134:6379\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_one\",\"alias\":\"test4\"}
  }
]
# cat /etc/prometheus/targets/redis/Btest2_6380_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.132:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\",\"alias\":\"test2\"}
  }
]
# cat /etc/prometheus/targets/redis/Btest3_6380_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.133:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\",\"alias\":\"test3\"}
  }
]
# cat /etc/prometheus/targets/redis/Btest4_6380_redis_exporter.yml
[
  {
    \"targets\": [ \"192.168.163.134:6380\"],
    \"labels\":  {\"env\":\"test\",\"cluster\":\"test_two\",\"alias\":\"test4\"}
  }
]

以后如果有相关的实例集群包括主从加进来,只要新增2类exporter文件即可。最后开启exporter:

#指定节点执行 redis_exporter:
./redis_exporter  -redis-only-metrics  -redis.password abc -web.listen-address=:9123
#指定节点执行 redis_exporter:
./redis_exporter  -redis-only-metrics  -redis.password cba -web.listen-address=:9124

最后配置Grafana,效果和①一样,唯一的区别就是②开多个exporter。这样会导致一个问题:每次增加不同密码的节点都会修改Prometheus配置文件,既不安全也不方便。可以通过下面方法来实现多实例不同密码抓取。按照编写导出器的最佳实践,需要像nodes_exporter一样在不同实例的主机上安装和开启redis_exporter,即为每个redis instance开启一个exporter。集群信息为:

集群1:密码 cc
M:
192.168.163.132:15389
192.168.163.133:15389
192.168.163.134:15389
S:
192.168.163.132:15489
192.168.163.133:15489
192.168.163.134:15489
集群2:密码abc
M:
192.168.163.132:6379
192.168.163.133:6379
192.168.163.134:6379
S:
192.168.163.132:6381
192.168.163.133:6381
192.168.163.134:6381

prometheus.yml:

global:
  scrape_interval:     10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 10s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/node*.yml
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/redis/redis*.yml
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostip
    - action: labeldrop
      regex: __meta_filepath

targets/redis/redis*.yml

root@test2:/etc/prometheus/targets/redis# ls -lh redis*
-rw-r--r-- 1 prometheus prometheus 117 4月  18 22:02 redis_test2_15389_exporter.yml
-rw-r--r-- 1 prometheus prometheus 117 4月  18 22:05 redis_test2_15489_exporter.yml
-rw-r--r-- 1 prometheus prometheus 117 4月  18 22:02 redis_test3_15389_exporter.yml
-rw-r--r-- 1 prometheus prometheus 117 4月  18 22:05 redis_test3_15489_exporter.yml
-rw-r--r-- 1 prometheus prometheus 117 4月  18 22:03 redis_test4_15389_exporter.yml
-rw-r--r-- 1 prometheus prometheus 117 4月  18 22:05 redis_test4_15489_exporter.yml
root@test2:/etc/prometheus/targets/redis# cat redis_test2_15389_exporter.yml
[
  {
    \"targets\": [\"192.168.163.132:9121\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"test\",\"alias\":\"test2\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat redis_test3_15389_exporter.yml
[
  {
    \"targets\": [\"192.168.163.133:9121\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"test\",\"alias\":\"test3\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat redis_test4_15389_exporter.yml
[
  {
    \"targets\": [\"192.168.163.134:9121\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"test\",\"alias\":\"test4\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat redis_test2_15489_exporter.yml
[
  {
    \"targets\": [\"192.168.163.132:9122\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"test\",\"alias\":\"test2\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat redis_test3_15489_exporter.yml
[
  {
    \"targets\": [\"192.168.163.133:9122\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"test\",\"alias\":\"test3\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat redis_test4_15489_exporter.yml
[
  {
    \"targets\": [\"192.168.163.134:9122\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"test\",\"alias\":\"test4\"}
  }
]

通过文件服务发现,实现动态添加节点(exporter),一个Redis实例一个exporter,这里只开集群1的exporter,即在test2、test3、test4上各开启2个exporter,共6个exporter对应6个Redis实例,配置完成之后,可以直接到各个监控主机上启动redis_exporter

test2:
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.132:15389 -redis.password cc -web.listen-address=:9121
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.132:15489 -redis.password cc -web.listen-address=:9122
test3:
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.133:15389 -redis.password cc -web.listen-address=:9121
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.133:15489 -redis.password cc -web.listen-address=:9122
test4:
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.134:15389 -redis.password cc -web.listen-address=:9121
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.134:15489 -redis.password cc -web.listen-address=:9122

最后配置Grafana,效果:
\"\"
JSON Model:

{
  \"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\": 13,
  \"iteration\": 1587219062782,
  \"links\": [],
  \"panels\": [
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群个数\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 0,
        \"y\": 0
      },
      \"id\": 8,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(count(redis_up{cluster=~\\\"$cluster\\\"}>0) by (cluster))\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 5,
        \"y\": 0
      },
      \"id\": 4,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{cluster=~\\\"$cluster\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群活跃节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 4,
        \"x\": 10,
        \"y\": 0
      },
      \"id\": 6,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{cluster=~\\\"$cluster\\\"}>0)\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群活跃节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorPrefix\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"主节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 14,
        \"y\": 0
      },
      \"id\": 10,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{cluster=~\\\"$cluster\\\", role=\\\"master\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"主节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"从节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 19,
        \"y\": 0
      },
      \"id\": 12,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{cluster=~\\\"$cluster\\\", role=\\\"slave\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"从节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redus  Cluster OPS指标\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 16,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"ceil(sum(rate(redis_commands_processed_total{cluster=~\\\"$cluster\\\",instance=~\\\"$master\\\"}[$interval])) by (cluster))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{cluster}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis Cluster OPS\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用大小值\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 18,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_memory_used_bytes{instance=~\\\"$instance\\\"} \",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用大小\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"bytes\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis Server  CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 14,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"100* (rate(redis_cpu_sys_seconds_total{instance=~\\\"$instance\\\"}[$interval]) + rate(redis_cpu_user_seconds_total{instance=~\\\"$instance\\\"}[$interval]))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 20,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(redis_memory_used_bytes{instance=~\\\"$instance\\\"} / redis_config_maxmemory{instance=~\\\"$instance\\\"}) * 100\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 24,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(3,clamp_max((avg by (hostname,mode) ((clamp_max(rate(node_cpu_seconds_total{hostname=~\\\"$host\\\",mode!=\\\"idle\\\"}[$interval]),1)) or (clamp_max(irate(node_cpu_seconds_total{hostname=~\\\"$host\\\",mode!=\\\"idle\\\"}[5m]),1)) ))*100,100))\",
          \"hide\": true,
          \"interval\": \"\",
          \"legendFormat\": \"{{mode}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"1 - avg by (hostname)(rate(node_cpu_seconds_total{hostname=~\\\"$host\\\", mode=\\\"idle\\\"}[$interval]))\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percentunit\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统物理内存利用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 30,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(node_memory_Cached_bytes{hostname=~\\\"$host\\\"} + node_memory_Buffers_bytes{hostname=~\\\"$host\\\"} + node_memory_MemFree_bytes{hostname=~\\\"$host\\\"})/node_memory_MemTotal_bytes{hostname=~\\\"$host\\\"}\",
          \"hide\": true,
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"((node_memory_MemTotal_bytes{hostname=~\\\"$host\\\"} - (node_memory_MemAvailable_bytes{hostname=~\\\"$host\\\"} or (node_memory_MemFree_bytes{hostname=~\\\"$host\\\"} + node_memory_Buffers_bytes{hostname=~\\\"$host\\\"} + node_memory_Cached_bytes{hostname=~\\\"$host\\\"})))*100 / node_memory_MemTotal_bytes{hostname=~\\\"$host\\\"})\",
          \"hide\": false,
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统物理内存利用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": true,
      \"cacheTimeout\": null,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统磁盘使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 32,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": false,
      \"linewidth\": 1,
      \"links\": [],
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pluginVersion\": \"6.7.2\",
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(10,max((1 - node_filesystem_avail_bytes{hostname=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"} / node_filesystem_size_bytes{hostname=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"})*100) by (hostname)  > 0)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统磁盘使用率\",
      \"tooltip\": {
        \"shared\": false,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"series\",
        \"name\": null,
        \"show\": true,
        \"values\": [
          \"current\"
        ]
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点以及集群的 KEYS 总数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 22,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_db_keys{instance=~\\\"$master\\\"}) by (instance,db)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"sum(redis_db_keys{instance=~\\\"$master\\\"}) by (cluster)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{cluster}}_total\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"KEYS 总数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点活跃连接数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 26,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_connected_clients{instance=~\\\"$instance\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostip}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"活跃连接数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点内存碎片率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 28,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_mem_fragmentation_ratio{instance=~\\\"$instance\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"内存碎片率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点 的负载\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 43
      },
      \"hiddenSeries\": false,
      \"id\": 34,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"node_load1{hostname=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostname}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"负载(Load)\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    }
  ],
  \"refresh\": \"5s\",
  \"schemaVersion\": 22,
  \"style\": \"dark\",
  \"tags\": [],
  \"templating\": {
    \"list\": [
      {
        \"auto\": true,
        \"auto_count\": 100,
        \"auto_min\": \"1s\",
        \"current\": {
          \"selected\": true,
          \"text\": \"5s\",
          \"value\": \"5s\"
        },
        \"hide\": 0,
        \"label\": \"interval\",
        \"name\": \"interval\",
        \"options\": [
          {
            \"selected\": false,
            \"text\": \"auto\",
            \"value\": \"$__auto_interval_interval\"
          },
          {
            \"selected\": true,
            \"text\": \"5s\",
            \"value\": \"5s\"
          },
          {
            \"selected\": false,
            \"text\": \"30s\",
            \"value\": \"30s\"
          },
          {
            \"selected\": false,
            \"text\": \"1m\",
            \"value\": \"1m\"
          },
          {
            \"selected\": false,
            \"text\": \"10m\",
            \"value\": \"10m\"
          },
          {
            \"selected\": false,
            \"text\": \"30m\",
            \"value\": \"30m\"
          },
          {
            \"selected\": false,
            \"text\": \"1h\",
            \"value\": \"1h\"
          },
          {
            \"selected\": false,
            \"text\": \"6h\",
            \"value\": \"6h\"
          },
          {
            \"selected\": false,
            \"text\": \"12h\",
            \"value\": \"12h\"
          },
          {
            \"selected\": false,
            \"text\": \"1d\",
            \"value\": \"1d\"
          }
        ],
        \"query\": \"5s,30s,1m,10m,30m,1h,6h,12h,1d\",
        \"refresh\": 2,
        \"skipUrlSync\": false,
        \"type\": \"interval\"
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_up,cluster)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Cluster\",
        \"multi\": true,
        \"name\": \"cluster\",
        \"options\": [],
        \"query\": \"label_values(redis_up,cluster)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info,role)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Role\",
        \"multi\": true,
        \"name\": \"role\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info,role)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=~\\\"$role\\\"},instance)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"instance\",
        \"multi\": true,
        \"name\": \"instance\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=~\\\"$role\\\"},instance)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=\\\"master\\\"},instance)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"master\",
        \"multi\": true,
        \"name\": \"master\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=\\\"master\\\"},instance)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_up{cluster=~\\\"$cluster\\\"}, hostip)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"host\",
        \"multi\": true,
        \"name\": \"host\",
        \"options\": [],
        \"query\": \"label_values(redis_up{cluster=~\\\"$cluster\\\"}, hostip)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      }
    ]
  },
  \"time\": {
    \"from\": \"now-5m\",
    \"to\": \"now\"
  },
  \"timepicker\": {
    \"refresh_intervals\": [
      \"5s\",
      \"10s\",
      \"30s\",
      \"1m\",
      \"5m\",
      \"15m\",
      \"30m\",
      \"1h\",
      \"2h\",
      \"1d\"
    ]
  },
  \"timezone\": \"\",
  \"title\": \"Redis_Cluster_V1.35\",
  \"uid\": \"5FfBHG3Zz\",
  \"variables\": {
    \"list\": []
  },
  \"version\": 4
}

③:旧版本redis_exporter [v0.34.1]支持多实例不同密码,集群信息:

集群1:密码 cc
M:
192.168.163.132:15389
192.168.163.133:15389
192.168.163.134:15389
S:
192.168.163.132:15489
192.168.163.133:15489
192.168.163.134:15489
集群2:密码abc
M:
192.168.163.132:6379
192.168.163.133:6379
192.168.163.134:6379
S:
192.168.163.132:6381
192.168.163.133:6381
192.168.163.134:6381

prometheus.yml:

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/nodes-instances.json
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostip
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    static_configs:
    - targets: [\'192.168.163.132:9128\']

redis_exporter直接用命令行启动:对应的参数有-redis.addr、-redis.alias、-redis.password:

# ./redis_exporter -redis-only-metrics -redis.addr 192.168.163.132:15389,192.168.163.133:15389,192.168.163.134:15389,192.168.163.132:15489,192.168.163.133:15489,192.168.163.134:15489,192.168.163.132:6379,192.168.163.133:6379,192.168.163.134:6379,192.168.163.132:6381,192.168.163.133:6381,192.168.163.134:6381 -redis.alias test,test,test,test,test,test,test123,test123,test123,test123,test123,test123 -redis.password cc,cc,cc,cc,cc,cc,abc,abc,abc,abc,abc,abc -web.listen-address :9128
INFO[0000] Redis Metrics Exporter v0.34.1    build date: 2019-05-09-15:42:21    sha1: 1c168d07eff09e64efb18600a35664d6666926e6    Go: go1.12.5
INFO[0000] Providing metrics at :9128/metrics
INFO[0000] Connecting to redis hosts: []string{\"192.168.163.132:15389\", \"192.168.163.133:15389\", \"192.168.163.134:15389\", \"192.168.163.132:15489\", \"192.168.163.133:15489\", \"192.168.163.134:15489\", \"192.168.163.132:6379\", \"192.168.163.133:6379\", \"192.168.163.134:6379\", \"192.168.163.132:6381\", \"192.168.163.133:6381\", \"192.168.163.134:6381\"}
INFO[0000] Using alias: []string{\"test\", \"test\", \"test\", \"test\", \"test\", \"test\", \"test123\", \"test123\", \"test123\", \"test123\", \"test123\", \"test123\"}

注意:参数、密码和实例的他们是一一对应的。最后配置Grafana,效果:
\"\"
JSON Model:

{
  \"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\": 14,
  \"iteration\": 1587221739977,
  \"links\": [],
  \"panels\": [
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群个数\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 0,
        \"y\": 0
      },
      \"id\": 8,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(count(redis_up{alias=~\\\"$cluster\\\"}>0) by (alias))\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 5,
        \"y\": 0
      },
      \"id\": 4,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{alias=~\\\"$cluster\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群活跃节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 4,
        \"x\": 10,
        \"y\": 0
      },
      \"id\": 6,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{alias=~\\\"$cluster\\\"}>0)\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群活跃节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorPrefix\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"主节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 14,
        \"y\": 0
      },
      \"id\": 10,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{alias=~\\\"$cluster\\\", role=\\\"master\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"主节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"从节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 19,
        \"y\": 0
      },
      \"id\": 12,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{alias=~\\\"$cluster\\\", role=\\\"slave\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"从节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redus  Cluster OPS指标\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 16,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"ceil(sum(rate(redis_commands_processed_total{alias=~\\\"$cluster\\\",addr=~\\\"$master\\\"}[$interval])) by (alias))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis Cluster OPS\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用大小值\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 18,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_memory_used_bytes{addr=~\\\"$instance\\\"} \",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{addr}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用大小\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"bytes\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis Server  CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 14,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"100* (rate(redis_used_cpu_sys{addr=~\\\"$instance\\\"}[$interval]) + rate(redis_used_cpu_user{addr=~\\\"$instance\\\"}[$interval]))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{addr}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 20,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(redis_memory_used_bytes{addr=~\\\"$instance\\\"} / redis_config_maxmemory{addr=~\\\"$instance\\\"}) * 100\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{addr}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 24,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(3,clamp_max((avg by (hostname,mode) ((clamp_max(rate(node_cpu_seconds_total{hostname=~\\\"$host\\\",mode!=\\\"idle\\\"}[$interval]),1)) or (clamp_max(irate(node_cpu_seconds_total{hostname=~\\\"$host\\\",mode!=\\\"idle\\\"}[5m]),1)) ))*100,100))\",
          \"hide\": true,
          \"interval\": \"\",
          \"legendFormat\": \"{{mode}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"1 - avg by (hostip)(rate(node_cpu_seconds_total{hostip=~\\\"$host\\\", mode=\\\"idle\\\"}[$interval]))\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostip}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percentunit\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统物理内存利用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 30,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"((node_memory_MemTotal_bytes{hostip=~\\\"$host\\\"} - (node_memory_MemAvailable_bytes{hostip=~\\\"$host\\\"} or (node_memory_MemFree_bytes{hostip=~\\\"$host\\\"} + node_memory_Buffers_bytes{hostip=~\\\"$host\\\"} + node_memory_Cached_bytes{hostip=~\\\"$host\\\"})))*100 / node_memory_MemTotal_bytes{hostip=~\\\"$host\\\"})\",
          \"hide\": false,
          \"interval\": \"\",
          \"legendFormat\": \"{{hostip}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统物理内存利用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": true,
      \"cacheTimeout\": null,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统磁盘使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 32,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": false,
      \"linewidth\": 1,
      \"links\": [],
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pluginVersion\": \"6.7.2\",
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(10,max((1 - node_filesystem_avail_bytes{hostip=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"} / node_filesystem_size_bytes{hostip=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"})*100) by (hostip)  > 0)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostip}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统磁盘使用率\",
      \"tooltip\": {
        \"shared\": false,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"series\",
        \"name\": null,
        \"show\": true,
        \"values\": [
          \"current\"
        ]
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点以及集群的 KEYS 总数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 22,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_db_keys{addr=~\\\"$master\\\"}) by (addr,db)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{addr}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"sum(redis_db_keys{addr=~\\\"$master\\\"}) by (alias)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{alias}}_total\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"KEYS 总数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点活跃连接数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 26,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_connected_clients{addr=~\\\"$instance\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{addr}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"活跃连接数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点内存碎片率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 28,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_mem_fragmentation_ratio{addr=~\\\"$instance\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{addr}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"内存碎片率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点 的负载\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 43
      },
      \"hiddenSeries\": false,
      \"id\": 34,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"node_load1{hostip=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{hostip}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"负载(Load)\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    }
  ],
  \"refresh\": \"5s\",
  \"schemaVersion\": 22,
  \"style\": \"dark\",
  \"tags\": [],
  \"templating\": {
    \"list\": [
      {
        \"auto\": true,
        \"auto_count\": 100,
        \"auto_min\": \"1s\",
        \"current\": {
          \"selected\": true,
          \"text\": \"5s\",
          \"value\": \"5s\"
        },
        \"hide\": 0,
        \"label\": \"interval\",
        \"name\": \"interval\",
        \"options\": [
          {
            \"selected\": false,
            \"text\": \"auto\",
            \"value\": \"$__auto_interval_interval\"
          },
          {
            \"selected\": true,
            \"text\": \"5s\",
            \"value\": \"5s\"
          },
          {
            \"selected\": false,
            \"text\": \"30s\",
            \"value\": \"30s\"
          },
          {
            \"selected\": false,
            \"text\": \"1m\",
            \"value\": \"1m\"
          },
          {
            \"selected\": false,
            \"text\": \"10m\",
            \"value\": \"10m\"
          },
          {
            \"selected\": false,
            \"text\": \"30m\",
            \"value\": \"30m\"
          },
          {
            \"selected\": false,
            \"text\": \"1h\",
            \"value\": \"1h\"
          },
          {
            \"selected\": false,
            \"text\": \"6h\",
            \"value\": \"6h\"
          },
          {
            \"selected\": false,
            \"text\": \"12h\",
            \"value\": \"12h\"
          },
          {
            \"selected\": false,
            \"text\": \"1d\",
            \"value\": \"1d\"
          }
        ],
        \"query\": \"5s,30s,1m,10m,30m,1h,6h,12h,1d\",
        \"refresh\": 2,
        \"skipUrlSync\": false,
        \"type\": \"interval\"
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_up,alias)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Cluster\",
        \"multi\": true,
        \"name\": \"cluster\",
        \"options\": [],
        \"query\": \"label_values(redis_up,alias)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{alias=~\\\"$cluster\\\"},role)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Role\",
        \"multi\": true,
        \"name\": \"role\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{alias=~\\\"$cluster\\\"},role)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{alias=~\\\"$cluster\\\",role=~\\\"$role\\\"},addr)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"instance\",
        \"multi\": true,
        \"name\": \"instance\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{alias=~\\\"$cluster\\\",role=~\\\"$role\\\"},addr)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{alias=~\\\"$cluster\\\",role=\\\"master\\\"},addr)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"master\",
        \"multi\": true,
        \"name\": \"master\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{alias=~\\\"$cluster\\\",role=\\\"master\\\"},addr)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_up{alias=~\\\"$cluster\\\"}, addr)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"host\",
        \"multi\": true,
        \"name\": \"host\",
        \"options\": [],
        \"query\": \"label_values(redis_up{alias=~\\\"$cluster\\\"}, addr)\",
        \"refresh\": 1,
        \"regex\": \"(.*):.*\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      }
    ]
  },
  \"time\": {
    \"from\": \"now-5m\",
    \"to\": \"now\"
  },
  \"timepicker\": {
    \"refresh_intervals\": [
      \"5s\",
      \"10s\",
      \"30s\",
      \"1m\",
      \"5m\",
      \"15m\",
      \"30m\",
      \"1h\",
      \"2h\",
      \"1d\"
    ]
  },
  \"timezone\": \"\",
  \"title\": \"Redis_Cluster_V0.34\",
  \"uid\": \"5FfBHG3Zz1\",
  \"variables\": {
    \"list\": []
  },
  \"version\": 1
}

3)导入dashboard(763)到Grafana,展示的监控图:
\"\"
需要注意的是,监控面板上看到的是exporter的IP和端口,看不到Redis实例的端口,如果是一台机器部署一台Redis实例,则可以直接使用主机名。或则修改相应的labels来自定义需求。除了修改labels之外,还可以自定义数据源,如使用MySQL作为新数据源。
5)MySQL做为数据源定制模板
添加数据源:
\"\"
表结构:

CREATE TABLE `cluster_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'主键\',
  `cluster_type` varchar(64) DEFAULT NULL COMMENT \'集群类型\',
  `cluster_name` varchar(64) DEFAULT NULL COMMENT \'集群名\',
  `hostname` varchar(64) DEFAULT NULL COMMENT \'主机名\',
  `host_ip` varchar(64) DEFAULT NULL COMMENT \'IP\',
  `port` int(11) DEFAULT NULL COMMENT \'服务端口\',
  `role` varchar(64) DEFAULT NULL COMMENT \'服务角色\',
  `comments` varchar(500) DEFAULT NULL COMMENT \'集群描述\',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT \'更新时间\',
  PRIMARY KEY (`id`),
  KEY `idx_create_time` (`create_time`),
  KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=\'集群信息\'

表记录:

mysql> select * from cluster_info;
+----+---------------+--------------+----------+-----------------+------+--------+--------------+---------------------+---------------------+
| id | cluster_type  | cluster_name | hostname | host_ip         | port | role   | comments     | create_time         | update_time         |
+----+---------------+--------------+----------+-----------------+------+--------+--------------+---------------------+---------------------+
|  1 | Redis_Cluster | testX        | test2    | 192.168.163.132 | 6380 | master | 测试集群     | 2020-04-08 19:22:56 | 2020-04-09 11:19:13 |
|  2 | Redis_Cluster | testX        | test3    | 192.168.163.133 | 6380 | master | 测试集群     | 2020-04-08 19:24:29 | 2020-04-09 11:19:16 |
|  3 | Redis_Cluster | testX        | test4    | 192.168.163.134 | 6380 | master | 测试集群     | 2020-04-08 19:24:33 | 2020-04-09 11:19:16 |
+----+---------------+--------------+----------+-----------------+------+--------+--------------+---------------------+---------------------+

5.1 使用编写导出器的最佳实践:
prometheus.yml:

global:
  scrape_interval:     10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 10s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/node*.yml
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/redis/Xredis*.yml
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostip
    - action: labeldrop
      regex: __meta_filepath

targets/node/node*.yml

root@test2:/etc/prometheus/targets/node# ls -lh node*.yml
-rw-r--r-- 1 prometheus prometheus 103 4月  19 01:24 node_test2_exporter.yml
-rw-r--r-- 1 prometheus prometheus 103 4月  18 16:18 node_test3_exporter.yml
-rw-r--r-- 1 prometheus prometheus 103 4月  18 16:18 node_test4_exporter.yml
root@test2:/etc/prometheus/targets/node# cat node_test2_exporter.yml
[
  {
    \"targets\": [\"192.168.163.132:9199\"],
    \"labels\": {\"env\":\"test\",\"instance\":\"test2\"}
  }
]
root@test2:/etc/prometheus/targets/node# cat node_test3_exporter.yml
[
  {
    \"targets\": [\"192.168.163.133:9199\"],
    \"labels\": {\"env\":\"test\",\"instance\":\"test3\"}
  }
]
root@test2:/etc/prometheus/targets/node# cat node_test4_exporter.yml
[
  {
    \"targets\": [\"192.168.163.134:9199\"],
    \"labels\": {\"env\":\"test\",\"instance\":\"test4\"}
  }
]

targets/redis/Xredis*.yml

root@test2:/etc/prometheus/targets/redis# ls -lh Xredis*.yml
-rw-r--r-- 1 root root 118 4月  19 00:34 Xredis_test2_6380_exporter.yml
-rw-r--r-- 1 root root 118 4月  19 00:36 Xredis_test3_6380_exporter.yml
-rw-r--r-- 1 root root 118 4月  19 00:35 Xredis_test4_6380_exporter.yml
root@test2:/etc/prometheus/targets/redis# cat Xredis_test2_6380_exporter.yml
[
  {
    \"targets\": [\"192.168.163.132:9123\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"testX\",\"alias\":\"test2\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat Xredis_test3_6380_exporter.yml
[
  {
    \"targets\": [\"192.168.163.133:9123\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"testX\",\"alias\":\"test3\"}
  }
]
root@test2:/etc/prometheus/targets/redis# cat Xredis_test4_6380_exporter.yml
[
  {
    \"targets\": [\"192.168.163.134:9123\"],
    \"labels\": {\"env\":\"test\",\"cluster\":\"testX\",\"alias\":\"test4\"}
  }
]

配置完成之后,可以直接到各个监控主机上启动redis_exporter

test2:
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.132:6380 -redis.password cba  -web.listen-address=:9123
test3:
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.133:6380 -redis.password cba  -web.listen-address=:9123
test4:
./redis_exporter  -redis-only-metrics -redis.addr 192.168.163.134:6380 -redis.password cba  -web.listen-address=:9123

最后配置Grafana,效果:
\"\"
JSON Model:

{
  \"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\": 13,
  \"iteration\": 1587231669738,
  \"links\": [],
  \"panels\": [
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群个数\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 0,
        \"y\": 0
      },
      \"id\": 8,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(count(redis_up{cluster=~\\\"$cluster\\\"}) by (cluster))\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 5,
        \"y\": 0
      },
      \"id\": 4,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{cluster=~\\\"$cluster\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群活跃节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 4,
        \"x\": 10,
        \"y\": 0
      },
      \"id\": 6,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{cluster=~\\\"$cluster\\\"}>0)\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群活跃节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorPrefix\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"主节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 14,
        \"y\": 0
      },
      \"id\": 10,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{cluster=~\\\"$cluster\\\", role=\\\"master\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"主节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"从节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 19,
        \"y\": 0
      },
      \"id\": 12,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{cluster=~\\\"$cluster\\\", role=\\\"slave\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"从节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redus  Cluster OPS指标\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 16,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"ceil(sum(rate(redis_commands_processed_total{cluster=~\\\"$cluster\\\",alias=~\\\"$master\\\"}[$interval])) by (cluster))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{cluster}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis Cluster OPS\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用大小值\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 18,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_memory_used_bytes{alias=~\\\"$host\\\"} \",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用大小\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"bytes\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis Server  CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 14,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"100* (rate(redis_cpu_sys_seconds_total{alias=~\\\"$host\\\"}[$interval]) + rate(redis_cpu_user_seconds_total{alias=~\\\"$host\\\"}[$interval]))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 20,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(redis_memory_used_bytes{alias=~\\\"$host\\\"} / redis_config_maxmemory{alias=~\\\"$host\\\"}) * 100\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 24,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"1 - avg by (instance)(rate(node_cpu_seconds_total{instance=~\\\"$host\\\", mode=\\\"idle\\\"}[$interval]))\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percentunit\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统物理内存利用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 30,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"((node_memory_MemTotal_bytes{instance=~\\\"$host\\\"} - (node_memory_MemAvailable_bytes{instance=~\\\"$host\\\"} or (node_memory_MemFree_bytes{instance=~\\\"$host\\\"} + node_memory_Buffers_bytes{instance=~\\\"$host\\\"} + node_memory_Cached_bytes{instance=~\\\"$host\\\"})))*100 / node_memory_MemTotal_bytes{instance=~\\\"$host\\\"})\",
          \"hide\": false,
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统物理内存利用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": true,
      \"cacheTimeout\": null,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统磁盘使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 32,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": false,
      \"linewidth\": 1,
      \"links\": [],
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pluginVersion\": \"6.7.2\",
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(10,max((1 - node_filesystem_avail_bytes{instance=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"} / node_filesystem_size_bytes{instance=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"})*100) by (instance)  > 0)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统磁盘使用率\",
      \"tooltip\": {
        \"shared\": false,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"series\",
        \"name\": null,
        \"show\": true,
        \"values\": [
          \"current\"
        ]
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点以及集群的 KEYS 总数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 22,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_db_keys{alias=~\\\"$master\\\"}) by (alias,db)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        },
        {
          \"expr\": \"sum(redis_db_keys{alias=~\\\"$master\\\"}) by (cluster)\",
          \"hide\": false,
          \"interval\": \"\",
          \"legendFormat\": \"{{cluster}}_total\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"KEYS 总数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"集群的活跃连接数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 26,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_connected_clients{alias=~\\\"$master\\\"}) by (cluster)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{cluster}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"活跃连接数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点内存碎片率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 28,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_mem_fragmentation_ratio{alias=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"内存碎片率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点 的负载\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 43
      },
      \"hiddenSeries\": false,
      \"id\": 34,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"node_load1{instance=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"负载(Load)\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    }
  ],
  \"refresh\": \"5s\",
  \"schemaVersion\": 22,
  \"style\": \"dark\",
  \"tags\": [],
  \"templating\": {
    \"list\": [
      {
        \"auto\": true,
        \"auto_count\": 100,
        \"auto_min\": \"1s\",
        \"current\": {
          \"selected\": false,
          \"text\": \"5s\",
          \"value\": \"5s\"
        },
        \"hide\": 0,
        \"label\": \"interval\",
        \"name\": \"interval\",
        \"options\": [
          {
            \"selected\": false,
            \"text\": \"auto\",
            \"value\": \"$__auto_interval_interval\"
          },
          {
            \"selected\": true,
            \"text\": \"5s\",
            \"value\": \"5s\"
          },
          {
            \"selected\": false,
            \"text\": \"30s\",
            \"value\": \"30s\"
          },
          {
            \"selected\": false,
            \"text\": \"1m\",
            \"value\": \"1m\"
          },
          {
            \"selected\": false,
            \"text\": \"10m\",
            \"value\": \"10m\"
          },
          {
            \"selected\": false,
            \"text\": \"30m\",
            \"value\": \"30m\"
          },
          {
            \"selected\": false,
            \"text\": \"1h\",
            \"value\": \"1h\"
          },
          {
            \"selected\": false,
            \"text\": \"6h\",
            \"value\": \"6h\"
          },
          {
            \"selected\": false,
            \"text\": \"12h\",
            \"value\": \"12h\"
          },
          {
            \"selected\": false,
            \"text\": \"1d\",
            \"value\": \"1d\"
          }
        ],
        \"query\": \"5s,30s,1m,10m,30m,1h,6h,12h,1d\",
        \"refresh\": 2,
        \"skipUrlSync\": false,
        \"type\": \"interval\"
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select cluster_name from cluster_info where cluster_type = \\\"Redis_Cluster\\\"\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Cluster\",
        \"multi\": true,
        \"name\": \"cluster\",
        \"options\": [],
        \"query\": \"select cluster_name from cluster_info where cluster_type = \\\"Redis_Cluster\\\"\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select role from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Role\",
        \"multi\": true,
        \"name\": \"role\",
        \"options\": [],
        \"query\": \"select role from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"host\",
        \"multi\": true,
        \"name\": \"host\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"master\\\"\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"master\",
        \"multi\": true,
        \"name\": \"master\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"master\\\"\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"slave\\\"\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"slave\",
        \"multi\": true,
        \"name\": \"slave\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"slave\\\"\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"Prometheus\",
        \"definition\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=~\\\"$role\\\"},instance)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"instance\",
        \"multi\": true,
        \"name\": \"instance\",
        \"options\": [],
        \"query\": \"label_values(redis_instance_info{cluster=~\\\"$cluster\\\",role=~\\\"$role\\\"},instance)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      }
    ]
  },
  \"time\": {
    \"from\": \"now-5m\",
    \"to\": \"now\"
  },
  \"timepicker\": {
    \"refresh_intervals\": [
      \"5s\",
      \"10s\",
      \"30s\",
      \"1m\",
      \"5m\",
      \"15m\",
      \"30m\",
      \"1h\",
      \"2h\",
      \"1d\"
    ]
  },
  \"timezone\": \"\",
  \"title\": \"Redis_Cluster_V1.35\",
  \"uid\": \"5FfBHG3Zz\",
  \"variables\": {
    \"list\": []
  },
  \"version\": 9
}
\"复制代码\"

5.2 使用老版本的exporter:
prometheus.yml

\"\"

\"复制代码\"
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.132:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/node*.yml
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    static_configs:
    - targets: [\'192.168.163.132:9128\']

配置完成之后,可以直接到监控主机上启动redis_exporter

./redis_exporter -redis-only-metrics -redis.addr 192.168.163.132:6380,192.168.163.133:6380,192.168.163.134:6380 -redis.alias test2,test3,test4 -redis.password cba,cba,cba -web.listen-address :9128

最后配置Grafana,效果:
\"\"
JSON Model:

{
  \"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\": 13,
  \"iteration\": 1587234344797,
  \"links\": [],
  \"panels\": [
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": \"MySQL\",
      \"description\": \"集群个数\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 0,
        \"y\": 0
      },
      \"id\": 8,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"format\": \"table\",
          \"group\": [],
          \"metricColumn\": \"none\",
          \"rawQuery\": true,
          \"rawSql\": \"select count(distinct cluster_name) from cluster_info where cluster_type = \'Redis_Cluster\'\",
          \"refId\": \"A\",
          \"select\": [
            [
              {
                \"params\": [
                  \"id\"
                ],
                \"type\": \"column\"
              }
            ]
          ],
          \"table\": \"cluster_info\",
          \"timeColumn\": \"create_time\",
          \"timeColumnType\": \"timestamp\",
          \"where\": [
            {
              \"name\": \"$__timeFilter\",
              \"params\": [],
              \"type\": \"macro\"
            }
          ]
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 5,
        \"y\": 0
      },
      \"id\": 4,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{alias=~\\\"$all_host\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"集群活跃节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 4,
        \"x\": 10,
        \"y\": 0
      },
      \"id\": 6,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_up{alias=~\\\"$all_host\\\"}>0)\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"集群活跃节点数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorPrefix\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"主节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 14,
        \"y\": 0
      },
      \"id\": 10,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{alias=~\\\"$master\\\", role=\\\"master\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"主节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"cacheTimeout\": null,
      \"colorBackground\": false,
      \"colorValue\": true,
      \"colors\": [
        \"#299c46\",
        \"rgba(237, 129, 40, 0.89)\",
        \"#d44a3a\"
      ],
      \"datasource\": null,
      \"description\": \"从节点数量\",
      \"format\": \"none\",
      \"gauge\": {
        \"maxValue\": 100,
        \"minValue\": 0,
        \"show\": false,
        \"thresholdLabels\": false,
        \"thresholdMarkers\": true
      },
      \"gridPos\": {
        \"h\": 3,
        \"w\": 5,
        \"x\": 19,
        \"y\": 0
      },
      \"id\": 12,
      \"interval\": null,
      \"links\": [],
      \"mappingType\": 1,
      \"mappingTypes\": [
        {
          \"name\": \"value to text\",
          \"value\": 1
        },
        {
          \"name\": \"range to text\",
          \"value\": 2
        }
      ],
      \"maxDataPoints\": 100,
      \"nullPointMode\": \"connected\",
      \"nullText\": null,
      \"postfix\": \"\",
      \"postfixFontSize\": \"50%\",
      \"prefix\": \"\",
      \"prefixFontSize\": \"50%\",
      \"rangeMaps\": [
        {
          \"from\": \"null\",
          \"text\": \"N/A\",
          \"to\": \"null\"
        }
      ],
      \"sparkline\": {
        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",
        \"full\": false,
        \"lineColor\": \"rgb(31, 120, 193)\",
        \"show\": false,
        \"ymax\": null,
        \"ymin\": null
      },
      \"tableColumn\": \"\",
      \"targets\": [
        {
          \"expr\": \"count(redis_instance_info{alias=~\\\"$slave\\\", role=\\\"slave\\\"})\",
          \"interval\": \"\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": \"\",
      \"timeFrom\": null,
      \"timeShift\": null,
      \"title\": \"从节点个数\",
      \"type\": \"singlestat\",
      \"valueFontSize\": \"100%\",
      \"valueMaps\": [
        {
          \"op\": \"=\",
          \"text\": \"N/A\",
          \"value\": \"null\"
        }
      ],
      \"valueName\": \"current\"
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redus  Cluster OPS指标\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 16,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"ceil(sum(rate(redis_commands_processed_total{alias=~\\\"$master\\\"}[$interval])))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis Cluster OPS\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用大小值\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 3
      },
      \"hiddenSeries\": false,
      \"id\": 18,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_memory_used_bytes{alias=~\\\"$host\\\"} \",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用大小\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"bytes\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis Server  CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 14,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"100* (rate(redis_used_cpu_sys{alias=~\\\"$host\\\"}[$interval]) + rate(redis_used_cpu_user{alias=~\\\"$host\\\"}[$interval]))\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"Redis 内存使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 11
      },
      \"hiddenSeries\": false,
      \"id\": 20,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"(redis_memory_used_bytes{alias=~\\\"$host\\\"} / redis_config_maxmemory{alias=~\\\"$host\\\"}) * 100\",
          \"interval\": \"5s\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"Redis 内存使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统CPU使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 24,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"1 - avg by (instance)(rate(node_cpu_seconds_total{instance=~\\\"$host\\\", mode=\\\"idle\\\"}[$interval]))\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统CPU使用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percentunit\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统物理内存利用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 19
      },
      \"hiddenSeries\": false,
      \"id\": 30,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"((node_memory_MemTotal_bytes{instance=~\\\"$host\\\"} - (node_memory_MemAvailable_bytes{instance=~\\\"$host\\\"} or (node_memory_MemFree_bytes{instance=~\\\"$host\\\"} + node_memory_Buffers_bytes{instance=~\\\"$host\\\"} + node_memory_Cached_bytes{instance=~\\\"$host\\\"})))*100 / node_memory_MemTotal_bytes{instance=~\\\"$host\\\"})\",
          \"hide\": false,
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"B\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统物理内存利用率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": true,
      \"cacheTimeout\": null,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点系统磁盘使用率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 32,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": false,
      \"linewidth\": 1,
      \"links\": [],
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pluginVersion\": \"6.7.2\",
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"topk(10,max((1 - node_filesystem_avail_bytes{instance=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"} / node_filesystem_size_bytes{instance=~\\\"$host\\\", fstype!~\\\"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs\\\"})*100) by (instance)  > 0)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"系统磁盘使用率\",
      \"tooltip\": {
        \"shared\": false,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"series\",
        \"name\": null,
        \"show\": true,
        \"values\": [
          \"current\"
        ]
      },
      \"yaxes\": [
        {
          \"format\": \"percent\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点以及集群的 KEYS 总数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 27
      },
      \"hiddenSeries\": false,
      \"id\": 22,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_db_keys{alias=~\\\"$master\\\"}) by (alias,db)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"KEYS 总数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"集群的活跃连接数\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 26,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"sum(redis_connected_clients{alias=~\\\"$host\\\"}) by (cluster)\",
          \"interval\": \"\",
          \"legendFormat\": \"{{cluster}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"活跃连接数\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点内存碎片率\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 12,
        \"y\": 35
      },
      \"hiddenSeries\": false,
      \"id\": 28,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"redis_mem_fragmentation_ratio{alias=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{alias}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"内存碎片率\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    },
    {
      \"aliasColors\": {},
      \"bars\": false,
      \"dashLength\": 10,
      \"dashes\": false,
      \"datasource\": null,
      \"description\": \"各个节点 的负载\",
      \"fill\": 1,
      \"fillGradient\": 0,
      \"gridPos\": {
        \"h\": 8,
        \"w\": 12,
        \"x\": 0,
        \"y\": 43
      },
      \"hiddenSeries\": false,
      \"id\": 34,
      \"legend\": {
        \"avg\": false,
        \"current\": false,
        \"max\": false,
        \"min\": false,
        \"show\": true,
        \"total\": false,
        \"values\": false
      },
      \"lines\": true,
      \"linewidth\": 1,
      \"nullPointMode\": \"null\",
      \"options\": {
        \"dataLinks\": []
      },
      \"percentage\": false,
      \"pointradius\": 2,
      \"points\": false,
      \"renderer\": \"flot\",
      \"seriesOverrides\": [],
      \"spaceLength\": 10,
      \"stack\": false,
      \"steppedLine\": false,
      \"targets\": [
        {
          \"expr\": \"node_load1{instance=~\\\"$host\\\"}\",
          \"interval\": \"\",
          \"legendFormat\": \"{{instance}}\",
          \"refId\": \"A\"
        }
      ],
      \"thresholds\": [],
      \"timeFrom\": null,
      \"timeRegions\": [],
      \"timeShift\": null,
      \"title\": \"负载(Load)\",
      \"tooltip\": {
        \"shared\": true,
        \"sort\": 0,
        \"value_type\": \"individual\"
      },
      \"type\": \"graph\",
      \"xaxis\": {
        \"buckets\": null,
        \"mode\": \"time\",
        \"name\": null,
        \"show\": true,
        \"values\": []
      },
      \"yaxes\": [
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        },
        {
          \"format\": \"short\",
          \"label\": null,
          \"logBase\": 1,
          \"max\": null,
          \"min\": null,
          \"show\": true
        }
      ],
      \"yaxis\": {
        \"align\": false,
        \"alignLevel\": null
      }
    }
  ],
  \"refresh\": \"5s\",
  \"schemaVersion\": 22,
  \"style\": \"dark\",
  \"tags\": [],
  \"templating\": {
    \"list\": [
      {
        \"auto\": true,
        \"auto_count\": 100,
        \"auto_min\": \"1s\",
        \"current\": {
          \"selected\": false,
          \"text\": \"5s\",
          \"value\": \"5s\"
        },
        \"hide\": 0,
        \"label\": \"interval\",
        \"name\": \"interval\",
        \"options\": [
          {
            \"selected\": false,
            \"text\": \"auto\",
            \"value\": \"$__auto_interval_interval\"
          },
          {
            \"selected\": true,
            \"text\": \"5s\",
            \"value\": \"5s\"
          },
          {
            \"selected\": false,
            \"text\": \"30s\",
            \"value\": \"30s\"
          },
          {
            \"selected\": false,
            \"text\": \"1m\",
            \"value\": \"1m\"
          },
          {
            \"selected\": false,
            \"text\": \"10m\",
            \"value\": \"10m\"
          },
          {
            \"selected\": false,
            \"text\": \"30m\",
            \"value\": \"30m\"
          },
          {
            \"selected\": false,
            \"text\": \"1h\",
            \"value\": \"1h\"
          },
          {
            \"selected\": false,
            \"text\": \"6h\",
            \"value\": \"6h\"
          },
          {
            \"selected\": false,
            \"text\": \"12h\",
            \"value\": \"12h\"
          },
          {
            \"selected\": false,
            \"text\": \"1d\",
            \"value\": \"1d\"
          }
        ],
        \"query\": \"5s,30s,1m,10m,30m,1h,6h,12h,1d\",
        \"refresh\": 2,
        \"skipUrlSync\": false,
        \"type\": \"interval\"
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select cluster_name from cluster_info where cluster_type = \\\"Redis_Cluster\\\"\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Cluster\",
        \"multi\": true,
        \"name\": \"cluster\",
        \"options\": [],
        \"query\": \"select cluster_name from cluster_info where cluster_type = \\\"Redis_Cluster\\\"\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select role from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"hide\": 0,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"Role\",
        \"multi\": true,
        \"name\": \"role\",
        \"options\": [],
        \"query\": \"select role from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)  and  role in ($role)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"host\",
        \"multi\": true,
        \"name\": \"host\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)  and  role in ($role)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"master\\\"\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"master\",
        \"multi\": true,
        \"name\": \"master\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"master\\\"\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"slave\\\"\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"slave\",
        \"multi\": true,
        \"name\": \"slave\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster) and role=\\\"slave\\\"\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      },
      {
        \"allValue\": null,
        \"current\": {
          \"text\": \"All\",
          \"value\": [
            \"$__all\"
          ]
        },
        \"datasource\": \"MySQL\",
        \"definition\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"hide\": 2,
        \"includeAll\": true,
        \"index\": -1,
        \"label\": \"all_host\",
        \"multi\": true,
        \"name\": \"all_host\",
        \"options\": [],
        \"query\": \"select hostname from cluster_info where cluster_type  = \\\"Redis_Cluster\\\"  and cluster_name in ($cluster)\",
        \"refresh\": 1,
        \"regex\": \"\",
        \"skipUrlSync\": false,
        \"sort\": 0,
        \"tagValuesQuery\": \"\",
        \"tags\": [],
        \"tagsQuery\": \"\",
        \"type\": \"query\",
        \"useTags\": false
      }
    ]
  },
  \"time\": {
    \"from\": \"now-5m\",
    \"to\": \"now\"
  },
  \"timepicker\": {
    \"refresh_intervals\": [
      \"5s\",
      \"10s\",
      \"30s\",
      \"1m\",
      \"5m\",
      \"15m\",
      \"30m\",
      \"1h\",
      \"2h\",
      \"1d\"
    ]
  },
  \"timezone\": \"\",
  \"title\": \"Redis_Cluster_V1.35\",
  \"uid\": \"5FfBHG3Zz\",
  \"variables\": {
    \"list\": []
  },
  \"version\": 14
}

从上面的图中看到,其中OPS的Legend展示的是表达式,按照老版本的的redis_exporter,不能自定义label,虽然监控不同密码多实例比较方便,但作图的时候不好看。目前想到二种方法:
1. 使用推荐的一个实例一个exporter。
2. 在老版本redis_exporter基础上,对指标进行重新定义和打label,此时需要自己编写一个exporter来对指标进行重写。
如:老版本的redis_exporter部署在137这台机器上,并且端口为9128:使用python的prometheus_client模块编写一个服务(5000)来抓取数据进行label修改:

#!/bin/env python
# -*- encoding: utf-8 -*-
import requests
import re
import json
import MySQLdb
import prometheus_client
from prometheus_client import Gauge,Counter
from flask import Response, Flask
app = Flask(__name__)
def redis_cluster_metadata():
    conn = MySQLdb.connect(host=\"192.168.163.133\", port=3306, user=\"dba\", passwd=\"dba\", db=\'test\', charset=\'utf8\')
    query = \'\'\'
SELECT
    concat( host_ip, \':\', PORT ) ip,
    cluster_name
FROM
    cluster_info
WHERE
    cluster_type = \'Redis_Cluster\'
    \'\'\'
    cursor = conn.cursor()
    cursor.execute(query)
    conn.commit()
    result = cursor.fetchall()
    cursor.close()
    return result
def gauge_init(pair):
    result = {}
    for k, v in pair.items():
        name = v
        documentation = v
        label = (\"alias\", \"addr\", \"cluster\")
        gauge = Gauge(name, documentation, label)
        result[v] = gauge
    return result
def redis_cluster_metric(pair):
    url = \"http://192.168.163.137:9128/metrics\"
    pat = re.compile(r\'addr=\"(.*)\",alias=\"(.*)\"\')
    request_data = requests.get(url, timeout=3)
    metrics_info = request_data.text
    metrics_dict = {}
    for metrics in metrics_info.split(\'\\n\'):
        for metric in pair:
            if metrics.find(metric) == 0:
                value = metrics.split(\' \')[1]
                pat_info = pat.search(metrics)
                ip = pat_info.group(1)
                alias = pat_info.group(2)
                metrics_dict.setdefault(ip, {})
                metrics_dict[ip][\'alias\'] = alias
                metrics_dict[ip][metrics_pair[metric]] = value
    return metrics_dict
@app.route(\"/metrics\")
def prometheus_for_redis():
    redis_cluster_info = redis_cluster_metadata()
    metadata_dict = {}
    for redis_cluster_item in redis_cluster_info:
        ip,clustername = redis_cluster_item
        metadata_dict[ip] = clustername
    metrics_dict = redis_cluster_metric(metrics_pair)
    for k,v in metrics_dict.items():
        for _k,_v in metadata_dict.items():
            if k == _k:
                metrics_dict[k][\'cluster\'] = _v
    print metadata_dict
    print metrics_dict
    result = \'\'
    for metric_name, gauge in gauge_dict.items():
        for k, v in metrics_dict.items():
            if k in metadata_dict.keys():
                gauge.labels(alias=v[\'alias\'], addr=k, cluster=v[\'cluster\']).set(v[metric_name])
        result = result + prometheus_client.generate_latest(gauge).decode()
    return Response(result, mimetype=\"text/plain\")
if __name__ == \"__main__\":
    metrics_pair = {\'redis_commands_processed_total\': \'cluster_redis_commands_processed_total\',\'redis_cluster_size\':\'cluster_redis_cluster_size\'}
    gauge_dict = gauge_init(metrics_pair)
    app.run(host=\"0.0.0.0\")

大致的思想是:对原始的redis_exporter的指标进行过滤,拿出需要的指标进行label指定,最后作为一个导出器服务启动(5000),并配置到prometheus.yml里:

global:
  scrape_interval:     5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - \"first_rules.yml\"
  # - \"second_rules.yml\"
scrape_configs:
  - job_name: \'prometheus\'
    static_configs:
    - targets: [\'192.168.163.137:9099\']
  - job_name: \'node_exporter\'
    scrape_interval: 1s
    file_sd_configs:
      - files:
        - targets/node/node*.yml
        refresh_interval: 10s
    relabel_configs:
    - action: replace
      source_labels: [\'__address__\']
      regex: (.*):(.*)
      replacement: $1
      target_label: hostname
    - action: labeldrop
      regex: __meta_filepath
  - job_name: \'redis_exporter\'
    scrape_interval: 1s
    static_configs:
    - targets: [\'192.168.163.137:9128\']
  - job_name: \'redisx_exporter\'
    metrics_path: /redisx_cluster/metrics
    scrape_interval: 1s
    static_configs:
    - targets: [\'192.168.163.137:5000\']
\"复制代码\"
\"\"

/Users/jinyizhou [18:51:25] ~$ curl http://0.0.0.0:5000/metrics
# HELP cluster_redis_commands_processed_total cluster_redis_commands_processed_total
# TYPE cluster_redis_commands_processed_total gauge
cluster_redis_commands_processed_total{addr=\"192.168.163.137:6380\",alias=\"test2\",cluster=\"testX\"} 1796512.0
cluster_redis_commands_processed_total{addr=\"192.168.163.133:6380\",alias=\"test3\",cluster=\"testX\"} 1592838.0
cluster_redis_commands_processed_total{addr=\"192.168.163.134:6380\",alias=\"test4\",cluster=\"testX\"} 1592053.0

最后OPS的Legend显示为:
\"\"

小结:

上面的给出的这些参考指标以及监控项可以按照需要自行进行调整,如果需要做类似redis_exporter的导出器,可以连接Redis各个节点进行采样。具体的一些方法可以参考client_python

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

购物车