aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-04-13 14:22:44 -0700
committerFranck Cuny <franck@fcuny.net>2022-04-13 14:22:44 -0700
commit369000d68b4583879e5f8a7948aa5300f041663f (patch)
tree2864d1e14b88a123cb908d3cd2bc5f1bb8c35888
parentmodules: make the vhost be configurable (diff)
downloadinfra-369000d68b4583879e5f8a7948aa5300f041663f.tar.gz
traefik: remove the module
Diffstat (limited to '')
-rw-r--r--modules/services/default.nix1
-rw-r--r--modules/services/grafana/dashboards/traefik_rev5.json1829
-rw-r--r--modules/services/prometheus/default.nix5
-rw-r--r--modules/services/traefik/default.nix99
4 files changed, 0 insertions, 1934 deletions
diff --git a/modules/services/default.nix b/modules/services/default.nix
index a5d6654..85eed9e 100644
--- a/modules/services/default.nix
+++ b/modules/services/default.nix
@@ -18,7 +18,6 @@
./tailscale
./thermald
./tlp
- ./traefik
./transmission
./unifi
];
diff --git a/modules/services/grafana/dashboards/traefik_rev5.json b/modules/services/grafana/dashboards/traefik_rev5.json
deleted file mode 100644
index b39b8c5..0000000
--- a/modules/services/grafana/dashboards/traefik_rev5.json
+++ /dev/null
@@ -1,1829 +0,0 @@
-{
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": "-- 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": "Traefik dashboard prometheus",
- "editable": true,
- "fiscalYearStartMonth": 0,
- "gnetId": 4475,
- "graphTooltip": 0,
- "iteration": 1649093278136,
- "links": [],
- "liveNow": false,
- "panels": [
- {
- "fieldConfig": {
- "defaults": {
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- }
- ]
- },
- "unit": "s"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 4,
- "w": 5,
- "x": 0,
- "y": 0
- },
- "id": 14,
- "options": {
- "colorMode": "background",
- "graphMode": "none",
- "justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
- },
- "pluginVersion": "8.3.4",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "time() - process_start_time_seconds{job=\"traefik\"}",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "title": "Uptime",
- "type": "stat"
- },
- {
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 4
- },
- "id": 10,
- "title": "$backend stats",
- "type": "row"
- },
- {
- "datasource": {
- "uid": "${DS_PROMETHEUS}"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- }
- },
- "decimals": 0,
- "mappings": [],
- "unit": "short"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 5
- },
- "id": 2,
- "links": [],
- "maxDataPoints": 3,
- "options": {
- "displayLabels": [],
- "legend": {
- "calcs": [],
- "displayMode": "table",
- "placement": "right",
- "values": [
- "value",
- "percent"
- ]
- },
- "pieType": "pie",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "text": {},
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "exemplar": true,
- "expr": "traefik_service_requests_total{service=\"$service\"}",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{method}} : {{code}}",
- "refId": "A"
- }
- ],
- "title": "$service return code",
- "type": "piechart"
- },
- {
- "datasource": {
- "uid": "${DS_PROMETHEUS}"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "fixedColor": "rgb(31, 120, 193)",
- "mode": "fixed"
- },
- "mappings": [
- {
- "options": {
- "match": "null",
- "result": {
- "text": "N/A"
- }
- },
- "type": "special"
- }
- ],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "ms"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 5
- },
- "id": 4,
- "links": [],
- "maxDataPoints": 100,
- "options": {
- "colorMode": "none",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "horizontal",
- "reduceOptions": {
- "calcs": [
- "mean"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
- },
- "pluginVersion": "8.3.4",
- "targets": [
- {
- "exemplar": true,
- "expr": "sum(traefik_service_request_duration_seconds_sum{service=\"$service\"}) / sum(traefik_service_requests_total{service=\"$service\"}) * 1000",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "title": "$service response time",
- "type": "stat"
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 7,
- "w": 24,
- "x": 0,
- "y": 12
- },
- "hiddenSeries": false,
- "id": 3,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.3.4",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "sum(rate(traefik_service_requests_total{service=\"$service\"}[5m])) by (method)",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{method}} {{code}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeRegions": [],
- "title": "Total requests over 5min $service",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "mode": "time",
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "logBase": 1,
- "show": true
- },
- {
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
- },
- {
- "cards": {},
- "color": {
- "cardColor": "#b4ff00",
- "colorScale": "sqrt",
- "colorScheme": "interpolateOranges",
- "exponent": 0.5,
- "mode": "spectrum"
- },
- "dataFormat": "timeseries",
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "gridPos": {
- "h": 7,
- "w": 24,
- "x": 0,
- "y": 19
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 22,
- "legend": {
- "show": false
- },
- "links": [],
- "pluginVersion": "8.3.4",
- "reverseYBuckets": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "histogram_quantile(0.95, sum(rate(traefik_service_request_duration_seconds_bucket{service=\"$service\"}[5m])) by (le))",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "latency",
- "refId": "A"
- }
- ],
- "title": "Response latency",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "yAxis": {
- "format": "s",
- "logBase": 1,
- "show": true
- },
- "yBucketBound": "auto"
- },
- {
- "collapsed": true,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 26
- },
- "id": 12,
- "panels": [
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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",
- "value": null
- }
- ]
- },
- "unit": "s"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 27
- },
- "id": 24,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "pluginVersion": "8.3.4",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "increase(traefik_config_reloads_total{}[$__rate_interval])",
- "interval": "",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "title": "Reload success",
- "type": "timeseries"
- },
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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",
- "value": null
- }
- ]
- },
- "unit": "s"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 27
- },
- "id": 25,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "pluginVersion": "8.3.4",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "increase(traefik_config_reloads_failure_total[$__rate_interval])",
- "interval": "",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "title": "Reload failure",
- "type": "timeseries"
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": {
- "uid": "${DS_PROMETHEUS}"
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 34
- },
- "hiddenSeries": false,
- "id": 5,
- "legend": {
- "alignAsTable": true,
- "avg": false,
- "current": true,
- "max": true,
- "min": true,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.3.4",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "rate(traefik_entrypoint_requests_total{entrypoint=~\"$entrypoint\",code=\"200\"}[5m])",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "{{method}} : {{code}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeRegions": [],
- "title": "Status code 200 over 5min",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "mode": "time",
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "logBase": 1,
- "show": true
- },
- {
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": {
- "uid": "${DS_PROMETHEUS}"
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 34
- },
- "hiddenSeries": false,
- "id": 6,
- "legend": {
- "alignAsTable": true,
- "avg": false,
- "current": true,
- "max": true,
- "min": true,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.3.4",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "expr": "rate(traefik_entrypoint_requests_total{entrypoint=~\"$entrypoint\",code!=\"200\"}[5m])",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "{{ method }} : {{code}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeRegions": [],
- "title": "Others status code over 5min",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "mode": "time",
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "logBase": 1,
- "show": true
- },
- {
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
- },
- {
- "aliasColors": {},
- "bars": true,
- "dashLength": 10,
- "dashes": false,
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 41
- },
- "hiddenSeries": false,
- "id": 21,
- "legend": {
- "alignAsTable": true,
- "avg": false,
- "current": true,
- "max": true,
- "min": true,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": false,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.3.4",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "increase(traefik_service_requests_total{}[5m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{method}}: {{code}}",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeRegions": [],
- "title": "HTTP return codes",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "mode": "time",
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "logBase": 1,
- "show": true
- },
- {
- "format": "short",
- "logBase": 1,
- "show": true
- }
- ],
- "yaxis": {
- "align": false
- }
- },
- {
- "cards": {},
- "color": {
- "cardColor": "#b4ff00",
- "colorScale": "sqrt",
- "colorScheme": "interpolateOranges",
- "exponent": 0.5,
- "mode": "spectrum"
- },
- "dataFormat": "timeseries",
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 41
- },
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 23,
- "legend": {
- "show": false
- },
- "links": [],
- "pluginVersion": "8.3.4",
- "reverseYBuckets": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "histogram_quantile(0.95, sum(rate(traefik_service_request_duration_seconds_bucket[5m])) by (le))",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "latency",
- "refId": "A"
- }
- ],
- "title": "Response latency",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "yAxis": {
- "format": "s",
- "logBase": 1,
- "show": true
- },
- "yBucketBound": "auto"
- },
- {
- "datasource": {
- "uid": "${DS_PROMETHEUS}"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- }
- },
- "decimals": 0,
- "mappings": [],
- "unit": "short"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 48
- },
- "id": 7,
- "links": [],
- "maxDataPoints": 3,
- "options": {
- "displayLabels": [],
- "legend": {
- "calcs": [],
- "displayMode": "table",
- "placement": "right",
- "values": [
- "value"
- ]
- },
- "pieType": "pie",
- "reduceOptions": {
- "calcs": [
- "sum"
- ],
- "fields": "",
- "values": false
- },
- "text": {},
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "exemplar": true,
- "expr": "sum(rate(traefik_service_requests_total[5m])) by (service) ",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ service }}",
- "refId": "A"
- }
- ],
- "title": "Requests by service",
- "type": "piechart"
- },
- {
- "datasource": {
- "uid": "${DS_PROMETHEUS}"
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- }
- },
- "decimals": 0,
- "mappings": [],
- "unit": "short"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 48
- },
- "id": 8,
- "links": [],
- "maxDataPoints": 3,
- "options": {
- "displayLabels": [],
- "legend": {
- "calcs": [],
- "displayMode": "table",
- "placement": "right",
- "values": [
- "value"
- ]
- },
- "pieType": "pie",
- "reduceOptions": {
- "calcs": [
- "sum"
- ],
- "fields": "",
- "values": false
- },
- "text": {},
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "exemplar": true,
- "expr": "sum(rate(traefik_entrypoint_requests_total{entrypoint =~ \"$entrypoint\"}[5m])) by (entrypoint) ",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ entrypoint }}",
- "refId": "A"
- }
- ],
- "title": "Requests by protocol",
- "type": "piechart"
- }
- ],
- "title": "Global stats",
- "type": "row"
- },
- {
- "collapsed": true,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 27
- },
- "id": 20,
- "panels": [
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "custom": {
- "align": "auto",
- "displayMode": "auto"
- },
- "mappings": [
- {
- "options": {
- "Value": {
- "index": 0,
- "text": "Expire date"
- }
- },
- "type": "value"
- }
- ],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "Value"
- },
- "properties": [
- {
- "id": "displayName",
- "value": "Expire date"
- },
- {
- "id": "custom.hidden",
- "value": false
- },
- {
- "id": "unit",
- "value": "dateTimeAsSystem"
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "job"
- },
- "properties": [
- {
- "id": "custom.hidden",
- "value": true
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Time"
- },
- "properties": [
- {
- "id": "custom.hidden",
- "value": true
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "instance"
- },
- "properties": [
- {
- "id": "custom.hidden",
- "value": true
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "serial"
- },
- "properties": [
- {
- "id": "custom.hidden",
- "value": true
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 8,
- "w": 10,
- "x": 0,
- "y": 28
- },
- "id": 18,
- "options": {
- "footer": {
- "fields": "",
- "reducer": [
- "sum"
- ],
- "show": false
- },
- "showHeader": true
- },
- "pluginVersion": "8.3.4",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": false,
- "expr": "traefik_tls_certs_not_after{job=\"traefik\"} * 1000",
- "format": "table",
- "instant": true,
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "title": "Certificates",
- "type": "table"
- },
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- }
- },
- "mappings": []
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 5,
- "x": 10,
- "y": 28
- },
- "id": 16,
- "options": {
- "legend": {
- "displayMode": "list",
- "placement": "right"
- },
- "pieType": "pie",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "sum(increase(traefik_service_requests_tls_total{}[$__rate_interval])) by (tls_version)",
- "interval": "",
- "legendFormat": "{{tls_version}}",
- "refId": "A"
- }
- ],
- "title": "TLS version",
- "type": "piechart"
- },
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- }
- },
- "mappings": []
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 9,
- "x": 15,
- "y": 28
- },
- "id": 15,
- "options": {
- "legend": {
- "displayMode": "list",
- "placement": "right"
- },
- "pieType": "pie",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "pluginVersion": "8.3.4",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "sum(increase(traefik_service_requests_tls_total{}[$__rate_interval])) by (tls_cipher)",
- "interval": "",
- "legendFormat": "{{tls_cipher}}",
- "refId": "A"
- }
- ],
- "title": "TLS cipher",
- "type": "piechart"
- }
- ],
- "title": "TLS",
- "type": "row"
- },
- {
- "collapsed": true,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 28
- },
- "id": 29,
- "panels": [
- {
- "description": "Virtual and Resident memory size in bytes",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "decbytes"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 29
- },
- "id": 30,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "avg(rate(process_resident_memory_bytes{job=\"traefik\"}[$__rate_interval]))",
- "interval": "",
- "legendFormat": "Resident Mem",
- "refId": "A"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "avg(rate(process_virtual_memory_bytes{job=\"traefik\"}[$__rate_interval]))",
- "hide": false,
- "interval": "",
- "legendFormat": "Virtual Mem",
- "refId": "B"
- }
- ],
- "title": "Average Memory Usage",
- "type": "timeseries"
- },
- {
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "cpu"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 29
- },
- "id": 31,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "avg(rate(process_cpu_seconds_total{job=\"traefik\"}[$__rate_interval]) * 1000)",
- "interval": "",
- "legendFormat": "CPU Time",
- "refId": "A"
- }
- ],
- "title": "Average CPU Usage",
- "type": "timeseries"
- },
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "__systemRef": "hideSeriesFrom",
- "matcher": {
- "id": "byNames",
- "options": {
- "mode": "exclude",
- "names": [
- "process_open_fds{instance=\"tahoe\", job=\"traefik\"}"
- ],
- "prefix": "All except:",
- "readOnly": true
- }
- },
- "properties": [
- {
- "id": "custom.hideFrom",
- "value": {
- "legend": false,
- "tooltip": false,
- "viz": true
- }
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "tahoe"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "#73BF69",
- "mode": "fixed"
- }
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 37
- },
- "id": 27,
- "options": {
- "legend": {
- "calcs": [
- "max",
- "lastNotNull"
- ],
- "displayMode": "list",
- "placement": "right"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "process_open_fds{job=\"traefik\"}",
- "interval": "",
- "legendFormat": "{{instance}}",
- "refId": "A"
- }
- ],
- "title": "Open File Descriptors",
- "type": "timeseries"
- },
- {
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "s"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 37
- },
- "id": 32,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "P1809F7CD0C75ACF3"
- },
- "exemplar": true,
- "expr": "max(go_gc_duration_seconds{job=\"traefik\", quantile=\"1\"})",
- "interval": "",
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "title": "GC duration",
- "type": "timeseries"
- }
- ],
- "title": "Process",
- "type": "row"
- }
- ],
- "refresh": false,
- "schemaVersion": 34,
- "style": "dark",
- "tags": [
- "traefik",
- "prometheus"
- ],
- "templating": {
- "list": [
- {
- "current": {
- "selected": false,
- "text": "default",
- "value": "default"
- },
- "hide": 0,
- "includeAll": false,
- "label": "datasource",
- "multi": false,
- "name": "DS_PROMETHEUS",
- "options": [],
- "query": "prometheus",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "type": "datasource"
- },
- {
- "current": {
- "selected": true,
- "text": "git.fcuny.net@file",
- "value": "git.fcuny.net@file"
- },
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "definition": "label_values(service)",
- "hide": 0,
- "includeAll": false,
- "multi": false,
- "name": "service",
- "options": [],
- "query": {
- "query": "label_values(service)",
- "refId": "StandardVariableQuery"
- },
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- },
- {
- "current": {
- "selected": false,
- "text": "All",
- "value": "$__all"
- },
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "definition": "",
- "hide": 0,
- "includeAll": true,
- "multi": true,
- "name": "entrypoint",
- "options": [],
- "query": {
- "query": "label_values(entrypoint)",
- "refId": "Prometheus-entrypoint-Variable-Query"
- },
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- }
- ]
- },
- "time": {
- "from": "now-6h",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "",
- "title": "Traefik",
- "uid": "qPdAviJmz",
- "version": 4,
- "weekStart": ""
-}
diff --git a/modules/services/prometheus/default.nix b/modules/services/prometheus/default.nix
index e4fa897..37cbbac 100644
--- a/modules/services/prometheus/default.nix
+++ b/modules/services/prometheus/default.nix
@@ -132,11 +132,6 @@ in {
relabel_configs = relabelConfigs;
}
{
- job_name = "traefik";
- static_configs = [{ targets = [ "192.168.6.20:8090" ]; }];
- relabel_configs = relabelConfigs;
- }
- {
job_name = "gitea";
static_configs = [{ targets = [ "192.168.6.20:8002" ]; }];
relabel_configs = relabelConfigs;
diff --git a/modules/services/traefik/default.nix b/modules/services/traefik/default.nix
deleted file mode 100644
index a5cff3d..0000000
--- a/modules/services/traefik/default.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{ pkgs, inputs, config, lib, ... }:
-
-with lib;
-
-let
- cfg = config.my.services.traefik;
- secrets = config.age.secrets;
- domainPublic = "fcuny.net";
- domainPrivate = "fcuny.xyz";
- mkServiceConfig = name: url: domain: certResolver: {
- http.routers."${name}.${domain}" = {
- rule = "Host(`${name}.${domain}`)";
- service = "${name}.${domain}";
- tls.certResolver = certResolver;
- };
- http.services."${name}.${domain}" = {
- loadBalancer.servers = [{ url = url; }];
- };
- };
-in {
- options.my.services.traefik = with lib; {
- enable = mkEnableOption "traefik router";
- };
-
- config = lib.mkIf cfg.enable {
- services.traefik = {
- enable = true;
-
- staticConfigOptions = {
- metrics.prometheus = {
- addEntryPointsLabels = true;
- addRoutersLabels = true;
- addServicesLabels = true;
- };
-
- global = {
- checkNewVersion = false;
- sendAnonymousUsage = false;
- };
-
- accessLog.format = "json";
- log.level = "warn";
-
- entryPoints.http.http.redirections = {
- entryPoint.to = "https";
- entryPoint.scheme = "https";
- entryPoint.permanent = true;
- };
-
- entryPoints.http.address = ":80";
- entryPoints.https.address = ":443";
- # the default is 8080, which conflict with unifi
- entryPoints.traefik.address = ":8090";
-
- api = {
- dashboard = true;
- insecure = true;
- };
-
- # The unifi controller runs on HTTPS with a self-signed
- # certificate, as a result we need to accept insecure
- # certificates.
- serversTransport.insecureSkipVerify = true;
-
- certificatesResolvers = {
- le-http.acme = {
- email = "franck@fcuny.net";
- storage = "/var/lib/traefik/cert.json";
- httpChallenge = { entryPoint = "http"; };
- };
- le-dns.acme = {
- email = "franck@fcuny.net";
- storage = "/var/lib/traefik/cert.json";
- dnsChallenge = {
- provider = "gcloud";
- delayBeforeCheck = 0;
- };
- };
- };
- };
- };
-
- services.traefik.dynamicConfigOptions = mkMerge [
- (mkServiceConfig "dash" "http://127.0.0.1:3000/" domainPrivate "le-dns")
- (mkServiceConfig "bt" "http://127.0.0.1:9091/" domainPrivate "le-dns")
- (mkServiceConfig "unifi" "https://127.0.0.1:8443/" domainPrivate "le-dns")
- (mkServiceConfig "music" "http://127.0.0.1:4533/" domainPrivate "le-dns")
- (mkServiceConfig "git" "http://127.0.0.1:8002/" domainPrivate "le-dns")
- (mkServiceConfig "git" "http://127.0.0.1:8002/" domainPublic "le-http")
- ];
-
- systemd.services.traefik.environment.GCE_SERVICE_ACCOUNT_FILE =
- secrets."traefik/gcp_service_account.json".path;
- systemd.services.traefik.environment.GCE_PROJECT = "fcuny-homelab";
-
- networking.firewall.allowedTCPPorts = [ 80 443 ];
- networking.firewall.allowedUDPPorts = [ 443 ]; # QUIC
- };
-}