Skip to content

Instantly share code, notes, and snippets.

@j0ju
Last active December 31, 2022 12:48
Show Gist options
  • Save j0ju/6f44378e53dedd04549375fe8d6d1ad1 to your computer and use it in GitHub Desktop.
Save j0ju/6f44378e53dedd04549375fe8d6d1ad1 to your computer and use it in GitHub Desktop.
{
"__inputs": [
{
"name": "DS_PROMETHEUS",
"label": "Prometheus",
"description": "",
"type": "datasource",
"pluginId": "prometheus",
"pluginName": "Prometheus"
}
],
"__elements": {},
"__requires": [
{
"type": "grafana",
"id": "grafana",
"name": "Grafana",
"version": "9.3.2"
},
{
"type": "datasource",
"id": "prometheus",
"name": "Prometheus",
"version": "1.0.0"
},
{
"type": "panel",
"id": "stat",
"name": "Stat",
"version": ""
},
{
"type": "panel",
"id": "table",
"name": "Table",
"version": ""
},
{
"type": "panel",
"id": "timeseries",
"name": "Time series",
"version": ""
}
],
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"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"
}
]
},
"description": "Dashboard for FRITZ!Box routers using Prometheus and fritz_exporter",
"editable": true,
"fiscalYearStartMonth": 0,
"gnetId": 13848,
"graphTooltip": 2,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-BlPu"
},
"custom": {
"align": "auto",
"displayMode": "color-background-solid",
"filterable": false,
"inspect": false,
"minWidth": 50
},
"mappings": [
{
"options": {
"0": {
"color": "semi-dark-green",
"index": 1,
"text": "up-to-date"
}
},
"type": "value"
},
{
"options": {
"pattern": "[^0]",
"result": {
"color": "dark-red",
"index": 0,
"text": "Update available"
}
},
"type": "regex"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 6,
"x": 0,
"y": 0
},
"id": 29,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": false
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "fritz_update_available{serial=\"$serial\"} * on(serial) group_right() fritz_uptime_seconds_total",
"format": "table",
"instant": true,
"interval": "",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A"
}
],
"title": "Version",
"transformations": [
{
"id": "reduce",
"options": {
"includeTimeField": false,
"labelsToFields": true,
"mode": "reduceFields",
"reducers": [
"lastNotNull"
]
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"Value": false,
"friendly_name": true,
"instance": true,
"job": true,
"serial": true
},
"indexByName": {
"Value": 2,
"friendly_name": 3,
"instance": 4,
"job": 5,
"modelname": 0,
"serial": 6,
"softwareversion": 1
},
"renameByName": {
"Value": "update?",
"modelname": "model",
"softwareversion": "version"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "stepAfter",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 13,
"w": 3,
"x": 6,
"y": 0
},
"id": 26,
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max",
"min"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "count(fritz_uptime_seconds_total{friendly_name=\"$box\"} * on (serial) group_right() (fritz_host_active{interface!=\"\"}==1))",
"interval": "",
"legendFormat": "#",
"range": true,
"refId": "A"
}
],
"title": "# Active Hosts",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 13,
"w": 3,
"x": 9,
"y": 0
},
"id": 24,
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max",
"min"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "fritz_wifi_associations_count{friendly_name=~\"$box\"}",
"interval": "",
"legendFormat": "{{wifi_name}}",
"range": true,
"refId": "A"
}
],
"title": "# WLAN Clients",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"decimals": 1,
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 80
}
]
},
"unit": "decbytes"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 4,
"x": 12,
"y": 0
},
"hideTimeOverride": false,
"id": 22,
"interval": "",
"links": [],
"maxDataPoints": 10000,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"delta"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_wan_data_bytes_total{serial=\"$serial\"}",
"groupBy": [],
"interval": "",
"legendFormat": "",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT cumulative_sum(max(\"value\")) FROM \"fritzbox_value\" WHERE (\"type_instance\" = 'totalbytesreceived') AND $timeFilter GROUP BY time($__interval) tz('Europe/Berlin')",
"range": true,
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "non_negative_difference"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "totalbytesreceived"
}
],
"target": ""
}
],
"timeFrom": "24h",
"title": "Traffic",
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "direction"
}
}
],
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "bars",
"fillOpacity": 100,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "decbytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Download"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#1f78c1",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Upload"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e24d42",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "fritzbox_value.non_negative_derivative"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ba43a9",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "fritzbox_value.non_negative_difference"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e24d42",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 6,
"w": 8,
"x": 16,
"y": 0
},
"hideTimeOverride": false,
"id": 2,
"interval": "1h",
"links": [],
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"alias": "Download",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "increase(fritz_wan_datarate_bytes{serial=\"$serial\",direction=\"rx\"}[$__interval])",
"format": "time_series",
"groupBy": [
{
"params": [
"24h"
],
"type": "time"
}
],
"hide": false,
"instant": false,
"interval": "",
"legendFormat": "Download",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT non_negative_difference(last(cumulative_sum)) FROM (\nSELECT cumulative_sum(non_negative_difference(\"value\")) FROM \"fritzbox_value\" WHERE (\"type_instance\" = 'totalbytesreceived') AND $timeFilter\n) WHERE $timeFilter GROUP BY time(1d) tz('Europe/Berlin')",
"rawQuery": true,
"refId": "F",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"10s"
],
"type": "non_negative_derivative"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "totalbytesreceived"
}
],
"target": ""
},
{
"alias": "Upload",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "increase(fritz_wan_datarate_bytes{serial=\"$serial\",direction=\"tx\"}[$__interval])",
"groupBy": [
{
"params": [
"24h"
],
"type": "time"
}
],
"hide": false,
"interval": "",
"legendFormat": "Upload",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT non_negative_difference(last(cumulative_sum)) FROM (\nSELECT cumulative_sum(non_negative_difference(\"value\")) FROM \"fritzbox_value\" WHERE (\"type_instance\" = 'totalbytessent') AND $timeFilter \n) WHERE $timeFilter GROUP BY time(1d) tz('Europe/Berlin')",
"range": true,
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "max"
},
{
"params": [
"10s"
],
"type": "non_negative_derivative"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "totalbytesreceived"
}
],
"target": ""
}
],
"title": "Hourly Traffic",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "",
"fieldConfig": {
"defaults": {
"decimals": 1,
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(245, 54, 54, 0.9)",
"value": null
},
{
"color": "rgba(50, 172, 45, 0.97)",
"value": 1
}
]
},
"unit": "dtdurations"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 3,
"x": 0,
"y": 2
},
"id": 21,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_uptime_seconds_total{friendly_name=\"${box}\"}",
"format": "table",
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
}
],
"interval": "",
"legendFormat": "",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"range": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "uptime"
}
],
"target": ""
}
],
"title": "Fritzbox Uptime",
"transformations": [],
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"mappings": [
{
"options": {
"0": {
"text": "Disconnected"
},
"1": {
"text": "Connected"
}
},
"type": "value"
},
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(245, 54, 54, 0.9)",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 1
},
{
"color": "semi-dark-green",
"value": 1
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 3,
"x": 3,
"y": 2
},
"id": 10,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_ppp_connection_state{friendly_name=\"${box}\"}",
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
}
],
"interval": "",
"legendFormat": "",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"range": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "constatus"
}
],
"target": ""
}
],
"title": "IP Connection Status",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"decimals": 1,
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(245, 54, 54, 0.9)",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 1
},
{
"color": "rgba(50, 172, 45, 0.97)",
"value": 1
}
]
},
"unit": "dtdurations"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 3,
"x": 0,
"y": 4
},
"id": 13,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_ppp_connection_uptime_seconds_total{friendly_name=\"${box}\"}",
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
}
],
"interval": "",
"legendFormat": "",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"range": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "uptime"
}
],
"target": ""
}
],
"title": "Connection Uptime",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"mappings": [
{
"options": {
"0": {
"text": "Disconnected"
},
"1": {
"text": "Connected"
}
},
"type": "value"
},
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(245, 54, 54, 0.9)",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 1
},
{
"color": "semi-dark-green",
"value": 1
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 3,
"x": 3,
"y": 4
},
"id": 9,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_dsl_status{friendly_name=\"${box}\"}",
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
}
],
"interval": "",
"legendFormat": "",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"range": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "dslstatus"
}
],
"target": ""
}
],
"title": "DSL Link Status",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "hidden",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "stepAfter",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "dB"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 3,
"x": 0,
"y": 6
},
"id": 33,
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max",
"min"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "fritz_dsl_attenuation_dB{friendly_name=\"$box\"}",
"interval": "",
"legendFormat": "{{direction}}",
"range": true,
"refId": "A"
}
],
"title": "DSL Attenuation",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "hidden",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "stepAfter",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "dB"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 3,
"x": 3,
"y": 6
},
"id": 34,
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max",
"min"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "fritz_dsl_noise_margin_dB{friendly_name=\"$box\"}",
"interval": "",
"legendFormat": "{{direction}}",
"range": true,
"refId": "A"
}
],
"title": "DSL Noise margin",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"decimals": 1,
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "super-light-red",
"value": 80
}
]
},
"unit": "decbytes"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 4,
"x": 12,
"y": 6
},
"id": 8,
"interval": "",
"links": [],
"maxDataPoints": 10000,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"delta"
],
"fields": "",
"values": false
},
"textMode": "value_and_name"
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_wan_data_bytes_total{serial=\"$serial\"}",
"groupBy": [],
"interval": "",
"legendFormat": "",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT cumulative_sum(non_negative_difference(last(\"value\"))) FROM \"fritzbox_value\" WHERE (\"type_instance\" = 'totalbytessent') AND $timeFilter GROUP BY time($__interval)",
"range": true,
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "non_negative_difference"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "totalbytessent"
}
],
"target": ""
}
],
"timeFrom": "1M",
"title": "Traffic",
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "direction"
}
}
],
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 30,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 16,
"y": 6
},
"id": 35,
"links": [],
"options": {
"legend": {
"calcs": [
"mean",
"max",
"min"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"alias": "downstream",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_dsl_fec_errors_count_total{serial=\"$serial\"}",
"fields": [
{
"func": "mean",
"name": "value"
}
],
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"groupByTags": [],
"interval": "",
"legendFormat": "FEC",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(value) FROM \"fritzbox_value\" WHERE \"type_instance\" = 'receiverate' AND $timeFilter GROUP BY time($interval)",
"range": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "receiverate"
}
],
"target": "alias(collectd.squirrel.fritzbox.bitrate-receiverate,'downstream')"
},
{
"alias": "upstream",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_dsl_crc_errors_count_total{serial=\"$serial\"}",
"fields": [
{
"func": "mean",
"name": "value"
}
],
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"groupByTags": [],
"interval": "",
"legendFormat": "CRC",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(value) FROM \"fritzbox_value\" WHERE \"type_instance\" = 'sendrate' AND $timeFilter GROUP BY time($interval)",
"range": true,
"refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "sendrate"
}
],
"target": "alias(collectd.squirrel.fritzbox.bitrate-sendrate,'upstream')"
}
],
"title": "DSL errors",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"custom": {
"align": "center",
"displayMode": "color-text",
"filterable": true,
"inspect": false
},
"mappings": [
{
"options": {
"0": {
"color": "semi-dark-red",
"index": 1,
"text": "inactive"
},
"1": {
"color": "green",
"index": 0,
"text": "active"
},
"802.11": {
"color": "light-blue",
"index": 2,
"text": "WiFi"
},
"Ethernet": {
"color": "green",
"index": 4
},
"HomePlug": {
"color": "light-yellow",
"index": 3,
"text": "PLC"
}
},
"type": "value"
}
],
"noValue": "-",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "super-light-blue",
"value": null
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 21,
"w": 12,
"x": 0,
"y": 13
},
"id": 32,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"frameIndex": 25,
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Status"
}
]
},
"pluginVersion": "9.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "(fritz_host_active{serial=\"${serial}\",interface!=\"\"}) * on(instance,hostname,mac_address) group_right() fritz_host_active",
"format": "time_series",
"instant": true,
"interval": "",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A"
}
],
"title": "Network Devices",
"transformations": [
{
"id": "reduce",
"options": {
"labelsToFields": true,
"reducers": [
"lastNotNull"
]
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"Field": true,
"instance": true,
"job": true,
"model": true,
"port": true,
"serial": true
},
"indexByName": {
"Field": 6,
"Last *": 0,
"hostname": 1,
"instance": 8,
"interface": 2,
"ip_address": 3,
"job": 5,
"mac_address": 4,
"model": 10,
"port": 7,
"serial": 9
},
"renameByName": {
"Last *": "Status",
"Value": "Status",
"hostname": "Hostname",
"interface": "Connection",
"interfacetype": "Connection Type",
"ip_address": "IP",
"ipaddress": "IP",
"mac_address": "MAC",
"macaddress": "MAC",
"model": "Info"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 30,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bps"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "downstream"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#1F78C1",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "downstream max"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#0A437C",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "upstream"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#EA6460",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "upstream max"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#890F02",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 13
},
"id": 18,
"links": [],
"options": {
"legend": {
"calcs": [
"mean",
"max",
"min"
],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"alias": "downstream",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_wan_max_bitrate_bps{serial=\"$serial\",direction=\"rx\"}",
"fields": [
{
"func": "mean",
"name": "value"
}
],
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"groupByTags": [],
"interval": "",
"legendFormat": "Limit",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(value) FROM \"fritzbox_value\" WHERE \"type_instance\" = 'receiverate' AND $timeFilter GROUP BY time($interval)",
"range": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "receiverate"
}
],
"target": "alias(collectd.squirrel.fritzbox.bitrate-receiverate,'downstream')"
},
{
"alias": "upstream",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_wan_datarate_bytes{serial=\"$serial\",direction=\"rx\"}*8",
"fields": [
{
"func": "mean",
"name": "value"
}
],
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"groupByTags": [],
"interval": "",
"legendFormat": "Used",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(value) FROM \"fritzbox_value\" WHERE \"type_instance\" = 'sendrate' AND $timeFilter GROUP BY time($interval)",
"range": true,
"refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "sendrate"
}
],
"target": "alias(collectd.squirrel.fritzbox.bitrate-sendrate,'upstream')"
}
],
"title": "Download Bandwith",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 30,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bps"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "downstream"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#1F78C1",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "downstream max"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#0A437C",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "upstream"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#EA6460",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "upstream max"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#890F02",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 20
},
"id": 27,
"links": [],
"options": {
"legend": {
"calcs": [
"mean",
"max",
"min"
],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "9.3.2",
"targets": [
{
"alias": "downstream max",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_wan_max_bitrate_bps{serial=\"$serial\",direction=\"tx\"}",
"fields": [
{
"func": "mean",
"name": "value"
}
],
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"groupByTags": [],
"interval": "",
"legendFormat": "Limit",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(value) FROM \"fritzbox_value\" WHERE \"type_instance\" = 'downstreammax' AND $timeFilter GROUP BY time($interval)",
"range": true,
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "downstreammax"
}
],
"target": "alias(collectd.squirrel.fritzbox.bitrate-downstreammax,'downstream max')"
},
{
"alias": "upstream max",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
"editorMode": "code",
"expr": "fritz_wan_datarate_bytes{serial=\"$serial\",direction=\"tx\"}*8",
"fields": [
{
"func": "mean",
"name": "value"
}
],
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"groupByTags": [],
"interval": "",
"legendFormat": "Used",
"measurement": "fritzbox_value",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT mean(value) FROM \"fritzbox_value\" WHERE \"type_instance\" = 'upstreammax' AND $timeFilter GROUP BY time($interval)",
"range": true,
"refId": "D",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "type_instance",
"operator": "=",
"value": "upstreammax"
}
],
"target": "alias(collectd.squirrel.fritzbox.bitrate-upstreammax,'upstream max')"
}
],
"title": "Upload Bandwith",
"type": "timeseries"
}
],
"refresh": "5m",
"schemaVersion": 37,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"current": {},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"definition": "label_values(fritz_uptime_seconds_total,friendly_name)",
"hide": 0,
"includeAll": false,
"multi": false,
"name": "box",
"options": [],
"query": {
"query": "label_values(fritz_uptime_seconds_total,friendly_name)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"definition": "label_values(fritz_uptime_seconds_total{friendly_name=`${box}`},serial)",
"hide": 2,
"includeAll": false,
"multi": false,
"name": "serial",
"options": [],
"query": {
"query": "label_values(fritz_uptime_seconds_total{friendly_name=`${box}`},serial)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Fritz!Exporter Dash",
"uid": "ndYTs1p4k",
"version": 4,
"weekStart": ""
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment