Grafana dashboard: Kusama Validator Monitoring Mobile Version
Description: A mobile version for monitoring of KUSAMA & PolkaDOT Validators
Desktop version: https://grafana.com/grafana/dashboards/14899

Set the hostnames in the queries, for search set in regex style {hostname=~"$search"}

For Support && Nominations in KUSAMA NETWORK: Validators Display name. KSMNETWORK

KUSAMA (KSM) Address H1bSKJxoxzxYRCdGQutVqFGeW7xU3AcN6vyEdZBU7Qb1rsZ

OR

PolkaDOT (DOT) Address: 15FxvBFDd3X7H9qcMGqsiuvFYEg4D3mBoTA2LQufreysTHKA

{
  "__inputs": [
    {
      "name": "DS_LOKI",
      "label": "Loki",
      "description": "Systemd-journal logs",
      "type": "datasource",
      "pluginId": "loki",
      "pluginName": "Loki"
    }
  ],
  "__requires": [
    {
      "type": "panel",
      "id": "gauge",
      "name": "Gauge",
      "version": ""
    },
    {
      "type": "grafana",
      "id": "grafana",
      "name": "Grafana",
      "version": "8.1.1"
    },
    {
      "type": "panel",
      "id": "logs",
      "name": "Logs",
      "version": ""
    },
    {
      "type": "datasource",
      "id": "loki",
      "name": "Loki",
      "version": "1.0.0"
    },
    {
      "type": "panel",
      "id": "stat",
      "name": "Stat",
      "version": ""
    }
  ],
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "target": {
          "limit": 100,
          "matchAny": false,
          "tags": [],
          "type": "dashboard"
        },
        "type": "dashboard"
      }
    ]
  },
  "description": "A mobile version for monitoring of KUSAMA & PolkaDOT Validators\nDesktop version: https://grafana.com/grafana/dashboards/14899",
  "editable": true,
  "gnetId": 14901,
  "graphTooltip": 2,
  "id": null,
  "iteration": 1629673055997,
  "links": [],
  "panels": [
    {
      "collapsed": false,
      "datasource": null,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "id": 34,
      "panels": [],
      "title": "Peers",
      "type": "row"
    },
    {
      "datasource": "${DS_LOKI}",
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "thresholds"
          },
          "mappings": [],
          "noValue": "No Peers",
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "#dd051b",
                "value": null
              },
              {
                "color": "semi-dark-red",
                "value": 5
              },
              {
                "color": "dark-orange",
                "value": 10
              },
              {
                "color": "light-yellow",
                "value": 15
              },
              {
                "color": "yellow",
                "value": 25
              },
              {
                "color": "dark-yellow",
                "value": 35
              },
              {
                "color": "dark-green",
                "value": 50
              },
              {
                "color": "semi-dark-green",
                "value": 65
              },
              {
                "color": "green",
                "value": 80
              },
              {
                "color": "purple",
                "value": 100
              },
              {
                "color": "dark-purple",
                "value": 200
              }
            ]
          }
        },
        "overrides": []
      },
      "gridPos": {
        "h": 5,
        "w": 2,
        "x": 0,
        "y": 1
      },
      "id": 14,
      "options": {
        "orientation": "auto",
        "reduceOptions": {
          "calcs": [
            "last"
          ],
          "fields": "/^peers$/",
          "limit": 3,
          "values": false
        },
        "showThresholdLabels": true,
        "showThresholdMarkers": true,
        "text": {}
      },
      "pluginVersion": "8.1.1",
      "targets": [
        {
          "expr": "{unit=\"polkadot.service\", hostname=\"ksm1val\"} |= \" Idle \" | regexp \"^(?s)(?P<time>\\\\S+\\\\d+\\\\s+\\\\d+:\\\\d+:\\\\d+) \\\\W+\\\\s? Idle\\\\W+(?P<peers>\\\\d+) peers\\\\)\\\\, best\\\\:\\\\s+\\\\W(?P<best>\\\\d+)\\\\s+\\\\W(?P<hash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W\\\\, finalized\\\\s\\\\W(?P<finalized>[0-9]+)\\\\s+\\\\W(?P<fhash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W+(?P<download>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws\\\\s+)\\\\W+(?P<upload>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws)\"",
          "queryType": "randomWalk",
          "refId": "A"
        }
      ],
      "title": "V1 Peers",
      "transformations": [
        {
          "id": "labelsToFields",
          "options": {}
        },
        {
          "id": "organize",
          "options": {
            "excludeByName": {
              "best": true,
              "download": true,
              "fhash": true,
              "finalized": true,
              "hash": true,
              "id": true,
              "job": true,
              "line": true,
              "ts": true,
              "tsNs": true,
              "unit": true,
              "upload": true
            },
            "indexByName": {
              "best": 3,
              "download": 4,
              "fhash": 8,
              "finalized": 2,
              "hash": 10,
              "id": 7,
              "job": 12,
              "line": 6,
              "peers": 1,
              "time": 0,
              "ts": 11,
              "tsNs": 13,
              "unit": 9,
              "upload": 5
            },
            "renameByName": {}
          }
        }
      ],
      "type": "gauge"
    },
    {
      "datasource": "${DS_LOKI}",
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "thresholds"
          },
          "mappings": [],
          "noValue": "No Peers",
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "#dd051b",
                "value": null
              },
              {
                "color": "semi-dark-red",
                "value": 5
              },
              {
                "color": "dark-orange",
                "value": 10
              },
              {
                "color": "light-yellow",
                "value": 15
              },
              {
                "color": "yellow",
                "value": 25
              },
              {
                "color": "dark-yellow",
                "value": 35
              },
              {
                "color": "dark-green",
                "value": 50
              },
              {
                "color": "semi-dark-green",
                "value": 65
              },
              {
                "color": "green",
                "value": 80
              },
              {
                "color": "purple",
                "value": 100
              },
              {
                "color": "dark-purple",
                "value": 200
              }
            ]
          }
        },
        "overrides": []
      },
      "gridPos": {
        "h": 5,
        "w": 2,
        "x": 2,
        "y": 1
      },
      "id": 26,
      "options": {
        "orientation": "auto",
        "reduceOptions": {
          "calcs": [
            "last"
          ],
          "fields": "/^peers$/",
          "limit": 3,
          "values": false
        },
        "showThresholdLabels": true,
        "showThresholdMarkers": true,
        "text": {}
      },
      "pluginVersion": "8.1.1",
      "targets": [
        {
          "expr": "{unit=\"polkadot.service\", hostname=~\"ksm2val\"} |= \" Idle \" | regexp \"^(?s)(?P<time>\\\\S+\\\\d+\\\\s+\\\\d+:\\\\d+:\\\\d+) \\\\W+\\\\s? Idle\\\\W+(?P<peers>\\\\d+) peers\\\\)\\\\, best\\\\:\\\\s+\\\\W(?P<best>\\\\d+)\\\\s+\\\\W(?P<hash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W\\\\, finalized\\\\s\\\\W(?P<finalized>[0-9]+)\\\\s+\\\\W(?P<fhash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W+(?P<download>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws\\\\s+)\\\\W+(?P<upload>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws)\"",
          "queryType": "randomWalk",
          "refId": "A"
        }
      ],
      "title": "V2 Peers",
      "transformations": [
        {
          "id": "labelsToFields",
          "options": {}
        },
        {
          "id": "organize",
          "options": {
            "excludeByName": {
              "best": true,
              "download": true,
              "fhash": true,
              "finalized": true,
              "hash": true,
              "id": true,
              "job": true,
              "line": true,
              "ts": true,
              "tsNs": true,
              "unit": true,
              "upload": true
            },
            "indexByName": {
              "best": 3,
              "download": 4,
              "fhash": 8,
              "finalized": 2,
              "hash": 10,
              "id": 7,
              "job": 12,
              "line": 6,
              "peers": 1,
              "time": 0,
              "ts": 11,
              "tsNs": 13,
              "unit": 9,
              "upload": 5
            },
            "renameByName": {}
          }
        }
      ],
      "type": "gauge"
    },
    {
      "collapsed": false,
      "datasource": null,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 6
      },
      "id": 28,
      "panels": [],
      "title": "Validator 1",
      "type": "row"
    },
    {
      "datasource": "${DS_LOKI}",
      "description": "",
      "fieldConfig": {
        "defaults": {
          "color": {
            "fixedColor": "#27b27e",
            "mode": "fixed"
          },
          "displayName": "{{hostname}}",
          "mappings": [],
          "noValue": "W$@#?",
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "#580000",
                "value": null
              }
            ]
          }
        },
        "overrides": []
      },
      "gridPos": {
        "h": 13,
        "w": 24,
        "x": 0,
        "y": 7
      },
      "id": 10,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "center",
        "orientation": "auto",
        "reduceOptions": {
          "calcs": [
            "last"
          ],
          "fields": "/.*/",
          "limit": 1,
          "values": false
        },
        "text": {},
        "textMode": "value_and_name"
      },
      "pluginVersion": "8.1.1",
      "repeat": null,
      "targets": [
        {
          "expr": "{unit=\"polkadot.service\", hostname=\"ksm1val\"} |= \" Idle \" | regexp \"^(?s)(?P<time>\\\\S+\\\\d+\\\\s+\\\\d+:\\\\d+:\\\\d+) \\\\W+\\\\s? Idle\\\\W+(?P<peers>\\\\d+) peers\\\\)\\\\, best\\\\:\\\\s+\\\\W(?P<best>\\\\d+)\\\\s+\\\\W(?P<hash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W\\\\, finalized\\\\s\\\\W(?P<finalized>[0-9]+)\\\\s+\\\\W(?P<fhash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W+(?P<download>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws\\\\s+)\\\\W+(?P<upload>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws)\"",
          "legendFormat": "{{hostname}}",
          "queryType": "randomWalk",
          "refId": "A"
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "Statistics",
      "transformations": [
        {
          "id": "labelsToFields",
          "options": {}
        },
        {
          "id": "filterFieldsByName",
          "options": {
            "include": {
              "names": [
                "upload",
                "download",
                "best",
                "finalized"
              ]
            }
          }
        },
        {
          "id": "calculateField",
          "options": {
            "alias": "Count",
            "mode": "reduceRow",
            "reduce": {
              "include": [
                "best"
              ],
              "reducer": "sum"
            },
            "replaceFields": false
          }
        },
        {
          "id": "organize",
          "options": {
            "excludeByName": {},
            "indexByName": {
              "Count": 4,
              "best": 0,
              "download": 3,
              "finalized": 1,
              "upload": 2
            },
            "renameByName": {
              "Count": "Blocks Counter",
              "best": "Best Block",
              "download": "Download",
              "finalized": "Finalized Block",
              "peers": "Peers",
              "upload": "Upload"
            }
          }
        }
      ],
      "type": "stat"
    },
    {
      "collapsed": false,
      "datasource": null,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 20
      },
      "id": 30,
      "panels": [],
      "title": "Validator 2",
      "type": "row"
    },
    {
      "datasource": "${DS_LOKI}",
      "description": "",
      "fieldConfig": {
        "defaults": {
          "color": {
            "fixedColor": "#27b27e",
            "mode": "fixed"
          },
          "displayName": "{{hostname}}",
          "mappings": [],
          "noValue": "W$@#?",
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "#580000",
                "value": null
              }
            ]
          }
        },
        "overrides": []
      },
      "gridPos": {
        "h": 14,
        "w": 24,
        "x": 0,
        "y": 21
      },
      "id": 23,
      "options": {
        "colorMode": "value",
        "graphMode": "area",
        "justifyMode": "center",
        "orientation": "auto",
        "reduceOptions": {
          "calcs": [
            "last"
          ],
          "fields": "/.*/",
          "limit": 1,
          "values": false
        },
        "text": {},
        "textMode": "value_and_name"
      },
      "pluginVersion": "8.1.1",
      "targets": [
        {
          "expr": "{unit=\"polkadot.service\", hostname=\"ksm2val\"} |= \" Idle \" | regexp \"^(?s)(?P<time>\\\\S+\\\\d+\\\\s+\\\\d+:\\\\d+:\\\\d+) \\\\W+\\\\s? Idle\\\\W+(?P<peers>\\\\d+) peers\\\\)\\\\, best\\\\:\\\\s+\\\\W(?P<best>\\\\d+)\\\\s+\\\\W(?P<hash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W\\\\, finalized\\\\s\\\\W(?P<finalized>[0-9]+)\\\\s+\\\\W(?P<fhash>[a-zA-Z0-9]+\\\\W[a-zA-Z0-9]+)\\\\W+(?P<download>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws\\\\s+)\\\\W+(?P<upload>[0-9]+\\\\W[0-9]+[a-zA-Z]+\\\\Ws)\"",
          "legendFormat": "{{hostname}}",
          "queryType": "randomWalk",
          "refId": "A"
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "Statistics",
      "transformations": [
        {
          "id": "labelsToFields",
          "options": {}
        },
        {
          "id": "filterFieldsByName",
          "options": {
            "include": {
              "names": [
                "upload",
                "download",
                "best",
                "finalized"
              ]
            }
          }
        },
        {
          "id": "calculateField",
          "options": {
            "alias": "Count",
            "mode": "reduceRow",
            "reduce": {
              "include": [
                "best"
              ],
              "reducer": "sum"
            },
            "replaceFields": false
          }
        },
        {
          "id": "organize",
          "options": {
            "excludeByName": {},
            "indexByName": {
              "Count": 4,
              "best": 0,
              "download": 3,
              "finalized": 1,
              "upload": 2
            },
            "renameByName": {
              "Count": "Blocks Counter",
              "best": "Best Block",
              "download": "Download",
              "finalized": "Finalized Block",
              "peers": "Peers",
              "upload": "Upload"
            }
          }
        }
      ],
      "type": "stat"
    },
    {
      "collapsed": true,
      "datasource": null,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 35
      },
      "id": 19,
      "panels": [
        {
          "datasource": "${DS_LOKI}",
          "gridPos": {
            "h": 15,
            "w": 23,
            "x": 0,
            "y": 9
          },
          "id": 8,
          "options": {
            "dedupStrategy": "none",
            "enableLogDetails": true,
            "prettifyLogMessage": false,
            "showCommonLabels": true,
            "showLabels": true,
            "showTime": false,
            "sortOrder": "Descending",
            "wrapLogMessage": false
          },
          "pluginVersion": "8.1.1",
          "targets": [
            {
              "expr": "{hostname=~\"$search|.*\", unit=\"polkadot.service\"} !~ \"Discovered\"",
              "legendFormat": "",
              "queryType": "randomWalk",
              "refId": "A"
            }
          ],
          "title": "LOGS",
          "transformations": [],
          "type": "logs"
        }
      ],
      "title": "General Logs",
      "type": "row"
    },
    {
      "collapsed": true,
      "datasource": null,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 36
      },
      "id": 32,
      "panels": [
        {
          "datasource": "${DS_LOKI}",
          "gridPos": {
            "h": 13,
            "w": 23,
            "x": 0,
            "y": 10
          },
          "id": 17,
          "options": {
            "dedupStrategy": "none",
            "enableLogDetails": true,
            "prettifyLogMessage": false,
            "showCommonLabels": true,
            "showLabels": true,
            "showTime": false,
            "sortOrder": "Descending",
            "wrapLogMessage": false
          },
          "pluginVersion": "8.1.1",
          "targets": [
            {
              "expr": "{unit=\"polkadot.service\"} !~ \" Idle| Imported| Discovered| Reorg on| Next epoch starts at slot|New epoch\\\\W\\\\d+\\\\Wlaunching\" |~ \"$search|$filter|.*\"",
              "queryType": "randomWalk",
              "refId": "A"
            }
          ],
          "title": "Unknown logs ",
          "type": "logs"
        }
      ],
      "title": "Unknown Logs",
      "type": "row"
    }
  ],
  "refresh": "5s",
  "schemaVersion": 30,
  "style": "dark",
  "tags": [],
  "templating": {
    "list": [
      {
        "current": {
          "selected": true,
          "text": "",
          "value": ""
        },
        "description": null,
        "error": null,
        "hide": 0,
        "label": null,
        "name": "search",
        "options": [
          {
            "selected": true,
            "text": "",
            "value": ""
          }
        ],
        "query": "",
        "skipUrlSync": false,
        "type": "textbox"
      }
    ]
  },
  "time": {
    "from": "now-15m",
    "to": "now"
  },
  "timepicker": {
    "nowDelay": ""
  },
  "timezone": "",
  "title": "Kusama Validator Monitoring Mobile Version",
  "uid": "8888",
  "version": 14
}