diff --git a/Files/grafana-host-docker-dashboard.flat.json b/Files/grafana-host-docker-dashboard.flat.json new file mode 100644 index 0000000..dc61d75 --- /dev/null +++ b/Files/grafana-host-docker-dashboard.flat.json @@ -0,0 +1,455 @@ +{ + "dashboard": { + "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, + "graphTooltip": 1, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "x": 0, + "y": 0, + "w": 12, + "h": 8 + }, + "id": 1, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "up", + "legendFormat": "{{job}} / {{instance}}", + "refId": "A" + } + ], + "title": "Targets up (all)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "x": 12, + "y": 0, + "w": 12, + "h": 8 + }, + "id": 2, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "scrape_duration_seconds", + "legendFormat": "{{job}} / {{instance}}", + "refId": "A" + } + ], + "title": "Scrape duration (s)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "x": 0, + "y": 8, + "w": 8, + "h": 8 + }, + "id": 3, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{instance=\"$node_instance\", mode=\"idle\"}[5m])) * 100)", + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "title": "CPU usage (%)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "x": 8, + "y": 8, + "w": 8, + "h": 8 + }, + "id": 4, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "node_memory_MemTotal_bytes{instance=\"$node_instance\"} - node_memory_MemAvailable_bytes{instance=\"$node_instance\"}", + "legendFormat": "used", + "refId": "A" + }, + { + "expr": "node_memory_MemAvailable_bytes{instance=\"$node_instance\"}", + "legendFormat": "available", + "refId": "B" + } + ], + "title": "Memory used (bytes)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "x": 16, + "y": 8, + "w": 8, + "h": 8 + }, + "id": 5, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "100 * (1 - (node_filesystem_avail_bytes{instance=\"$node_instance\", fstype!~\"tmpfs|overlay|squashfs\"} / node_filesystem_size_bytes{instance=\"$node_instance\", fstype!~\"tmpfs|overlay|squashfs\"}))", + "legendFormat": "{{mountpoint}}", + "refId": "A" + } + ], + "title": "Disk usage (%) by mount", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "x": 0, + "y": 16, + "w": 12, + "h": 9 + }, + "id": 6, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, 100 * (sum by (cname) (label_replace(rate(container_cpu_usage_seconds_total[5m]){instance=\"$cadvisor_instance\", name=~\"$container\"}, \"cname\", \"$1\", \"name\", \"(.*)\"))) or (sum by (cname) (label_replace(rate(container_cpu_usage_seconds_total[5m]){instance=\"$cadvisor_instance\", container=~\"$container\"}, \"cname\", \"$1\", \"container\", \"(.*)\"))))", + "legendFormat": "{{cname}}", + "refId": "A" + } + ], + "title": "Top container CPU (%)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "x": 12, + "y": 16, + "w": 12, + "h": 9 + }, + "id": 7, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, (sum by (cname) (label_replace(container_memory_usage_bytes{instance=\"$cadvisor_instance\", name=~\"$container\"}, \"cname\", \"$1\", \"name\", \"(.*)\"))) or (sum by (cname) (label_replace(container_memory_usage_bytes{instance=\"$cadvisor_instance\", container=~\"$container\"}, \"cname\", \"$1\", \"container\", \"(.*)\"))))", + "legendFormat": "{{cname}}", + "refId": "A" + } + ], + "title": "Top container memory (bytes)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "x": 0, + "y": 25, + "w": 24, + "h": 9 + }, + "id": 8, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, (sum by (cname) (label_replace(rate(container_network_receive_bytes_total[5m]){instance=\"$cadvisor_instance\", name=~\"$container\"}, \"cname\", \"$1\", \"name\", \"(.*)\"))) or (sum by (cname) (label_replace(rate(container_network_receive_bytes_total[5m]){instance=\"$cadvisor_instance\", container=~\"$container\"}, \"cname\", \"$1\", \"container\", \"(.*)\"))))", + "legendFormat": "rx {{cname}}", + "refId": "A" + }, + { + "expr": "topk(10, (sum by (cname) (label_replace(rate(container_network_transmit_bytes_total[5m]){instance=\"$cadvisor_instance\", name=~\"$container\"}, \"cname\", \"$1\", \"name\", \"(.*)\"))) or (sum by (cname) (label_replace(rate(container_network_transmit_bytes_total[5m]){instance=\"$cadvisor_instance\", container=~\"$container\"}, \"cname\", \"$1\", \"container\", \"(.*)\"))))", + "legendFormat": "tx {{cname}}", + "refId": "B" + } + ], + "title": "Container network RX/TX (bytes/s)", + "type": "timeseries" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "style": "dark", + "tags": [ + "host", + "docker", + "prometheus" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "name": "DS_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "hide": 0, + "includeAll": false, + "label": "Node instance", + "name": "node_instance", + "options": [], + "query": "label_values(node_uname_info, instance)", + "refresh": 2, + "regex": "", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "current": { + "selected": false, + "text": "", + "value": "" + } + }, + { + "hide": 0, + "includeAll": false, + "label": "cAdvisor instance", + "name": "cadvisor_instance", + "options": [], + "query": "label_values(container_last_seen, instance)", + "refresh": 2, + "regex": "", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "current": { + "selected": false, + "text": "", + "value": "" + } + }, + { + "hide": 0, + "includeAll": true, + "label": "Container", + "name": "container", + "options": [], + "query": "label_values(container_last_seen{instance=\"$cadvisor_instance\"}, name)", + "refresh": 2, + "regex": "^(?!/).*$", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "current": { + "selected": false, + "text": "All", + "value": "$__all" + } + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h" + ] + }, + "timezone": "", + "title": "Host + Docker (flat import)", + "uid": "emy-host-docker-flat", + "version": 1 + }, + "overwrite": true +} \ No newline at end of file diff --git a/Files/grafana-host-docker-dashboard.json b/Files/grafana-host-docker-dashboard.json new file mode 100644 index 0000000..6880122 --- /dev/null +++ b/Files/grafana-host-docker-dashboard.json @@ -0,0 +1,968 @@ +{ + "dashboard": { + "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": 1, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "panels": [], + "title": "Host health", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "percent", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 1 + }, + "id": 2, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"$job_node\", instance=\"$instance\", mode=\"idle\"}[5m])) * 100)", + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "title": "CPU usage (%)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "short", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 1 + }, + "id": 3, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "expr": "node_load1{job=\"$job_node\", instance=\"$instance\"}", + "legendFormat": "load1", + "refId": "A" + }, + { + "expr": "node_load5{job=\"$job_node\", instance=\"$instance\"}", + "legendFormat": "load5", + "refId": "B" + }, + { + "expr": "node_load15{job=\"$job_node\", instance=\"$instance\"}", + "legendFormat": "load15", + "refId": "C" + } + ], + "title": "Load (1m/5m/15m)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 1 + }, + "id": 4, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "expr": "(node_memory_MemTotal_bytes{job=\"$job_node\", instance=\"$instance\"} - node_memory_MemAvailable_bytes{job=\"$job_node\", instance=\"$instance\"})", + "legendFormat": "used", + "refId": "A" + }, + { + "expr": "node_memory_MemAvailable_bytes{job=\"$job_node\", instance=\"$instance\"}", + "legendFormat": "available", + "refId": "B" + } + ], + "title": "Memory used (bytes)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "percent", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 5, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "100 * (1 - (node_filesystem_avail_bytes{job=\"$job_node\", instance=\"$instance\", fstype!~\"tmpfs|overlay|squashfs\"} / node_filesystem_size_bytes{job=\"$job_node\", instance=\"$instance\", fstype!~\"tmpfs|overlay|squashfs\"}))", + "legendFormat": "{{mountpoint}} ({{device}})", + "refId": "A" + } + ], + "title": "Disk usage (%) by mountpoint", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "Bps", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 6, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "sum by (device) (irate(node_disk_read_bytes_total{job=\"$job_node\", instance=\"$instance\"}[5m]))", + "legendFormat": "read {{device}}", + "refId": "A" + }, + { + "expr": "sum by (device) (irate(node_disk_written_bytes_total{job=\"$job_node\", instance=\"$instance\"}[5m]))", + "legendFormat": "write {{device}}", + "refId": "B" + } + ], + "title": "Disk I/O (bytes/s)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "Bps", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 18 + }, + "id": 7, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "sum by (device) (irate(node_network_receive_bytes_total{job=\"$job_node\", instance=\"$instance\", device!~\"lo\"}[5m]))", + "legendFormat": "rx {{device}}", + "refId": "A" + }, + { + "expr": "sum by (device) (irate(node_network_transmit_bytes_total{job=\"$job_node\", instance=\"$instance\", device!~\"lo\"}[5m]))", + "legendFormat": "tx {{device}}", + "refId": "B" + } + ], + "title": "Network throughput (bytes/s)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "s", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 18 + }, + "id": 8, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "expr": "time() - node_boot_time_seconds{job=\"$job_node\", instance=\"$instance\"}", + "legendFormat": "uptime", + "refId": "A" + } + ], + "title": "Uptime (seconds)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "short", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 18 + }, + "id": 9, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "expr": "max by (name) (node_systemd_unit_state{job=\"$job_node\", instance=\"$instance\", name=\"proxmox-vm.service\", state=\"active\"})", + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "proxmox-vm.service (systemd active=1)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 26 + }, + "id": 10, + "panels": [], + "title": "Docker (cAdvisor)", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "percent", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 27 + }, + "id": 11, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, 100 * sum by (name) (rate(container_cpu_usage_seconds_total{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"}[5m])))", + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "Top container CPU (%)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 27 + }, + "id": 12, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, container_memory_usage_bytes{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"})", + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "Top container memory (bytes)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 36 + }, + "id": 13, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, container_fs_usage_bytes{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"})", + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "Container filesystem usage (bytes)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "Bps", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 36 + }, + "id": 14, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "topk(10, sum by (name) (rate(container_network_receive_bytes_total{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"}[5m])))", + "legendFormat": "rx {{name}}", + "refId": "A" + }, + { + "expr": "topk(10, sum by (name) (rate(container_network_transmit_bytes_total{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"}[5m])))", + "legendFormat": "tx {{name}}", + "refId": "B" + } + ], + "title": "Container network (bytes/s)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 44 + }, + "id": 15, + "title": "Container seen (last 2m)", + "type": "table", + "targets": [ + { + "expr": "max by (name) (container_last_seen{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"})", + "legendFormat": "{{name}}", + "refId": "A", + "format": "table", + "instant": true + } + ], + "options": { + "showHeader": true, + "sortBy": [ + { + "displayName": "Value", + "desc": true + } + ] + }, + "fieldConfig": { + "defaults": { + "unit": "dateTimeFromNow", + "custom": { + "align": "auto" + } + }, + "overrides": [] + }, + "transformations": [ + { + "id": "organize", + "options": { + "renameByName": { + "Value": "Last seen (unix seconds)" + }, + "excludeByName": { + "Time": true + } + } + } + ] + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 52 + }, + "id": 16, + "panels": [], + "title": "Optional: directory sizes (node_exporter textfile collector)", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 53 + }, + "id": 17, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "expr": "dir_size_bytes{job=\"$job_node\", instance=\"$instance\", path=~\"/opt/monitoring|/nextcloud|/gitea|/vaultwarden\"}", + "legendFormat": "{{path}}", + "refId": "A" + } + ], + "title": "Directory sizes (bytes) — requires custom metric dir_size_bytes", + "type": "timeseries" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "style": "dark", + "tags": [ + "host", + "docker", + "prometheus" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "name": "DS_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "current": { + "selected": false, + "text": "node", + "value": "node" + }, + "hide": 0, + "includeAll": false, + "label": "Job (Node Exporter)", + "name": "job_node", + "options": [], + "query": "label_values(node_uname_info, job)", + "refresh": 2, + "regex": "", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + } + }, + { + "current": { + "selected": false, + "text": "", + "value": "" + }, + "hide": 0, + "includeAll": false, + "label": "Instance", + "name": "instance", + "options": [], + "query": "label_values(node_uname_info{job=\"$job_node\"}, instance)", + "refresh": 2, + "regex": "", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + } + }, + { + "current": { + "selected": false, + "text": "cadvisor", + "value": "cadvisor" + }, + "hide": 0, + "includeAll": false, + "label": "Job (cAdvisor)", + "name": "job_cadvisor", + "options": [], + "query": "label_values(container_last_seen, job)", + "refresh": 2, + "regex": "", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + } + }, + { + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "hide": 0, + "includeAll": true, + "label": "Container", + "name": "container", + "options": [], + "query": "label_values(container_last_seen{job=\"$job_cadvisor\", instance=\"$instance\"}, name)", + "refresh": 2, + "regex": "^(?!/).*$", + "type": "query", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + } + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Host + Docker (Node Exporter + cAdvisor)", + "uid": "emy-host-docker", + "version": 1 + }, + "overwrite": true +} \ No newline at end of file diff --git a/Files/repo.code-workspace b/Files/repo.code-workspace new file mode 100644 index 0000000..bef8424 --- /dev/null +++ b/Files/repo.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "." + }, + { + "name": "server", + "path": "../Documents/server/server" + } + ], + "settings": {} +} \ No newline at end of file