{ "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "description": "Caddy HTTP server monitoring with filtering by host", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 5, "links": [], "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 8, "panels": [], "title": "Summary", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The number of requests currently being handled by the server.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 0, "y": 1 }, "id": 7, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(caddy_http_requests_in_flight{job=\"$job\",instance=\"$instance\",host=~\"$host\"})", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Requests in flight", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Total requests handled in the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 4, "y": 1 }, "id": 1, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum(increase(caddy_http_requests_total{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range]))", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, "legendFormat": "__auto", "range": true, "refId": "A", "useBackend": false } ], "title": "Total requests", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Rate of requests handled per second in the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 8, "y": 1 }, "id": 2, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(rate(caddy_http_requests_total{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range]))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Requests per second", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Median round-trip request duration for the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 12, "y": 1 }, "id": 3, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.5, sum(rate(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range])) by (le))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Median request duration", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Median time-to-first-byte response duration for the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 16, "y": 1 }, "id": 20, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.5, sum(rate(caddy_http_response_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range])) by (le))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Median response duration", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "A number of middleware errors encountered while handling requests in the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "decimals": 0, "mappings": [], "noValue": "0", "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 20, "y": 1 }, "id": 5, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_request_errors_total{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range]))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Total middleware errors", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Median request (estimated) size in bytes in the selected time range. Includes body.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 0, "y": 6 }, "id": 4, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.5, sum(rate(caddy_http_request_size_bytes_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range])) by (le))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Median request size", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Median returned response body size in bytes in the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 4, "y": 6 }, "id": 21, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.5, sum(rate(caddy_http_response_size_bytes_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range])) by (le))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Median response size", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Sum of the sizes of all received requests in the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 8, "y": 6 }, "id": 22, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_request_size_bytes_sum{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range]))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Total requests size", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Sum of sizes of all response bodies in the selected time range.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 12, "y": 6 }, "id": 23, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_response_size_bytes_sum{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range]))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Total responses size", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Percentage of responses with 4xx status code in all responses.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "noValue": "0%", "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 16, "y": 6 }, "id": 24, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum(increase(caddy_http_response_duration_seconds_count{job=\"$job\",instance=\"$instance\", code=~\"4..\",host=~\"$host\"}[$__range])) / sum(increase(caddy_http_response_duration_seconds_count{job=\"$job\",instance=\"$instance\"}[$__range]))", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, "legendFormat": "__auto", "range": true, "refId": "A", "useBackend": false } ], "title": "4xx response percentage", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Percentage of responses with 4xx status code in all responses.", "fieldConfig": { "defaults": { "color": { "mode": "fixed" }, "mappings": [], "noValue": "0%", "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 5, "w": 4, "x": 20, "y": 6 }, "id": 25, "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.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum(increase(caddy_http_response_duration_seconds_count{job=\"$job\",instance=\"$instance\", code=~\"5..\",host=~\"$host\"}[$__range])) / sum(increase(caddy_http_response_duration_seconds_count{job=\"$job\",instance=\"$instance\"}[$__range]))", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, "legendFormat": "__auto", "range": true, "refId": "A", "useBackend": false } ], "title": "5xx response percentage", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 11 }, "id": 11, "panels": [], "title": "Detailed metrics", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "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": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "normal" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "reqps" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "^2\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^3\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^4\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^5\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "shades" } } ] } ] }, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 12 }, "id": 26, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(rate(caddy_http_request_duration_seconds_count{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])) by (method)", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Rate of requests by HTTP method (stacked)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [] }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "^2\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^3\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^4\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^5\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "shades" } } ] } ] }, "gridPos": { "h": 10, "w": 6, "x": 12, "y": 12 }, "id": 15, "options": { "displayLabels": [], "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value", "percent" ] }, "pieType": "pie", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_request_duration_seconds_count{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range])) by (code)", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "HTTP status breakdown", "type": "piechart" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [] }, "overrides": [] }, "gridPos": { "h": 10, "w": 6, "x": 18, "y": 12 }, "id": 16, "options": { "displayLabels": [], "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value", "percent" ] }, "pieType": "pie", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_request_duration_seconds_count{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__range])) by (method)", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "HTTP method breakdown", "type": "piechart" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "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", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 22 }, "id": 10, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.99, sum(rate(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])) by (le))", "instant": false, "legendFormat": "0.99", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.95, sum(rate(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])) by (le))", "hide": false, "instant": false, "legendFormat": "0.95", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.90, sum(rate(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])) by (le))", "hide": false, "instant": false, "legendFormat": "0.90", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.75, sum(rate(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])) by (le))", "hide": false, "instant": false, "legendFormat": "0.75", "range": true, "refId": "D" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "histogram_quantile(0.5, sum(rate(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])) by (le))", "hide": false, "instant": false, "legendFormat": "0.5", "range": true, "refId": "E" } ], "title": "Request duration percentiles", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "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": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "normal" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "^2\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^3\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^4\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "shades" } } ] }, { "matcher": { "id": "byRegexp", "options": "^5\\d\\d$" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "shades" } } ] } ] }, "gridPos": { "h": 10, "w": 12, "x": 12, "y": 22 }, "id": 27, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(rate(caddy_http_request_size_bytes_sum{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval]))", "instant": false, "legendFormat": "request", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "-sum(rate(caddy_http_response_size_bytes_sum{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval]))", "hide": false, "instant": false, "legendFormat": "response", "range": true, "refId": "B" } ], "title": "Data transfer rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "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": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 32 }, "id": 9, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(rate(caddy_http_request_duration_seconds_count{job=\"$job\",instance=\"$instance\", code=~\"4..|5..\",host=~\"$host\"}[$interval])) by (code)", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Rate of 4xx and 5xx responses", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "", "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": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 12, "y": 32 }, "id": 14, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "rate(caddy_http_request_errors_total{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$interval])", "instant": false, "legendFormat": "errors", "range": true, "refId": "A" } ], "title": "Middleware error rate", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 42 }, "id": 19, "panels": [], "title": "Heatmaps", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Round-trip request duration heatmap.", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } } }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 43 }, "id": 12, "options": { "calculate": false, "calculation": { "xBuckets": { "value": "600000" }, "yBuckets": { "value": "" } }, "cellGap": 1, "cellValues": { "unit": "" }, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": false, "scale": "exponential", "scheme": "Spectral", "steps": 64 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "s" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_request_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__rate_interval])) by (le)", "format": "heatmap", "instant": false, "interval": "$interval", "legendFormat": "{{le}}", "range": true, "refId": "A" } ], "title": "Request duration heatmap", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } } }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 12, "y": 43 }, "id": 13, "options": { "calculate": false, "calculation": { "xBuckets": { "value": "600000" }, "yBuckets": { "value": "" } }, "cellGap": 1, "cellValues": { "unit": "" }, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": false, "scale": "exponential", "scheme": "Spectral", "steps": 64 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "bytes" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(caddy_http_request_size_bytes_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__rate_interval])) by (le)", "format": "heatmap", "instant": false, "interval": "$interval", "legendFormat": "{{le}}", "range": true, "refId": "A" } ], "title": "Request size heatmap", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Response time-to-first-byte heatmap.", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } } }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 53 }, "id": 17, "options": { "calculate": false, "calculation": { "xBuckets": { "value": "600000" }, "yBuckets": { "value": "" } }, "cellGap": 1, "cellValues": { "unit": "" }, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": false, "scale": "exponential", "scheme": "Spectral", "steps": 64 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "s" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "expr": "sum(increase(caddy_http_response_duration_seconds_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__rate_interval])) by (le)", "format": "heatmap", "instant": false, "interval": "$interval", "legendFormat": "{{le}}", "range": true, "refId": "A" } ], "title": "Response duration heatmap", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } } }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 12, "y": 53 }, "id": 18, "options": { "calculate": false, "calculation": { "xBuckets": { "value": "600000" }, "yBuckets": { "value": "" } }, "cellGap": 1, "cellValues": { "unit": "" }, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": false, "scale": "exponential", "scheme": "Spectral", "steps": 64 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "bytes" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(caddy_http_response_size_bytes_bucket{job=\"$job\",instance=\"$instance\",host=~\"$host\"}[$__rate_interval])) by (le)", "format": "heatmap", "instant": false, "interval": "$interval", "legendFormat": "{{le}}", "range": true, "refId": "A" } ], "title": "Response size heatmap", "type": "heatmap" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 63 }, "id": 28, "panels": [], "title": "Domain Stats", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "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", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "Bps" }, "overrides": [] }, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 64 }, "id": 29, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": true, "mode": "multi", "sort": "desc" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "exemplar": false, "expr": "topk(12, sum by(host) (rate(caddy_http_response_size_bytes_sum[$__rate_interval])))", "fullMetaSearch": false, "includeNullMetadata": false, "legendFormat": "__auto", "range": true, "refId": "A", "useBackend": false } ], "title": "Top Domains Throughput (KB/s)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "fillOpacity": 50, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineWidth": 1, "scaleDistribution": { "type": "linear" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "decbytes" }, "overrides": [] }, "gridPos": { "h": 18, "w": 12, "x": 12, "y": 64 }, "id": 30, "options": { "barRadius": 0, "barWidth": 0.8, "fullHighlight": false, "groupWidth": 0.8, "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "orientation": "horizontal", "showValue": "auto", "stacking": "none", "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 100 }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": false, "expr": "sum by (host) (increase(caddy_http_response_size_bytes_sum[7d]))", "format": "table", "instant": true, "legendFormat": "__auto", "range": false, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": false, "expr": "sum by (host) (increase(caddy_http_response_size_bytes_sum[28d]))", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "B" } ], "title": "Domain Download Total", "transformations": [ { "id": "joinByField", "options": { "byField": "host", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": { "Time 1": true, "Time 2": true }, "includeByName": {}, "indexByName": {}, "renameByName": { "Value #A": "Sent (MB) 28d", "Value #B": "Sent (MB) 7d" } } } ], "type": "barchart" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "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", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 74 }, "id": 31, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.0.6", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum by(host) (rate(caddy_http_requests_total[$__rate_interval]))", "fullMetaSearch": false, "includeNullMetadata": true, "legendFormat": "__auto", "range": true, "refId": "A", "useBackend": false } ], "title": "Domain Request Rate", "type": "timeseries" } ], "preload": false, "refresh": "1m", "schemaVersion": 41, "tags": [ "caddy" ], "templating": { "list": [ { "current": { "text": "Prometheus", "value": "PBFA97CFB590B2093" }, "hide": 2, "label": "Datasource", "name": "datasource", "options": [], "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" }, { "current": { "text": "Caddy", "value": "Caddy" }, "datasource": { "type": "prometheus", "uid": "${datasource}" }, "definition": "label_values(caddy_http_requests_total,job)", "hide": 2, "label": "Job", "name": "job", "options": [], "query": { "qryType": 1, "query": "label_values(caddy_http_requests_total,job)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "type": "query" }, { "current": { "text": "localhost:2019", "value": "localhost:2019" }, "datasource": { "type": "prometheus", "uid": "${datasource}" }, "definition": "label_values(up{job=\"$job\"},instance)", "description": "", "hide": 2, "label": "Instance", "name": "instance", "options": [], "query": { "qryType": 1, "query": "label_values(up{job=\"$job\"},instance)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "type": "query" }, { "auto": false, "auto_count": 300, "auto_min": "10s", "current": { "text": "1m", "value": "1m" }, "label": "Interval", "name": "interval", "options": [ { "selected": false, "text": "30s", "value": "30s" }, { "selected": true, "text": "1m", "value": "1m" }, { "selected": false, "text": "5m", "value": "5m" }, { "selected": false, "text": "10m", "value": "10m" }, { "selected": false, "text": "15m", "value": "15m" }, { "selected": false, "text": "30m", "value": "30m" }, { "selected": false, "text": "1h", "value": "1h" } ], "query": "30s,1m,5m,10m,15m,30m,1h", "refresh": 2, "type": "interval" }, { "allValue": ".*", "current": { "text": "All", "value": "$__all" }, "definition": "label_values(host)", "description": "", "includeAll": true, "label": "Host", "name": "host", "options": [], "query": { "qryType": 1, "query": "label_values(host)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "sort": 1, "type": "query" } ] }, "time": { "from": "now-24h", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Caddy", "uid": "fed94ifiv8h6ocw", "version": 1 }