diff options
| author | Valentin <valentin@fricklerhandwerk.de> | 2025-11-20 20:10:14 +0100 |
|---|---|---|
| committer | Valentin <valentin@fricklerhandwerk.de> | 2025-11-21 00:07:13 +0100 |
| commit | 8a3cbccb680cfdb65c961ff8660e757b3d47bacf (patch) | |
| tree | 74a5d9f9ea05ba5cf17cf82cb568294d5c165cb7 | |
| parent | bf1b4656a84f700c70132d32d374a90f1e223b56 (diff) | |
Zugriffsstatistik für Web-Dienste
| -rw-r--r-- | tharos/caddy.nix | 15 | ||||
| -rw-r--r-- | tharos/dashboards/caddy.json | 133 |
2 files changed, 148 insertions, 0 deletions
diff --git a/tharos/caddy.nix b/tharos/caddy.nix index fc152c7..f6b0fcf 100644 --- a/tharos/caddy.nix +++ b/tharos/caddy.nix @@ -13,7 +13,22 @@ services.caddy = { enable = true; email = "redaktion@${self.domain}"; + globalConfig = '' + metrics { + per_host + } + ''; }; + services.prometheus.scrapeConfigs = [ + { + job_name = "caddy"; + static_configs = [ + { + targets = [ "localhost:2019" ]; + } + ]; + } + ]; }; vm = diff --git a/tharos/dashboards/caddy.json b/tharos/dashboards/caddy.json new file mode 100644 index 0000000..124ae07 --- /dev/null +++ b/tharos/dashboards/caddy.json @@ -0,0 +1,133 @@ +{ + "editable": true, + "id": 2, + "panels": [ + { + "id": 1, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "custom": { + "barWidthFactor": 1, + "drawStyle": "bars", + "fillOpacity": 100, + "lineWidth": 0, + "pointSize": 1, + "stacking": { + "group": "A", + "mode": "normal" + } + }, + "unit": "reqpm" + } + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 0 + }, + "interval": "1m", + "options": { + "legend": { + "showLegend": false + } + }, + "pluginVersion": "12.0.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "expr": "idelta(caddy_http_requests_total[1m])", + "legendFormat": "{{host}}" + } + ], + "title": "Alle Dienste" + }, + { + "id": 2, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "custom": { + "barWidthFactor": 1, + "drawStyle": "bars", + "fillOpacity": 100, + "lineWidth": 0, + "pointSize": 1, + "stacking": { + "group": "A", + "mode": "normal" + } + }, + "unit": "reqpm" + } + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 8 + }, + "interval": "1m", + "options": { + "legend": { + "showLegend": false + } + }, + "pluginVersion": "12.0.5", + "repeat": "Host", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "expr": "idelta(caddy_http_requests_total{host=~\"$Host\"}[1m])" + } + ], + "title": "$Host" + } + ], + "preload": false, + "refresh": "1m", + "schemaVersion": 41, + "templating": { + "list": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "definition": "label_values(caddy_http_requests_total,host)", + "includeAll": true, + "name": "Host", + "query": { + "qryType": 1, + "query": "label_values(caddy_http_requests_total,host)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "type": "query" + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timezone": "browser", + "title": "Anfragen", + "uid": "a9e56c38-ddc3-4d10-b12b-5ed08f3c846e", + "version": 1 +} + |
