Github Mirror / telegraf-plugins: 12694aed




Add an export of the Grafana Dashboard

Add an export of the Grafana Dashboard

Commit 12694aed.

Authored 2023-10-21T13:00:40.000+01:00 by B Tasker in project Github Mirror / telegraf-plugins

+1747 lines -0 lines

Commit Signature

Changes

diff --git a/tor-daemon/grafana_dashboard.json b/tor-daemon/grafana_dashboard.json
--- a/tor-daemon/grafana_dashboard.json
+++ b/tor-daemon/grafana_dashboard.json
# @@ -0,0 +1,1747 @@
# +{
# + "__inputs": [
# + {
# + "name": "DS_INFLUXDB",
# + "label": "InfluxDB",
# + "description": "",
# + "type": "datasource",
# + "pluginId": "influxdb",
# + "pluginName": "InfluxDB"
# + }
# + ],
# + "__elements": {},
# + "__requires": [
# + {
# + "type": "panel",
# + "id": "gauge",
# + "name": "Gauge",
# + "version": ""
# + },
# + {
# + "type": "grafana",
# + "id": "grafana",
# + "name": "Grafana",
# + "version": "9.5.1"
# + },
# + {
# + "type": "datasource",
# + "id": "influxdb",
# + "name": "InfluxDB",
# + "version": "1.0.0"
# + },
# + {
# + "type": "panel",
# + "id": "stat",
# + "name": "Stat",
# + "version": ""
# + },
# + {
# + "type": "panel",
# + "id": "timeseries",
# + "name": "Time series",
# + "version": ""
# + }
# + ],
# + "annotations": {
# + "list": [
# + {
# + "builtIn": 1,
# + "datasource": {
# + "type": "grafana",
# + "uid": "-- Grafana --"
# + },
# + "enable": true,
# + "hide": true,
# + "iconColor": "rgba(0, 211, 255, 1)",
# + "name": "Annotations & Alerts",
# + "target": {
# + "limit": 100,
# + "matchAny": false,
# + "tags": [],
# + "type": "dashboard"
# + },
# + "type": "dashboard"
# + }
# + ]
# + },
# + "editable": true,
# + "fiscalYearStartMonth": 0,
# + "graphTooltip": 0,
# + "id": null,
# + "links": [],
# + "liveNow": false,
# + "panels": [
# + {
# + "collapsed": false,
# + "gridPos": {
# + "h": 1,
# + "w": 24,
# + "x": 0,
# + "y": 0
# + },
# + "id": 24,
# + "panels": [],
# + "title": "General",
# + "type": "row"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": 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": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 9,
# + "w": 12,
# + "x": 0,
# + "y": 1
# + },
# + "id": 2,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\" and r._field == \"dormant\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> aggregateWindow(every: v.windowPeriod, fn: max)",
# + "refId": "A"
# + }
# + ],
# + "title": "Dormant Daemons",
# + "type": "timeseries"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": false
# + },
# + "lineInterpolation": "linear",
# + "lineWidth": 1,
# + "pointSize": 5,
# + "scaleDistribution": {
# + "type": "linear"
# + },
# + "showPoints": "auto",
# + "spanNulls": true,
# + "stacking": {
# + "group": "A",
# + "mode": "none"
# + },
# + "thresholdsStyle": {
# + "mode": "off"
# + }
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 9,
# + "w": 12,
# + "x": 12,
# + "y": 1
# + },
# + "id": 3,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => r._field == \"stats_fetch_failures\")\n |> aggregateWindow(every: v.windowPeriod, fn: sum)",
# + "refId": "A"
# + }
# + ],
# + "title": "Check Failures",
# + "type": "timeseries"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [
# + {
# + "options": {
# + "0": {
# + "index": 1,
# + "text": "Down"
# + },
# + "2": {
# + "index": 0,
# + "text": "Up"
# + }
# + },
# + "type": "value"
# + }
# + ],
# + "max": 2,
# + "min": 0,
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "dark-red",
# + "value": null
# + },
# + {
# + "color": "dark-green",
# + "value": 1
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 8,
# + "x": 0,
# + "y": 10
# + },
# + "id": 5,
# + "options": {
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "showThresholdLabels": false,
# + "showThresholdMarkers": true
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_rx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> last()\n |> map(fn: (r) => ({ \n host: r.host,\n _value: if r.network_liveness == \"up\" \n then\n 2\n else\n 0 \n \t ,\n _field: \"network_liveness\"\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Network Liveness ($host)",
# + "type": "gauge"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [
# + {
# + "options": {
# + "1": {
# + "index": 0,
# + "text": "Unrecommended"
# + },
# + "2": {
# + "index": 1,
# + "text": "Obsolete"
# + },
# + "3": {
# + "index": 2,
# + "text": "Old"
# + },
# + "4": {
# + "index": 3,
# + "text": "Recommended"
# + },
# + "5": {
# + "index": 4,
# + "text": "New"
# + },
# + "6": {
# + "index": 5,
# + "text": "New in Series"
# + },
# + "7 ": {
# + "index": 6,
# + "text": "Unknown"
# + }
# + },
# + "type": "value"
# + }
# + ],
# + "max": 8,
# + "min": 0,
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "dark-red",
# + "value": null
# + },
# + {
# + "color": "dark-green",
# + "value": 4
# + },
# + {
# + "color": "#EAB839",
# + "value": 7
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 8,
# + "x": 8,
# + "y": 10
# + },
# + "id": 6,
# + "options": {
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "showThresholdLabels": false,
# + "showThresholdMarkers": true,
# + "text": {}
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_rx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> last()\n |> map(fn: (r) => ({ \n host: r.host,\n _value: \n if r.version_status == \"recommended\"\n then\n // Good to go\n 4\n else if r.version_status == \"new\"\n then\n // Also Good\n 5\n else if r.version_status == \"new in series\"\n then\n 6\n\n else if r.version_status == \"old\"\n then\n // might be an issue in future\n 3\n else if r.version_status == \"unrecommended\"\n then\n // Uhoh\n 1\n else if r.version_status == \"obsolete\"\n then\n 2\n else\n // Unknown\n 7\n ,\n _field: \"version_status\"\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Software Version Status ($host)",
# + "type": "gauge"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [
# + {
# + "options": {
# + "0": {
# + "index": 3,
# + "text": "Unknown"
# + },
# + "2": {
# + "index": 0,
# + "text": "Awake"
# + },
# + "4": {
# + "index": 1,
# + "text": "Soft"
# + },
# + "6": {
# + "index": 2,
# + "text": "Hard"
# + }
# + },
# + "type": "value"
# + }
# + ],
# + "max": 7,
# + "min": 0,
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "dark-blue",
# + "value": null
# + },
# + {
# + "color": "dark-green",
# + "value": 2
# + },
# + {
# + "color": "#EAB839",
# + "value": 4
# + },
# + {
# + "color": "dark-red",
# + "value": 6
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 8,
# + "x": 16,
# + "y": 10
# + },
# + "id": 7,
# + "options": {
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "showThresholdLabels": false,
# + "showThresholdMarkers": true
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"accounting_bytes_read\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> last()\n|> map(fn: (r) => ({\n \t_value: if r.accounting_hibernating_state == \"awake\" then\n 2\n else if r.accounting_hibernating_state == \"soft\" then \n 4\n else if r.accounting_hibernating_state == \"hard\" then \n 6\n else \n \t0\n })) ",
# + "refId": "A"
# + }
# + ],
# + "title": "Hibernation State ($host)",
# + "type": "gauge"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "bytes"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 5,
# + "w": 8,
# + "x": 0,
# + "y": 18
# + },
# + "id": 9,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_tx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group()\n |> difference()\n |> filter(fn: (r) => r._value > 0)\n |> sum()\n |> map(fn: (r) => ({ r with\n \t_value: r._value\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Uploaded ($host)",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "bytes"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 5,
# + "w": 8,
# + "x": 8,
# + "y": 18
# + },
# + "id": 10,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_rx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group()\n |> difference()\n |> filter(fn: (r) => r._value > 0)\n |> sum()\n |> map(fn: (r) => ({ r with\n \t_value: r._value\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Downloaded ($host)",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "s"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 5,
# + "w": 8,
# + "x": 16,
# + "y": 18
# + },
# + "id": 11,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"uptime\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\", \"_field\"])\n |> sort(columns: [\"_time\"])\n |> last()\n |> map(fn: (r) => ({ r with \n _value: float(v: r._value) \n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Current Uptime ($host)",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "binbps"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 5,
# + "w": 8,
# + "x": 0,
# + "y": 23
# + },
# + "id": 12,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_tx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\", \"_field\"])\n |> sort(columns: [\"_time\"]) \n |> derivative(unit: 1s, nonNegative: true)\n |> max()\n |> map(fn: (r) => ({ r with \n _value: (r._value * 8.00) \n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Max Observed Upload ($host)",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "binbps"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 5,
# + "w": 8,
# + "x": 8,
# + "y": 23
# + },
# + "id": 13,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_rx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\", \"_field\"])\n |> sort(columns: [\"_time\"]) \n |> derivative(unit: 1s, nonNegative: true)\n |> max()\n |> map(fn: (r) => ({ r with \n _value: (r._value * 8.00) \n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Max Observed Download ($host)",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "s"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 5,
# + "w": 8,
# + "x": 16,
# + "y": 23
# + },
# + "id": 14,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"uptime\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\", \"_field\"])\n |> sort(columns: [\"_time\"])\n |> max()\n |> map(fn: (r) => ({ r with \n _value: float(v: r._value) \n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Max Observed Uptime ($host)",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": 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": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 0,
# + "y": 28
# + },
# + "id": 21,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => r._field == \"guards_down\" or\n r._field == \"guards_never_connected\" or\n r._field == \"guards_total\" or\n r._field == \"guards_unlisted\" or\n r._field == \"guards_unusable\" or\n r._field == \"guards_up\")\n |>aggregateWindow(every: v.windowPeriod, fn: max)\n |>keep(columns: [\"_time\",\"host\", \"_field\", \"_value\"])\n ",
# + "refId": "A"
# + }
# + ],
# + "title": "Guard Statuses ($host)",
# + "type": "timeseries"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": 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": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "s"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 12,
# + "y": 28
# + },
# + "id": 22,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => r._field == \"uptime\")\n |> aggregateWindow(every: v.windowPeriod, fn: max)\n |> map(fn: (r) => ({ \n _time: r._time,\n host: r.host,\n _value: float(v: r._value)\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Daemon Uptime ($host)",
# + "type": "timeseries"
# + },
# + {
# + "collapsed": false,
# + "gridPos": {
# + "h": 1,
# + "w": 24,
# + "x": 0,
# + "y": 36
# + },
# + "id": 26,
# + "panels": [],
# + "title": "Resource Usage",
# + "type": "row"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": false
# + },
# + "lineInterpolation": "linear",
# + "lineWidth": 1,
# + "pointSize": 5,
# + "scaleDistribution": {
# + "type": "linear"
# + },
# + "showPoints": "auto",
# + "spanNulls": true,
# + "stacking": {
# + "group": "A",
# + "mode": "none"
# + },
# + "thresholdsStyle": {
# + "mode": "off"
# + }
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + }
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 0,
# + "y": 37
# + },
# + "id": 16,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"cpu\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => r._field == \"usage_system\" or\n r._field == \"usage_user\" or\n r._field == \"usage_iowait\"\n )\n |> filter(fn: (r) => r.cpu == \"cpu-total\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean)",
# + "refId": "A"
# + }
# + ],
# + "title": "CPU Usage ($host)",
# + "type": "timeseries"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": false
# + },
# + "lineInterpolation": "linear",
# + "lineWidth": 1,
# + "pointSize": 5,
# + "scaleDistribution": {
# + "type": "linear"
# + },
# + "showPoints": "auto",
# + "spanNulls": true,
# + "stacking": {
# + "group": "A",
# + "mode": "none"
# + },
# + "thresholdsStyle": {
# + "mode": "off"
# + }
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "percent"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 12,
# + "y": 37
# + },
# + "id": 17,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"mem\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => \n r._field == \"used_percent\"\n )\n\n |> aggregateWindow(every: v.windowPeriod, fn: mean)\n ",
# + "refId": "A"
# + }
# + ],
# + "title": "CPU Usage ($host)",
# + "type": "timeseries"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": false
# + },
# + "lineInterpolation": "linear",
# + "lineWidth": 1,
# + "pointSize": 5,
# + "scaleDistribution": {
# + "type": "linear"
# + },
# + "showPoints": "auto",
# + "spanNulls": true,
# + "stacking": {
# + "group": "A",
# + "mode": "none"
# + },
# + "thresholdsStyle": {
# + "mode": "off"
# + }
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "binbps"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 9,
# + "w": 24,
# + "x": 0,
# + "y": 45
# + },
# + "id": 19,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"bytes_rx\" or r._field == \"bytes_tx\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\", \"_field\"])\n |> sort(columns: [\"_time\"])\n |> derivative(unit: 1s, nonNegative: true)\n |> aggregateWindow(every: v.windowPeriod, fn: mean)\n |> map(fn: (r) => ({ r with \n _time: r._time,\n _field: r._field,\n host: r.host,\n _value: r._value * 8.00\n })) \n",
# + "refId": "A"
# + }
# + ],
# + "title": "Network Throughput ($host)",
# + "type": "timeseries"
# + },
# + {
# + "collapsed": false,
# + "gridPos": {
# + "h": 1,
# + "w": 24,
# + "x": 0,
# + "y": 54
# + },
# + "id": 28,
# + "panels": [],
# + "title": "Accounting",
# + "type": "row"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "s"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 0,
# + "y": 55
# + },
# + "id": 30,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => r._field == \"accounting_period_seconds_elapsed\")\n |> last()\n |> map(fn: (r) => ({\n \t_value: float(v: r._value)\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Time Elapsed in Accounting Period",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "thresholds"
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "s"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 12,
# + "y": 55
# + },
# + "id": 31,
# + "options": {
# + "colorMode": "value",
# + "graphMode": "area",
# + "justifyMode": "auto",
# + "orientation": "auto",
# + "reduceOptions": {
# + "calcs": [
# + "lastNotNull"
# + ],
# + "fields": "",
# + "values": false
# + },
# + "textMode": "auto"
# + },
# + "pluginVersion": "9.5.1",
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> filter(fn: (r) => r._field == \"accounting_period_seconds_remaining\")\n |> last()\n |> map(fn: (r) => ({\n \t_value: float(v: r._value)\n }))",
# + "refId": "A"
# + }
# + ],
# + "title": "Time Remaining in Accounting Period",
# + "type": "stat"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": false
# + },
# + "lineInterpolation": "linear",
# + "lineWidth": 1,
# + "pointSize": 5,
# + "scaleDistribution": {
# + "type": "linear"
# + },
# + "showPoints": "auto",
# + "spanNulls": true,
# + "stacking": {
# + "group": "A",
# + "mode": "none"
# + },
# + "thresholdsStyle": {
# + "mode": "off"
# + }
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "bytes"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 0,
# + "y": 63
# + },
# + "id": 33,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"accounting_bytes_read\" or r._field == \"accounting_bytes_write\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\",\"_field\"])\n |> aggregateWindow(every: v.windowPeriod, fn: max)\n ",
# + "refId": "A"
# + }
# + ],
# + "title": "Accounting Bytes Usage ($host)",
# + "type": "timeseries"
# + },
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "description": "",
# + "fieldConfig": {
# + "defaults": {
# + "color": {
# + "mode": "palette-classic"
# + },
# + "custom": {
# + "axisCenteredZero": false,
# + "axisColorMode": "text",
# + "axisLabel": "",
# + "axisPlacement": "auto",
# + "barAlignment": 0,
# + "drawStyle": "line",
# + "fillOpacity": 0,
# + "gradientMode": "none",
# + "hideFrom": {
# + "legend": false,
# + "tooltip": false,
# + "viz": false
# + },
# + "lineInterpolation": "linear",
# + "lineWidth": 1,
# + "pointSize": 5,
# + "scaleDistribution": {
# + "type": "linear"
# + },
# + "showPoints": "auto",
# + "spanNulls": true,
# + "stacking": {
# + "group": "A",
# + "mode": "none"
# + },
# + "thresholdsStyle": {
# + "mode": "off"
# + }
# + },
# + "mappings": [],
# + "thresholds": {
# + "mode": "absolute",
# + "steps": [
# + {
# + "color": "green",
# + "value": null
# + },
# + {
# + "color": "red",
# + "value": 80
# + }
# + ]
# + },
# + "unit": "bytes"
# + },
# + "overrides": []
# + },
# + "gridPos": {
# + "h": 8,
# + "w": 12,
# + "x": 12,
# + "y": 63
# + },
# + "id": 34,
# + "options": {
# + "legend": {
# + "calcs": [],
# + "displayMode": "list",
# + "placement": "bottom",
# + "showLegend": true
# + },
# + "tooltip": {
# + "mode": "single",
# + "sort": "none"
# + }
# + },
# + "targets": [
# + {
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "query": "from(bucket: \"telegraf/autogen\")\n |> range(start: v.timeRangeStart)\n |> filter(fn: (r) => r._measurement == \"tor\")\n |> filter(fn: (r) => r._field == \"accounting_bytes_remaining_read\" or r._field == \"accounting_bytes_remaining_write\")\n |> filter(fn: (r) => r.host == \"${host}\")\n |> group(columns: [\"host\",\"_field\"])\n |> aggregateWindow(every: v.windowPeriod, fn: max)\n ",
# + "refId": "A"
# + }
# + ],
# + "title": "Accounting Bytes Remaining ($host)",
# + "type": "timeseries"
# + }
# + ],
# + "refresh": "",
# + "schemaVersion": 38,
# + "style": "dark",
# + "tags": [
# + "tor",
# + "anonymous overlay",
# + "system"
# + ],
# + "templating": {
# + "list": [
# + {
# + "current": {},
# + "datasource": {
# + "type": "influxdb",
# + "uid": "${DS_INFLUXDB}"
# + },
# + "definition": "from(bucket: \"telegraf\")\n|> range(start: v.timeRangeStart)\n|> filter(fn: (r) => r._measurement == \"tor\")\n|> keyValues(keyColumns: [\"host\"])\n|> group()\n|> keep(columns: [\"_value\"])",
# + "hide": 0,
# + "includeAll": false,
# + "multi": false,
# + "name": "host",
# + "options": [],
# + "query": "from(bucket: \"telegraf\")\n|> range(start: v.timeRangeStart)\n|> filter(fn: (r) => r._measurement == \"tor\")\n|> keyValues(keyColumns: [\"host\"])\n|> group()\n|> keep(columns: [\"_value\"])",
# + "refresh": 2,
# + "regex": "",
# + "skipUrlSync": false,
# + "sort": 0,
# + "type": "query"
# + }
# + ]
# + },
# + "time": {
# + "from": "now-6h",
# + "to": "now"
# + },
# + "timepicker": {},
# + "timezone": "",
# + "title": "Tor",
# + "uid": "o7cPOPM4k",
# + "version": 4,
# + "weekStart": ""
# +}
# \ No newline at end of file
#