aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin <valentin@fricklerhandwerk.de>2025-11-20 20:10:14 +0100
committerValentin <valentin@fricklerhandwerk.de>2025-11-21 00:07:13 +0100
commit8a3cbccb680cfdb65c961ff8660e757b3d47bacf (patch)
tree74a5d9f9ea05ba5cf17cf82cb568294d5c165cb7
parentbf1b4656a84f700c70132d32d374a90f1e223b56 (diff)
Zugriffsstatistik für Web-Dienste
-rw-r--r--tharos/caddy.nix15
-rw-r--r--tharos/dashboards/caddy.json133
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
+}
+