{ "uid": "incus-prometheus-health", "title": "Prometheus Health", "description": "Prometheus self-monitoring: targets up/down, scrape duration, samples ingested, TSDB size, head series, WAL stats.", "tags": ["incus", "prometheus", "operations"], "timezone": "browser", "schemaVersion": 39, "refresh": "30s", "time": { "from": "now-1h", "to": "now" }, "fiscalYearStartMonth": 0, "liveNow": false, "editable": true, "graphTooltip": 1, "links": [ { "asDropdown": true, "icon": "external link", "includeVars": true, "keepTime": true, "tags": ["incus"], "targetBlank": false, "title": "Incus Dashboards", "tooltip": "Navigate to other Incus dashboards", "type": "dashboards" } ], "templating": { "list": [] }, "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "panels": [ { "type": "row", "title": "Targets", "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 1, "panels": [] }, { "type": "stat", "title": "Targets Up", "description": "Number of scrape targets currently reporting as healthy (up == 1).", "gridPos": { "h": 4, "w": 6, "x": 0, "y": 1 }, "id": 2, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "count(up == 1)", "legendFormat": "Up", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "none", "color": { "mode": "thresholds" } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "orientation": "auto", "textMode": "auto", "colorMode": "value", "graphMode": "area", "justifyMode": "auto" } }, { "type": "stat", "title": "Targets Down", "description": "Number of scrape targets currently unreachable or failing (up == 0). Any value above 0 requires investigation.", "gridPos": { "h": 4, "w": 6, "x": 6, "y": 1 }, "id": 3, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "count(up == 0)", "legendFormat": "Down", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 1 } ] }, "unit": "none", "color": { "mode": "thresholds" } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "orientation": "auto", "textMode": "auto", "colorMode": "value", "graphMode": "none", "justifyMode": "auto" } }, { "type": "stat", "title": "Avg Scrape Duration", "description": "Average time Prometheus takes to scrape all targets. High values may indicate slow or overloaded exporters.", "gridPos": { "h": 4, "w": 6, "x": 12, "y": 1 }, "id": 4, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "avg(scrape_duration_seconds)", "legendFormat": "Avg Duration", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 1 }, { "color": "red", "value": 5 } ] }, "unit": "s", "color": { "mode": "thresholds" } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "orientation": "auto", "textMode": "auto", "colorMode": "value", "graphMode": "none", "justifyMode": "auto" } }, { "type": "stat", "title": "Samples Ingested/s", "description": "Total rate of samples being scraped and ingested across all targets per second.", "gridPos": { "h": 4, "w": 6, "x": 18, "y": 1 }, "id": 5, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "sum(rate(scrape_samples_scraped[$__rate_interval]))", "legendFormat": "Samples/s", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "short", "color": { "mode": "thresholds" } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "orientation": "auto", "textMode": "auto", "colorMode": "value", "graphMode": "area", "justifyMode": "auto" } }, { "type": "table", "title": "Target Health", "description": "Per-target health status showing each scrape target's current state. UP (1) means healthy, DOWN (0) means unreachable or failing.", "gridPos": { "h": 8, "w": 24, "x": 0, "y": 5 }, "id": 6, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "up", "legendFormat": "", "refId": "A", "format": "table", "instant": true } ], "fieldConfig": { "defaults": { "custom": { "align": "auto", "displayMode": "auto", "inspect": false, "filterable": true }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "color": { "mode": "thresholds" } }, "overrides": [ { "matcher": { "id": "byName", "options": "instance" }, "properties": [ { "id": "displayName", "value": "Instance" }, { "id": "custom.width", "value": 300 } ] }, { "matcher": { "id": "byName", "options": "job" }, "properties": [ { "id": "displayName", "value": "Job" }, { "id": "custom.width", "value": 200 } ] }, { "matcher": { "id": "byName", "options": "Value" }, "properties": [ { "id": "displayName", "value": "Status" }, { "id": "custom.displayMode", "value": "color-background" }, { "id": "mappings", "value": [ { "type": "value", "options": { "1": { "text": "UP", "color": "green" }, "0": { "text": "DOWN", "color": "red" } } } ] } ] } ] }, "options": { "showHeader": true, "sortBy": [{ "displayName": "Job", "desc": false }], "footer": { "show": false, "reducer": ["sum"], "fields": "" } }, "transformations": [ { "id": "organize", "options": { "excludeByName": { "Time": true, "__name__": true }, "indexByName": { "instance": 0, "job": 1, "Value": 2 }, "renameByName": {} } } ] }, { "type": "row", "title": "Scrape Performance", "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 13 }, "id": 7, "panels": [] }, { "type": "timeseries", "title": "Scrape Duration by Job", "description": "How long each scrape takes per job. Spikes indicate slow exporters or network issues between Prometheus and targets.", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 14 }, "id": 8, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "scrape_duration_seconds", "legendFormat": "{{job}} - {{instance}}", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "s", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "timeseries", "title": "Samples Scraped by Job", "description": "Rate of samples scraped per job. Sudden drops may indicate target failures; spikes may indicate new metrics being exposed.", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 14 }, "id": 9, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "rate(scrape_samples_scraped[$__rate_interval])", "legendFormat": "{{job}} - {{instance}}", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "short", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "row", "title": "TSDB", "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 22 }, "id": 10, "panels": [] }, { "type": "stat", "title": "TSDB Size", "description": "Current on-disk size of the Prometheus TSDB storage directory including all blocks and WAL.", "gridPos": { "h": 4, "w": 6, "x": 0, "y": 23 }, "id": 11, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "prometheus_tsdb_storage_size_bytes", "legendFormat": "TSDB Size", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 1073741824 }, { "color": "red", "value": 5368709120 } ] }, "unit": "bytes", "color": { "mode": "thresholds" } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "orientation": "auto", "textMode": "auto", "colorMode": "value", "graphMode": "area", "justifyMode": "auto" } }, { "type": "stat", "title": "Head Series", "description": "Number of active time series in the TSDB head block. High cardinality here impacts query performance and memory usage.", "gridPos": { "h": 4, "w": 6, "x": 6, "y": 23 }, "id": 12, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "prometheus_tsdb_head_series", "legendFormat": "Head Series", "refId": "A" } ], "fieldConfig": { "defaults": { "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 100000 }, { "color": "red", "value": 500000 } ] }, "unit": "short", "color": { "mode": "thresholds" } }, "overrides": [] }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "orientation": "auto", "textMode": "auto", "colorMode": "value", "graphMode": "none", "justifyMode": "auto" } }, { "type": "timeseries", "title": "Head Chunks", "description": "Number of chunks in the TSDB head block. Growth correlates with active series count and scrape frequency.", "gridPos": { "h": 8, "w": 6, "x": 12, "y": 23 }, "id": 13, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "prometheus_tsdb_head_chunks", "legendFormat": "Head Chunks", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "short", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "timeseries", "title": "WAL Size", "description": "Size of the Prometheus write-ahead log (WAL). The WAL buffers recent writes before compaction into blocks.", "gridPos": { "h": 8, "w": 6, "x": 18, "y": 23 }, "id": 14, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "prometheus_tsdb_wal_storage_size_bytes", "legendFormat": "WAL Size", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "bytes", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "row", "title": "TSDB Trends", "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 31 }, "id": 15, "panels": [] }, { "type": "timeseries", "title": "TSDB Size Over Time", "description": "Prometheus TSDB total storage size trend. Useful for capacity planning and detecting unexpected growth.", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 32 }, "id": 16, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "prometheus_tsdb_storage_size_bytes", "legendFormat": "TSDB Size", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "bytes", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "timeseries", "title": "Samples Ingested Trend", "description": "Rate of new samples appended to the TSDB head block. Correlates with scrape frequency and number of active series.", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 32 }, "id": 17, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "rate(prometheus_tsdb_head_samples_appended_total[$__rate_interval])", "legendFormat": "Samples/s", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "short", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "timeseries", "title": "Compactions", "description": "Rate of TSDB compaction operations. Compactions merge head block data into persistent blocks on disk for efficient storage.", "gridPos": { "h": 8, "w": 12, "x": 0, "y": 40 }, "id": 18, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "rate(prometheus_tsdb_compactions_total[$__rate_interval])", "legendFormat": "Compactions/s", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "short", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } }, { "type": "timeseries", "title": "Head Series Count", "description": "Number of active time series in the TSDB head block over time. Trend helps identify cardinality growth or label explosion.", "gridPos": { "h": 8, "w": 12, "x": 12, "y": 40 }, "id": 19, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "targets": [ { "expr": "prometheus_tsdb_head_series", "legendFormat": "Head Series", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "lineWidth": 1, "fillOpacity": 15, "gradientMode": "none", "spanNulls": false, "showPoints": "never", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "unit": "short", "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "options": { "tooltip": { "mode": "multi", "sort": "desc" }, "legend": { "displayMode": "table", "placement": "right", "calcs": ["mean", "max", "lastNotNull"] } } } ] }