Files
meshexplorer/grafana/provisioning/dashboards/json/meshcore.json
T
Alex Vanderpot e6c4200448 Provision MeshCore Grafana dashboard
Add the MeshCore dashboard (exported from prod) as a provisioned file
dashboard, with a file provider config. Pin the ClickHouse datasource
uid to "clickhouse" so the dashboard's panel datasource references
resolve at provision time.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-29 01:24:02 -04:00

2061 lines
61 KiB
JSON

{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [
{
"collapsed": true,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 17,
"panels": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 0,
"y": 1
},
"id": 18,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 1,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "table",
"rawSql": "SELECT FROM LIMIT 1000",
"refId": "A"
}
],
"title": "New panel",
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 6,
"y": 1
},
"id": 19,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 1,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "table",
"rawSql": "SELECT FROM LIMIT 1000",
"refId": "A"
}
],
"title": "New panel",
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 12,
"y": 1
},
"id": 20,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 1,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "table",
"rawSql": "SELECT FROM LIMIT 1000",
"refId": "A"
}
],
"title": "New panel",
"type": "stat"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 18,
"y": 1
},
"id": 21,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 1,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "table",
"rawSql": "SELECT FROM LIMIT 1000",
"refId": "A"
}
],
"title": "New panel",
"type": "stat"
}
],
"title": "Overview",
"type": "row"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 1
},
"id": 5,
"panels": [],
"title": "Network Stats",
"type": "row"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 2
},
"id": 4,
"maxDataPoints": 25,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "WITH all_nodes AS (\n SELECT \n $__timeInterval(ingest_timestamp) AS time_bucket, \n public_key, \n latitude, \n longitude, \n is_repeater, \n is_room_server\n FROM meshcore_adverts\n WHERE ingest_timestamp >= ($__fromTime - INTERVAL 7 DAY) \n AND ingest_timestamp <= $__toTime\n),\nfiltered_time_buckets AS (\n SELECT DISTINCT time_bucket \n FROM all_nodes\n WHERE time_bucket >= $__timeInterval($__fromTime)\n AND time_bucket <= $__timeInterval($__toTime)\n ORDER BY time_bucket ASC\n),\nrolling_window AS (\n SELECT \n tb.time_bucket as time,\n n.public_key,\n n.latitude,\n n.longitude,\n n.is_repeater,\n n.is_room_server\n FROM filtered_time_buckets tb\n INNER JOIN all_nodes n ON n.time_bucket BETWEEN (tb.time_bucket - INTERVAL 7 DAY) AND tb.time_bucket\n)\nSELECT \n time,\n count(DISTINCT public_key) AS cumulative_unique_nodes,\n count(DISTINCT CASE WHEN latitude IS NOT NULL AND longitude IS NOT NULL AND latitude != 0 AND longitude != 0 THEN public_key END) AS nodes_with_location,\n count(DISTINCT CASE WHEN latitude IS NULL OR longitude IS NULL OR latitude = 0 OR longitude = 0 THEN public_key END) AS nodes_without_location,\n count(DISTINCT CASE WHEN is_repeater = 1 THEN public_key END) AS repeaters,\n count(DISTINCT CASE WHEN is_room_server = 1 THEN public_key END) AS room_servers\nFROM rolling_window\nGROUP BY time\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Nodes over time (slow)",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
},
"unit": "binbps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 2
},
"id": 23,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"builderOptions": {
"columns": [
{
"hint": "time",
"name": "date",
"type": "Date"
}
],
"database": "default",
"filters": [
{
"condition": "AND",
"filterType": "custom",
"hint": "time",
"key": "",
"operator": "WITH IN DASHBOARD TIME RANGE",
"type": "datetime"
}
],
"limit": 1000,
"meta": {},
"mode": "list",
"orderBy": [
{
"default": true,
"dir": "ASC",
"hint": "time",
"name": ""
}
],
"queryType": "timeseries",
"table": "goose_db_version"
},
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [
{
"hint": "time",
"name": "date",
"type": "Date"
}
],
"database": "default",
"filters": [
{
"condition": "AND",
"filterType": "custom",
"hint": "time",
"key": "",
"operator": "WITH IN DASHBOARD TIME RANGE",
"type": "datetime"
}
],
"limit": 1000,
"meta": {},
"mode": "list",
"orderBy": [
{
"default": true,
"dir": "ASC",
"hint": "time",
"name": ""
}
],
"queryType": "timeseries",
"table": "goose_db_version"
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n SUM(length(packet) * 8) / (toUInt32($__timeInterval(ingest_timestamp)) / 1000) as throughput\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\nGROUP BY time\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Total Network Throughput",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 10
},
"id": 1,
"interval": "1m",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"builderOptions": {
"aggregates": [],
"columns": [
{
"hint": "time",
"name": "ingest_timestamp",
"type": "DateTime64(3)"
}
],
"database": "default",
"filters": [
{
"condition": "AND",
"filterType": "custom",
"hint": "time",
"key": "",
"operator": "WITH IN DASHBOARD TIME RANGE",
"type": "datetime"
},
{
"condition": "AND",
"filterType": "custom",
"key": "hex(origin_pubkey)",
"operator": "IN",
"type": "String",
"value": [
"$origin_pubkey"
]
}
],
"groupBy": [
"packet"
],
"limit": 100000,
"meta": {},
"mode": "trend",
"orderBy": [
{
"default": true,
"dir": "ASC",
"hint": "time",
"name": ""
}
],
"queryType": "timeseries",
"table": "meshcore_packets"
},
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"aggregates": [],
"columns": [
{
"hint": "time",
"name": "ingest_timestamp",
"type": "DateTime64(3)"
}
],
"database": "default",
"filters": [
{
"condition": "AND",
"filterType": "custom",
"hint": "time",
"key": "",
"operator": "WITH IN DASHBOARD TIME RANGE",
"type": "datetime"
},
{
"condition": "AND",
"filterType": "custom",
"key": "hex(origin_pubkey)",
"operator": "IN",
"type": "String",
"value": [
"$origin_pubkey"
]
}
],
"groupBy": [
"packet"
],
"limit": 100000,
"meta": {},
"mode": "trend",
"orderBy": [
{
"default": true,
"dir": "ASC",
"hint": "time",
"name": ""
}
],
"queryType": "timeseries",
"table": "meshcore_packets"
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n payload_type = 0, 'REQ',\n payload_type = 1, 'RESPONSE', \n payload_type = 2, 'TXT_MSG',\n payload_type = 3, 'ACK',\n payload_type = 4, 'ADVERT',\n payload_type = 5, 'GRP_TXT',\n payload_type = 6, 'GRP_DATA',\n payload_type = 7, 'ANON_REQ',\n payload_type = 8, 'PATH',\n payload_type = 9, 'TRACE',\n payload_type = 15, 'RAW_CUSTOM',\n toString(payload_type)\n ) as payload_type,\n COUNT(DISTINCT payload) as count\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND hex(origin_pubkey) IN ($origin_pubkey)\nGROUP BY time, payload_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Unique Payloads by Type",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 10
},
"id": 2,
"interval": "1m",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"builderOptions": {
"aggregates": [],
"columns": [
{
"hint": "time",
"name": "ingest_timestamp",
"type": "DateTime64(3)"
}
],
"database": "default",
"filters": [
{
"condition": "AND",
"filterType": "custom",
"hint": "time",
"key": "",
"operator": "WITH IN DASHBOARD TIME RANGE",
"type": "datetime"
},
{
"condition": "AND",
"filterType": "custom",
"key": "hex(origin_pubkey)",
"operator": "IN",
"type": "String",
"value": [
"$origin_pubkey"
]
}
],
"groupBy": [
"packet"
],
"limit": 100000,
"meta": {},
"mode": "trend",
"orderBy": [
{
"default": true,
"dir": "ASC",
"hint": "time",
"name": ""
}
],
"queryType": "timeseries",
"table": "meshcore_packets"
},
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"aggregates": [],
"columns": [
{
"hint": "time",
"name": "ingest_timestamp",
"type": "DateTime64(3)"
}
],
"database": "default",
"filters": [
{
"condition": "AND",
"filterType": "custom",
"hint": "time",
"key": "",
"operator": "WITH IN DASHBOARD TIME RANGE",
"type": "datetime"
},
{
"condition": "AND",
"filterType": "custom",
"key": "hex(origin_pubkey)",
"operator": "IN",
"type": "String",
"value": [
"$origin_pubkey"
]
}
],
"groupBy": [
"packet"
],
"limit": 100000,
"meta": {},
"mode": "trend",
"orderBy": [
{
"default": true,
"dir": "ASC",
"hint": "time",
"name": ""
}
],
"queryType": "timeseries",
"table": "meshcore_packets"
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n payload_type = 0, 'REQ',\n payload_type = 1, 'RESPONSE', \n payload_type = 2, 'TXT_MSG',\n payload_type = 3, 'ACK',\n payload_type = 4, 'ADVERT',\n payload_type = 5, 'GRP_TXT',\n payload_type = 6, 'GRP_DATA',\n payload_type = 7, 'ANON_REQ',\n payload_type = 8, 'PATH',\n payload_type = 9, 'TRACE',\n payload_type = 15, 'RAW_CUSTOM',\n toString(payload_type)\n ) as payload_type,\n COUNT(payload_type) as count\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND hex(origin_pubkey) IN ($origin_pubkey)\nGROUP BY time, payload_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "All repeats heard by Type",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 18
},
"id": 16,
"panels": [],
"title": "Messaging",
"type": "row"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 19
},
"id": 3,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n channel_hash,\n COUNT(DISTINCT message_id) as count\nFROM meshcore_public_channel_messages \nWHERE $__timeFilter(ingest_timestamp)\n AND channel_hash != ''\nGROUP BY time, channel_hash\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Chat messages by channel hash",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 28
},
"id": 9,
"panels": [],
"title": "Routing types",
"type": "row"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 29
},
"id": 10,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(DISTINCT payload) as unique_payloads\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Routing types by unique payloads",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 29
},
"id": 11,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(*) as packet_count\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Routing types by repeats heard",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 50,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "percent"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 37
},
"id": 12,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(DISTINCT payload) as unique_payloads\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Percentages of unique payloads by routing type",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 50,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "percent"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 37
},
"id": 13,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(*) as packet_count\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Percentages of all repeats by routing type",
"type": "timeseries"
},
{
"collapsed": true,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 45
},
"id": 6,
"panels": [
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 144
},
"id": 8,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(DISTINCT payload) as unique_payloads\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND payload_type IN ($payload_type)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Unique payloads - $payload_type",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 144
},
"id": 7,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(*) as count\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND payload_type IN ($payload_type)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "All repeats heard - $payload_type",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 50,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "percent"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 168
},
"id": 14,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(DISTINCT payload) as unique_payloads\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND payload_type IN ($payload_type)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Percentages of unique payloads by routing type - $payload_type",
"type": "timeseries"
},
{
"datasource": {
"type": "grafana-clickhouse-datasource",
"uid": "clickhouse"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 50,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "percent"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 168
},
"id": 15,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.1",
"targets": [
{
"editorType": "sql",
"format": 0,
"meta": {
"builderOptions": {
"columns": [],
"database": "",
"limit": 1000,
"mode": "list",
"queryType": "table",
"table": ""
}
},
"pluginVersion": "4.10.2",
"queryType": "timeseries",
"rawSql": "SELECT \n $__timeInterval(ingest_timestamp) as time,\n multiIf(\n route_type = 0, 'TRANSPORT_FLOOD',\n route_type = 1, 'FLOOD',\n route_type = 2, 'DIRECT', \n route_type = 3, 'TRANSPORT_DIRECT',\n concat('UNKNOWN_', toString(route_type))\n ) as route_type_name,\n COUNT(*) as count\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND payload_type IN ($payload_type)\nGROUP BY time, route_type\nORDER BY time ASC",
"refId": "A"
}
],
"title": "Percentages of all repeats by routing type - $payload_type",
"type": "timeseries"
}
],
"repeat": "payload_type",
"title": "Payload Type Detail - $payload_type",
"type": "row"
}
],
"preload": false,
"schemaVersion": 41,
"tags": [],
"templating": {
"list": [
{
"current": {
"text": "All",
"value": [
"$__all"
]
},
"definition": "SELECT \n concat(\n trim(origin), ' (', left(hex(origin_pubkey), 6), '...', right(hex(origin_pubkey), 6), ')',\n '|',\n hex(origin_pubkey)\n ) as combined\nFROM meshcore_packets \nWHERE trim(origin) != '' AND trim(origin_pubkey) != ''\n AND $__timeFilter(ingest_timestamp)\nGROUP BY trim(origin), hex(origin_pubkey)\nORDER BY COUNT(*) DESC",
"description": "",
"includeAll": true,
"label": "origin_pubkey",
"multi": true,
"name": "origin_pubkey",
"options": [],
"query": "SELECT \n concat(\n trim(origin), ' (', left(hex(origin_pubkey), 6), '...', right(hex(origin_pubkey), 6), ')',\n '|',\n hex(origin_pubkey)\n ) as combined\nFROM meshcore_packets \nWHERE trim(origin) != '' AND trim(origin_pubkey) != ''\n AND $__timeFilter(ingest_timestamp)\nGROUP BY trim(origin), hex(origin_pubkey)\nORDER BY COUNT(*) DESC",
"refresh": 1,
"regex": "/^(?<text>.*?)\\|(?<value>.*)$/",
"type": "query"
},
{
"current": {
"text": [
"REQ (00)",
"RESPONSE (01)",
"TXT_MSG (02)",
"ACK (03)",
"ADVERT (04)",
"GRP_TXT (05)",
"GRP_DATA (06)",
"ANON_REQ (07)",
"PATH (08)",
"TRACE (09)"
],
"value": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
]
},
"definition": "SELECT \n concat(\n multiIf(\n payload_type = 0, 'REQ',\n payload_type = 1, 'RESPONSE', \n payload_type = 2, 'TXT_MSG',\n payload_type = 3, 'ACK',\n payload_type = 4, 'ADVERT',\n payload_type = 5, 'GRP_TXT',\n payload_type = 6, 'GRP_DATA',\n payload_type = 7, 'ANON_REQ',\n payload_type = 8, 'PATH',\n payload_type = 9, 'TRACE',\n payload_type = 15, 'RAW_CUSTOM',\n 'UNK'\n ),\n ' (',\n hex(payload_type),\n ')|',\n payload_type\n ) as combined\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND payload_type IS NOT NULL\nGROUP BY payload_type\nORDER BY payload_type ASC",
"description": "",
"includeAll": true,
"label": "Payload Type",
"multi": true,
"name": "payload_type",
"options": [],
"query": "SELECT \n concat(\n multiIf(\n payload_type = 0, 'REQ',\n payload_type = 1, 'RESPONSE', \n payload_type = 2, 'TXT_MSG',\n payload_type = 3, 'ACK',\n payload_type = 4, 'ADVERT',\n payload_type = 5, 'GRP_TXT',\n payload_type = 6, 'GRP_DATA',\n payload_type = 7, 'ANON_REQ',\n payload_type = 8, 'PATH',\n payload_type = 9, 'TRACE',\n payload_type = 15, 'RAW_CUSTOM',\n 'UNK'\n ),\n ' (',\n hex(payload_type),\n ')|',\n payload_type\n ) as combined\nFROM meshcore_packets \nWHERE $__timeFilter(ingest_timestamp)\n AND payload_type IS NOT NULL\nGROUP BY payload_type\nORDER BY payload_type ASC",
"refresh": 1,
"regex": "/^(?<text>.*?)\\|(?<value>.*)$/",
"type": "query"
}
]
},
"time": {
"from": "now-7d",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "MeshCore",
"uid": "48e6127f-de47-4f8b-b6eb-8f206f182507"
}