lotus-land-story: provision dashboards from the repository
First step of the Grafana 13 plan (docs/lotus-land-story/2026-10-13-grafana-13.md): provisioned JSON becomes the source of truth ahead of the one-way dashboard migration. Adds network panels to Personal for the same traffic debugging.
Assisted-by: GLM-5.3 via pi
diff --git a/lotus-land-story/grafana.yml b/lotus-land-story/grafana.yml
index e1b76ba..e5865cc 100644
--- a/lotus-land-story/grafana.yml
+++ b/lotus-land-story/grafana.yml
@@ -17,6 +17,7 @@
owner: "{{ grafana_user.name }}"
loop:
- datasources
+ - dashboards
- name: Configure Grafana
ansible.builtin.copy:
@@ -109,6 +110,29 @@
url: http://victoria-traces:10428/select/jaeger
mode: "0644"
+ # allowUiUpdates is false so the repository stays the source of truth.
+ - name: Provision dashboard provider
+ ansible.builtin.copy:
+ dest: /mnt/lotus-land-story/grafana/provisioning/dashboards/provider.yml
+ content: |
+ apiVersion: 1
+
+ providers:
+ - name: default
+ type: file
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ path: /etc/grafana/provisioning/dashboards
+ mode: "0644"
+
+ - name: Provision dashboards
+ ansible.builtin.copy:
+ src: "{{ item }}"
+ dest: /mnt/lotus-land-story/grafana/provisioning/dashboards/
+ mode: "0644"
+ loop: "{{ query('ansible.builtin.fileglob', playbook_dir ~ '/templates/dashboards/*.json', wantlist=true) }}"
+
- name: Create Grafana data dir
ansible.builtin.file:
path: /mnt/lotus-land-story/grafana/data
diff --git a/lotus-land-story/templates/dashboards/personal.json b/lotus-land-story/templates/dashboards/personal.json
new file mode 100644
index 0000000..cb5ffff
--- /dev/null
+++ b/lotus-land-story/templates/dashboards/personal.json
@@ -0,0 +1,2520 @@
+{
+ "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,
+ "links": [],
+ "panels": [
+ {
+ "gridPos": {
+ "h": 14,
+ "w": 7,
+ "x": 0,
+ "y": 0
+ },
+ "id": 1,
+ "libraryPanel": {
+ "name": "Uptime",
+ "uid": "fexkjwb19jrpce"
+ },
+ "title": "",
+ "type": "library-panel-ref"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "decimals": 1,
+ "mappings": [],
+ "max": 100,
+ "thresholds": {
+ "mode": "percentage",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "#EAB839",
+ "value": 75
+ },
+ {
+ "color": "red",
+ "value": 90
+ }
+ ]
+ },
+ "unit": "percent"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 14,
+ "w": 6,
+ "x": 7,
+ "y": 0
+ },
+ "id": 5,
+ "options": {
+ "displayMode": "basic",
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "maxVizHeight": 300,
+ "minVizHeight": 16,
+ "minVizWidth": 8,
+ "namePlacement": "top",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": true
+ },
+ "showUnfilled": true,
+ "sizing": "auto",
+ "valueMode": "color"
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "editorMode": "code",
+ "exemplar": false,
+ "expr": "(\n (node_filesystem_size_bytes\n - node_filesystem_avail_bytes)\n / node_filesystem_size_bytes\n) * 100\n",
+ "instant": false,
+ "legendFormat": "{{instance}} ({{mountpoint}})",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "filesystems",
+ "transformations": [
+ {
+ "id": "seriesToRows",
+ "options": {}
+ },
+ {
+ "id": "groupBy",
+ "options": {
+ "fields": {
+ "Metric": {
+ "aggregations": [],
+ "operation": "groupby"
+ },
+ "Time": {
+ "aggregations": [
+ "lastNotNull"
+ ]
+ },
+ "Value": {
+ "aggregations": [
+ "firstNotNull"
+ ],
+ "operation": "aggregate"
+ }
+ }
+ }
+ },
+ {
+ "id": "sortBy",
+ "options": {
+ "fields": {},
+ "sort": [
+ {
+ "field": "Metric"
+ }
+ ]
+ }
+ }
+ ],
+ "type": "bargauge"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "continuous-GrYlRd"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "decbytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 14,
+ "w": 11,
+ "x": 13,
+ "y": 0
+ },
+ "id": 6,
+ "options": {
+ "displayMode": "basic",
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "maxVizHeight": 300,
+ "minVizHeight": 16,
+ "minVizWidth": 8,
+ "namePlacement": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": true
+ },
+ "showUnfilled": true,
+ "sizing": "auto",
+ "valueMode": "color"
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "editorMode": "code",
+ "expr": "container_memory_usage_bytes{name=~\".+\"}",
+ "legendFormat": "{{name}}",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "",
+ "transformations": [
+ {
+ "id": "seriesToRows",
+ "options": {}
+ },
+ {
+ "id": "groupBy",
+ "options": {
+ "fields": {
+ "Metric": {
+ "aggregations": [
+ "mean"
+ ],
+ "operation": "groupby"
+ },
+ "Value": {
+ "aggregations": [
+ "mean"
+ ],
+ "operation": "aggregate"
+ }
+ }
+ }
+ },
+ {
+ "id": "sortBy",
+ "options": {
+ "fields": {},
+ "sort": [
+ {
+ "field": "Metric"
+ }
+ ]
+ }
+ }
+ ],
+ "type": "bargauge"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 14
+ },
+ "id": 10,
+ "panels": [],
+ "title": "backup",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "#EAB839",
+ "value": 90000
+ },
+ {
+ "color": "red",
+ "value": 180000
+ }
+ ]
+ },
+ "unit": "s"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 5,
+ "x": 0,
+ "y": 15
+ },
+ "hideTimeOverride": false,
+ "id": 12,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "percentChangeColorMode": "standard",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showPercentChange": false,
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "editorMode": "code",
+ "exemplar": false,
+ "expr": "end() - (backup_completed_timestamp)",
+ "format": "time_series",
+ "instant": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "timeFrom": "7d",
+ "title": "last backup",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "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": "smooth",
+ "lineStyle": {
+ "dash": [
+ 0,
+ 10
+ ],
+ "fill": "dot"
+ },
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "dtdurations"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 7,
+ "x": 5,
+ "y": 15
+ },
+ "id": 11,
+ "interval": "24h",
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "editorMode": "code",
+ "expr": "backup_duration_seconds{job=\"backup\"}",
+ "format": "time_series",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "duration",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {
+ "axisPlacement": "auto",
+ "fillOpacity": 70,
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineWidth": 1
+ },
+ "displayName": "backup",
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": 0
+ },
+ {
+ "color": "green",
+ "value": 1
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 5,
+ "x": 0,
+ "y": 18
+ },
+ "id": 13,
+ "interval": "1d",
+ "options": {
+ "colWidth": 0.9,
+ "legend": {
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "rowHeight": 0.9,
+ "showValue": "never",
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "editorMode": "code",
+ "exemplar": false,
+ "expr": "changes(backup_completed_timestamp[1d]) default 0",
+ "format": "time_series",
+ "instant": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "",
+ "type": "status-history"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 21
+ },
+ "id": 8,
+ "panels": [],
+ "title": "caddy",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "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",
+ "showValues": false,
+ "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": 6,
+ "w": 11,
+ "x": 0,
+ "y": 22
+ },
+ "id": 7,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "editorMode": "code",
+ "expr": "rate(sum(caddy_http_requests_total))",
+ "format": "time_series",
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "req/s",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "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",
+ "showValues": false,
+ "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": 6,
+ "w": 10,
+ "x": 11,
+ "y": 22
+ },
+ "id": 14,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "editorMode": "code",
+ "expr": "container_name:caddy | filter request.host:* | replace_regexp (`(\\.|:\\d+)$`, \"\") at \"request.host\" | stats by (\"request.host\") count() as hits",
+ "legendFormat": "{{request.host}}",
+ "queryType": "statsRange",
+ "refId": "A"
+ }
+ ],
+ "title": "Requests by host",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "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",
+ "showValues": false,
+ "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": 6,
+ "w": 11,
+ "x": 0,
+ "y": 28
+ },
+ "id": 9,
+ "interval": "10m",
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "histogram_quantile(0.95, sum(rate(caddy_http_request_duration_seconds_bucket[$__rate_interval])) by (le))",
+ "format": "time_series",
+ "legendFormat": "p95",
+ "range": true,
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "histogram_quantile(0.9, sum(rate(caddy_http_request_duration_seconds_bucket[$__rate_interval])) by (le))",
+ "format": "time_series",
+ "legendFormat": "p90",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "histogram_quantile(0.5, sum(rate(caddy_http_request_duration_seconds_bucket[$__rate_interval])) by (le))",
+ "format": "time_series",
+ "legendFormat": "p50",
+ "range": true,
+ "refId": "C"
+ }
+ ],
+ "title": "",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "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",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "s"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 13,
+ "x": 11,
+ "y": 28
+ },
+ "id": 21,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true,
+ "sortBy": "Max",
+ "sortDesc": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "editorMode": "code",
+ "expr": "container_name:caddy | filter request.host:* | replace_regexp (`(\\.|:\\d+)$`, \"\") at \"request.host\" | stats by (\"request.host\") quantile(0.95, duration) as p95",
+ "legendFormat": "{{request.host}}",
+ "queryType": "statsRange",
+ "refId": "A"
+ }
+ ],
+ "title": "p95 by host",
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 34
+ },
+ "id": 15,
+ "panels": [],
+ "title": "updates",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [
+ {
+ "options": {
+ "match": "null",
+ "result": {
+ "color": "red",
+ "index": 0,
+ "text": "never run"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "#EAB839",
+ "value": 691200
+ },
+ {
+ "color": "red",
+ "value": 777600
+ }
+ ]
+ },
+ "unit": "s"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 0,
+ "y": 35
+ },
+ "id": 16,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "percentChangeColorMode": "standard",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showPercentChange": false,
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "exemplar": false,
+ "expr": "end() - node_systemd_timer_last_trigger_seconds{instance=\"legacy-of-lunatic-kingdom:9100\", name=\"apt-daily-upgrade.timer\"}",
+ "instant": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "last unattended upgrade",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ },
+ "1": {
+ "color": "red",
+ "index": 1,
+ "text": "FAILED"
+ }
+ },
+ "type": "value"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 8,
+ "y": 35
+ },
+ "id": 17,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "percentChangeColorMode": "standard",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showPercentChange": false,
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "exemplar": false,
+ "expr": "node_systemd_unit_state{instance=\"legacy-of-lunatic-kingdom:9100\", name=\"apt-daily-upgrade.service\", state=\"failed\"}",
+ "instant": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "last run failed",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "No"
+ },
+ "1": {
+ "color": "red",
+ "index": 1,
+ "text": "Yes"
+ }
+ },
+ "type": "value"
+ },
+ {
+ "options": {
+ "match": "null",
+ "result": {
+ "color": "green",
+ "index": 2,
+ "text": "No"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 16,
+ "y": 35
+ },
+ "id": 18,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "percentChangeColorMode": "standard",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showPercentChange": false,
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "exemplar": false,
+ "expr": "max(node_reboot_required{instance=\"legacy-of-lunatic-kingdom:9100\"})",
+ "instant": false,
+ "legendFormat": "__auto",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "reboot required",
+ "type": "stat"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 39
+ },
+ "id": 22,
+ "panels": [],
+ "title": "mountain-of-faith",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "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",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "celsius"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 0,
+ "y": 40
+ },
+ "id": 23,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "node_thermal_zone_temp{instance=\"mountain-of-faith:9100\"}",
+ "format": "time_series",
+ "legendFormat": "{{type}}",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "cpu temperature",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "description": "The PoE HAT fan has no tachometer, so this is PWM duty cycle and the kernel cooling step, not measured RPM.",
+ "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": "stepAfter",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "max": 100,
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "percent"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 12,
+ "x": 12,
+ "y": 40
+ },
+ "id": 24,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "node_hwmon_pwm{instance=\"mountain-of-faith:9100\", chip=\"platform_pwm_fan\"} / 255 * 100",
+ "format": "time_series",
+ "legendFormat": "duty cycle",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "node_cooling_device_cur_state{instance=\"mountain-of-faith:9100\", type=\"pwm-fan\"} / node_cooling_device_max_state{instance=\"mountain-of-faith:9100\", type=\"pwm-fan\"} * 100",
+ "format": "time_series",
+ "legendFormat": "cooling step",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "fan",
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 46
+ },
+ "id": 25,
+ "panels": [],
+ "title": "lotus-land-story",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "description": "Readings above 100% are an artifact of a stalled node-exporter scrape: the sample is stamped at scrape start but read minutes later.",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "barWidthFactor": 0.6,
+ "drawStyle": "line",
+ "fillOpacity": 30,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "normal"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "percentunit"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 47
+ },
+ "id": 26,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "avg by (mode) (rate(node_cpu_seconds_total{instance=\"lotus-land-story:9100\", mode!=\"idle\"}[$__rate_interval]))",
+ "legendFormat": "{{mode}}",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "cpu by mode",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "description": "Docker containers only (cAdvisor runs with --docker_only). Host processes like postgres and redis aren't here.",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "cores",
+ "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": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 47
+ },
+ "id": 27,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "topk(10, sum by (name) (rate(container_cpu_usage_seconds_total{job=\"cadvisor\", name!=\"\"}[$__rate_interval])))",
+ "legendFormat": "{{name}}",
+ "range": true,
+ "refId": "A"
+ }
+ ],
+ "title": "cpu by container",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "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": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "bytes"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 55
+ },
+ "id": 28,
+ "options": {
+ "legend": {
+ "calcs": [
+ "min"
+ ],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "node_memory_MemAvailable_bytes{instance=\"lotus-land-story:9100\"}",
+ "legendFormat": "available",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "node_memory_SwapTotal_bytes{instance=\"lotus-land-story:9100\"} - node_memory_SwapFree_bytes{instance=\"lotus-land-story:9100\"}",
+ "legendFormat": "swap used",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "memory",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "description": "Pages re-read from disk after eviction. Spikes here with flat swap-in mean page cache thrash from memory pressure.",
+ "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": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 55
+ },
+ "id": 29,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "rate(node_vmstat_pgmajfault{instance=\"lotus-land-story:9100\"}[$__rate_interval])",
+ "legendFormat": "major faults/s",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "rate(node_vmstat_pswpin{instance=\"lotus-land-story:9100\"}[$__rate_interval])",
+ "legendFormat": "swap-in pages/s",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "major page faults",
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 63
+ },
+ "id": 30,
+ "panels": [],
+ "title": "pro-tacts",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "description": "From Caddy access logs. Status 0 and 499 are clients hanging up before a response.",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "barWidthFactor": 0.6,
+ "drawStyle": "bars",
+ "fillOpacity": 80,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "normal"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 64
+ },
+ "id": 31,
+ "interval": "1h",
+ "options": {
+ "legend": {
+ "calcs": [
+ "sum"
+ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "editorMode": "code",
+ "expr": "container_name:caddy request.host:contacts.chislan.family | stats by (status) count() as hits",
+ "legendFormat": "{{status}}",
+ "queryType": "statsRange",
+ "refId": "A"
+ }
+ ],
+ "title": "requests by status",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "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": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "s"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 8,
+ "y": 64
+ },
+ "id": 32,
+ "interval": "1h",
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true,
+ "sortBy": "Max",
+ "sortDesc": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-logs-datasource",
+ "uid": "PD775F2863313E6C7"
+ },
+ "editorMode": "code",
+ "expr": "container_name:caddy request.host:contacts.chislan.family | stats by (request.method) quantile(0.95, duration) as p95",
+ "legendFormat": "{{request.method}}",
+ "queryType": "statsRange",
+ "refId": "A"
+ }
+ ],
+ "title": "p95 by method",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "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": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "memory"
+ },
+ "properties": [
+ {
+ "id": "unit",
+ "value": "bytes"
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "cpu"
+ },
+ "properties": [
+ {
+ "id": "unit",
+ "value": "percentunit"
+ },
+ {
+ "id": "custom.axisPlacement",
+ "value": "right"
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 16,
+ "y": 64
+ },
+ "id": 33,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "sum(container_memory_working_set_bytes{job=\"cadvisor\", name=\"pro-tacts\"})",
+ "legendFormat": "memory",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "sum(rate(container_cpu_usage_seconds_total{job=\"cadvisor\", name=\"pro-tacts\"}[$__rate_interval]))",
+ "legendFormat": "cpu",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "container",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "barWidthFactor": 0.6,
+ "drawStyle": "line",
+ "fillOpacity": 20,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ }
+ ]
+ },
+ "unit": "Bps"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 79
+ },
+ "id": 34,
+ "options": {
+ "legend": {
+ "calcs": [
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "sum by (device) (rate(node_network_receive_bytes_total{instance=\"lotus-land-story:9100\", device!~\"lo|veth.*|docker.*|br-.*\"}[$__rate_interval]))",
+ "legendFormat": "{{device}} RX",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "sum by (device) (rate(node_network_transmit_bytes_total{instance=\"lotus-land-story:9100\", device!~\"lo|veth.*|docker.*|br-.*\"}[$__rate_interval]))",
+ "legendFormat": "{{device}} TX",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "network by interface",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "barWidthFactor": 0.6,
+ "drawStyle": "line",
+ "fillOpacity": 20,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "showValues": false,
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": 0
+ }
+ ]
+ },
+ "unit": "Bps"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 79
+ },
+ "id": 35,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "pluginVersion": "12.4.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "sum by (name) (rate(container_network_receive_bytes_total[$__rate_interval]))",
+ "legendFormat": "{{name}} RX",
+ "range": true,
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "editorMode": "code",
+ "expr": "sum by (name) (rate(container_network_transmit_bytes_total[$__rate_interval]))",
+ "legendFormat": "{{name}} TX",
+ "range": true,
+ "refId": "B"
+ }
+ ],
+ "title": "network by container",
+ "type": "timeseries"
+ }
+ ],
+ "preload": false,
+ "refresh": "auto",
+ "schemaVersion": 42,
+ "tags": [],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-7d",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "browser",
+ "title": "Personal",
+ "uid": "fe361013-7cea-4bf4-a458-eb376b24e44e",
+ "version": 45,
+ "weekStart": ""
+}
diff --git a/lotus-land-story/templates/library-panels/uptime.json b/lotus-land-story/templates/library-panels/uptime.json
new file mode 100644
index 0000000..1baa13f
--- /dev/null
+++ b/lotus-land-story/templates/library-panels/uptime.json
@@ -0,0 +1,138 @@
+{
+ "result": {
+ "id": 1,
+ "orgId": 1,
+ "folderId": 0,
+ "folderUid": "general",
+ "uid": "fexkjwb19jrpce",
+ "name": "Uptime",
+ "kind": 1,
+ "type": "state-timeline",
+ "description": "",
+ "model": {
+ "datasource": {
+ "type": "victoriametrics-metrics-datasource",
+ "uid": "P4169E866C3094E38"
+ },
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {
+ "axisPlacement": "auto",
+ "fillOpacity": 80,
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "vis": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineWidth": 1,
+ "spanNulls": false
+ },
+ "links": [
+ {
+ "oneClick": false,
+ "title": "Select instance",
+ "url": "https://grafana/d/blackbox-uptime/blackbox-exporter-uptime?var-instance=${__field.labels.instance}"
+ }
+ ],
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "red",
+ "index": 0,
+ "text": "DOWN"
+ },
+ "1": {
+ "color": "green",
+ "index": 1,
+ "text": "UP"
+ }
+ },
+ "type": "value"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "green",
+ "value": 1
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 13,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ "id": 1,
+ "libraryPanel": {
+ "name": "Uptime",
+ "uid": "fexkjwb19jrpce"
+ },
+ "options": {
+ "alignValue": "left",
+ "colWidth": 0.9,
+ "legend": {
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "mergeValues": false,
+ "rowHeight": 0.9,
+ "showValue": "never",
+ "tooltip": {
+ "hideZeros": false,
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "12.1.1",
+ "targets": [
+ {
+ "datasource": {
+ "type": "victoriametrics-datasource",
+ "uid": "victoriametrics"
+ },
+ "expr": "probe_success{job=~\"blackbox-exporter-http.*\"}",
+ "interval": "",
+ "legendFormat": "{{target}}",
+ "refId": "A"
+ }
+ ],
+ "type": "state-timeline"
+ },
+ "version": 1,
+ "meta": {
+ "folderName": "General",
+ "folderUid": "general",
+ "connectedDashboards": 2,
+ "created": "2025-09-09T15:57:19Z",
+ "updated": "2025-09-09T15:57:19Z",
+ "createdBy": {
+ "id": 2,
+ "name": "alpha@kejadlen.dev",
+ "avatarUrl": "/avatar/2d10d39af31cc200ed23d6e7b6ac1b0b"
+ },
+ "updatedBy": {
+ "id": 2,
+ "name": "alpha@kejadlen.dev",
+ "avatarUrl": "/avatar/2d10d39af31cc200ed23d6e7b6ac1b0b"
+ }
+ }
+ }
+}