diff --git a/cluster/apps/download/qbittorrent-old/deployment.yaml b/cluster/apps/download/qbittorrent-old/deployment.yaml deleted file mode 100644 index 75360ea..0000000 --- a/cluster/apps/download/qbittorrent-old/deployment.yaml +++ /dev/null @@ -1,69 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: qbittorrent - namespace: download - - labels: - app: qbittorrent - kubernetes.io/name: "qbittorrent" -spec: - replicas: 1 - selector: - matchLabels: - app: qbittorrent - template: - metadata: - labels: - app: qbittorrent - spec: - containers: - - name: qbittorrent - image: lscr.io/linuxserver/qbittorrent:latest - env: - - name: PGID - value: "1000" - - name: PUID - value: "1000" - - name: TZ - value: America/New_York - - name: WEBUI_PORT - value: "8080" - ports: - - name: http - containerPort: 8080 - volumeMounts: - - name: qbittorrent-config - mountPath: /config - - name: qbit-download-storage - mountPath: /storage/Torrents - - - name: gluetun - image: qmcgaw/gluetun - env: - - name: FIREWALL - value: "off" - - name: DOT - value: "off" - envFrom: - - secretRef: - name: qbittorrent-secrets - securityContext: - capabilities: - add: - - NET_ADMIN - - - name: metrics - image: caseyscarborough/qbittorrent-exporter:latest - ports: - - name: metrics - containerPort: 17871 - - - volumes: - - name: qbittorrent-config - hostPath: - path: /mnt/MainPool/Kubernetes/qbittorrent - - name: qbit-download-storage - hostPath: - path: /mnt/MainPool/Media/Torrents \ No newline at end of file diff --git a/cluster/apps/download/qbittorrent-old/ingress.yaml b/cluster/apps/download/qbittorrent-old/ingress.yaml deleted file mode 100644 index b7124ff..0000000 --- a/cluster/apps/download/qbittorrent-old/ingress.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: qbittorrent-ingress - namespace: download - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - traefik.ingress.kubernetes.io/router.entrypoints: websecure - traefik.ingress.kubernetes.io/router.middlewares: traefik-authentik@kubernetescrd -spec: - rules: - - host: &host "qbit.${SECRET_NEW_DOMAIN}" - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: qbittorrent - port: - name: http - tls: - - hosts: - - *host - secretName: wildcard-main-tls \ No newline at end of file diff --git a/cluster/apps/download/qbittorrent-old/kustomization.yaml b/cluster/apps/download/qbittorrent-old/kustomization.yaml deleted file mode 100644 index 47a9119..0000000 --- a/cluster/apps/download/qbittorrent-old/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: -- ./qbittorrent-secrets.sops.yaml -- ./deployment.yaml -- ./service.yaml -- ./ingress.yaml \ No newline at end of file diff --git a/cluster/apps/download/qbittorrent-old/qbittorrent-secrets.sops.yaml b/cluster/apps/download/qbittorrent-old/qbittorrent-secrets.sops.yaml deleted file mode 100644 index 4921ec7..0000000 --- a/cluster/apps/download/qbittorrent-old/qbittorrent-secrets.sops.yaml +++ /dev/null @@ -1,65 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: qbittorrent-secrets - namespace: download -stringData: - VPN_SERVICE_PROVIDER: ENC[AES256_GCM,data:R8/w2f+rPQ==,iv:jy1iVRtJq9l/fYKjCdSrSneNZh8V9/LHVopGWdjtpNY=,tag:HkzAyAuflvqEcdHGF6jnfw==,type:str] - VPN_TYPE: ENC[AES256_GCM,data:Dff2qD9mAVX7,iv:jhLEkfAulvPxN/uRdSF3MR9GbxnRt2cSLqDOkXO7qPA=,tag:dMB6aEhwLssc3JPKdFULTQ==,type:str] - WIREGUARD_PRIVATE_KEY: ENC[AES256_GCM,data:NKEqINUpmt3rJqrUfXZtcE1vMSogtvF3B7lggI3rS48/akwEgJQRssxgfzk=,iv:wKoook7MN+CSvU8F2bi/GijAbUEoN61FUldh5nCKfXc=,tag:djUHCZtY1T5zMADqqm1DgQ==,type:str] - WIREGUARD_ADDRESSES: ENC[AES256_GCM,data:hSuZoWk9Zih763suTpwK,iv:YkdOLnSqugkunUS66W/oVS5IScrElkRr6l4oCjt4gOE=,tag:XG8yKsobjyJkD98RiPpAjQ==,type:str] - SERVER_COUNTRIES: ENC[AES256_GCM,data:pyid,iv:gItcOstdlJ6t5uICxGHiEFjcz7pu+t62HBhja+mjaT8=,tag:4aNdJXDgyrWHa5LV0D5EfQ==,type:str] - SERVER_CITIES: ENC[AES256_GCM,data:XwiVflyqpQA=,iv:9ZAV0kS2WNKBezsAVROh3IEIBw4igkNLJqG44oboTq8=,tag:Z6KJUbiU5WL5QfJcWjFo4A==,type:str] -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2023-04-08T19:01:31Z" - mac: ENC[AES256_GCM,data:UkYxI7p4pOV6w6FDs8xHJRzrx6Zugx4rd8G/77KEHPhYmOo/mi8HrwQRFrffWyrMbkIy/Y8nZiLQBV70H2l5KjE1ROYemLGSlZwIZPuNW0mWKsqtnbjqyHR7OPIbXE8QHFF/HSApTzQ9BR5/B7iHEHQSX6OmgmnxPVeqCMFDcDc=,iv:UBDj3JFPw20HpxUU4GHag/rKtA5xa9wiFN8BYTo7OiU=,tag:2GaYuJJwhL6TgJ7HmH5wlQ==,type:str] - pgp: - - created_at: "2023-04-06T03:41:51Z" - enc: | - -----BEGIN PGP MESSAGE----- - - hQIMAzKleRwoSoixARAAitrd38vQexWeELGnS0HrjWf4274iNDbC7UDOXkI3a5hA - HwkA+thkq7JvIE+UuNOeucJKii+8lLh8wGu5nVCizswckoz+wFvMATrDYrHQPO89 - AB0PfWF32OVCKePp08o+UUlYiWb212HksTwqF78XMZFthcnql//uojXmyeiYarAf - j5wyPkh5RkfhZCqG2z1Rywk0XJOHRaOMQQ+8Qs/XuAlRuwyg9Ei+gYRo4FH/Wx1A - k0tCrViVlDVdd5OnIwlbR6w5eTgM7id31mCjCA7vPrupo2XKV6A6L+bPyA94aT7/ - eWrcivQ6J1BaoRQafYQcbgNxdUdHqlb4B/0txkYipu8Yxc4I082+B4hWS0wm1hNF - ytrkuCvK29C9ViIREsWwPO5GaupMHQLnDo/2MAJa8r3ndi0QMz5hQsS7cckcAaVm - l1VZEvlY0M1CJeEXVhZ4v/Drt1fTFaV4sCuXqEEv8DuS6rBEMSFyQ0+YY0wxwGvG - o/qzU393s2r4DgQ8CzpoRgXxcGJJhcdgzrBAQGBB8UiKSembyJMiI6R0tfacSBtS - QpX5RuVVzeOnY5ftnuSePR24T5r0tlMpE8kYH5rZ19mwBNaMnwASOZeVu/4pM970 - ko+1P9XWGXcTPXHYYacXiCFTpFAEjGQay7qCqepJJ/V1n5gSVuWa9SWsr7H40EHU - aAEJAhBw71YDGPfB/tJIT1agrtMW+VJr4m56jiK8lbCT56udmw5MDZTxAufCJA+C - slbO6oLgInBJLYlpiJB4aJ9WvvX0XGIfmDIho/EpbK8uUrUjfwgSvRwEdKIRZpZ3 - DPRnKLFBYm/9 - =DL6W - -----END PGP MESSAGE----- - fp: 2CC2B3631D5C3393901335DB68F95C5D753EE1E5 - - created_at: "2023-04-06T03:41:51Z" - enc: | - -----BEGIN PGP MESSAGE----- - - hQIMA4WLYkVpP8xtAQ//ctKJ4aFujay7DJNel2MgCg3wmKR+td5m+B3ELrDbAHcT - 2agpyvb0rotjEAbczKHkkY0805y4lWvGXFyDMWdtWa6msUsM51lW5c2akAAG+cxr - N53XMASD+WS/5DrZ0FzGCYtKklBRv3IlBw85vAlMuFQkJqkqwB9aVzG46PAoQ9I2 - bl4X/5PljoI78iW7lCM1LugyD6nxHB6umwUZ5XDs1L/QavCXb5UNckluH69tu0ec - hNsCHW9kfMO2dV15JCVchvuLntgtt+1+H1l8XNwjg1x2E7GMVkNMByZPF/PLTTrs - ZvpUcwTcbKO5Ha7BNh+hrUteNd6teTGUr9WAlGnDQECxhNGWMtau4707hxBXDL+W - cCGZToiGbsZ3173tQsFM54Rumcwa7E6UxIXX8YmIdU70u7UHGKQWFBkakyCNRp8h - X4JM+BPuD+pthY3Coucf3NXInw0Jd78m6TQrtJ1POm0p3Kx7eAWNJbxpwHQAg5fX - r6UCJflXu1M0VwAll6DkLL/MvBV6EUA9UctPi+F3E3yEjSC80KX9S34hiJcJzDge - LUJpCQqvB6FK80iFlaCNLg9qcyH3oqLcm8EpUcrHxFTmNwSXFzyRAjwq7aZ4UPjI - U8qSBiilmoz/UJnaTAwOcGkJ8lVfF41VzohqI2xxbKye8gtmMxSS6I161FCRbq3U - aAEJAhByOVF+gDjFQLssl9tlwNGsbT2xWwcDZ1OfibDGARgU5g6PQFkYMxj2SGZ7 - J19BGBWSB2ucbsFcxmOijpgxnMhJHgIMdYUwCyv1Kut2DeXyfvZYgVw4ZRjAu2W7 - EEVy24tMDoul - =HAIu - -----END PGP MESSAGE----- - fp: 8DF31C9F48A24F525FFB1815FC96C52B59328E95 - encrypted_regex: ^(data|stringData)$ - version: 3.7.3 diff --git a/cluster/apps/download/qbittorrent-old/service.yaml b/cluster/apps/download/qbittorrent-old/service.yaml deleted file mode 100644 index 3aa5221..0000000 --- a/cluster/apps/download/qbittorrent-old/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: qbittorrent - namespace: download - - labels: - app: qbittorrent - kubernetes.io/name: "qbittorrent" -spec: - selector: - app: qbittorrent - ports: - - name: http - port: 8080 - targetPort: 8080 - - name: metrics - port: 17871 - targetPort: 17871 \ No newline at end of file diff --git a/cluster/apps/download/qbittorrent/dashboard.yaml b/cluster/apps/download/qbittorrent/dashboard.yaml new file mode 100644 index 0000000..91ad676 --- /dev/null +++ b/cluster/apps/download/qbittorrent/dashboard.yaml @@ -0,0 +1,2066 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: qbittorrent-grafana-dashboard + namespace: download + labels: + grafana_dashboard: "1" +data: + qbittorrent-dashboard.json: | + { + "__inputs": [ + { + "name": "DS_VICTORIA", + "label": "Victoria", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__elements": {}, + "__requires": [ + { + "type": "panel", + "id": "bargauge", + "name": "Bar gauge", + "version": "" + }, + { + "type": "panel", + "id": "gauge", + "name": "Gauge", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "9.4.7" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph (old)", + "version": "" + }, + { + "type": "panel", + "id": "piechart", + "name": "Pie chart", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "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" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 15116, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 0 + }, + "id": 30, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_alltime_downloaded_bytes", + "refId": "A" + } + ], + "title": "All Time Downloaded", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(255, 172, 10)", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 6, + "y": 0 + }, + "id": 32, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "editorMode": "code", + "expr": "qbittorrent_global_alltime_uploaded_bytes", + "instant": false, + "refId": "A" + } + ], + "title": "All Time Uploaded", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 12, + "y": 0 + }, + "id": 34, + "links": [], + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_session_downloaded_bytes", + "refId": "A" + } + ], + "title": "Session Downloaded", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(255, 172, 10)", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 18, + "y": 0 + }, + "id": 35, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_session_uploaded_bytes", + "instant": false, + "refId": "A" + } + ], + "title": "Session Uploaded", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 5 + }, + "hiddenSeries": false, + "id": 2, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.7", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_download_speed_bytes", + "interval": "", + "legendFormat": "Download", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_upload_speed_bytes", + "interval": "", + "legendFormat": "Upload", + "refId": "B" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Cumulative Download/Upload Speed", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "Bps", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 12 + }, + "id": 37, + "options": { + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "exemplar": true, + "expr": "qbittorrent_global_ratio ", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Global Ratio", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "transparent", + "value": null + }, + { + "color": "#37872D", + "value": 1 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 6, + "y": 12 + }, + "id": 12, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_download_speed_bytes", + "instant": true, + "refId": "A" + } + ], + "title": "Global Download Speed", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(33, 33, 35)", + "value": null + }, + { + "color": "rgba(237, 158, 40, 0.89)", + "value": 1 + }, + { + "color": "#d44a3a" + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 12, + "y": 12 + }, + "id": 14, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_upload_speed_bytes", + "instant": true, + "refId": "A" + } + ], + "title": "Global Upload Speed", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "transparent", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 18, + "y": 12 + }, + "id": 28, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "first" + ], + "fields": "/^version$/", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_app_version", + "format": "table", + "instant": true, + "legendFormat": "{{version}}", + "refId": "A" + } + ], + "title": "qBittorrent Version", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "progress" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + }, + { + "id": "custom.align" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 0 + }, + { + "color": "rgba(50, 172, 45, 0.97)", + "value": 0 + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "seeders" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + }, + { + "id": "custom.align", + "value": "left" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "#d8d9da", + "value": null + }, + { + "color": "#37872D", + "value": 1 + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "leechers" + }, + "properties": [ + { + "id": "displayName", + "value": "Leechers" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + }, + { + "id": "custom.align", + "value": "left" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "#d8d9da", + "value": null + }, + { + "color": "#C4162A", + "value": 1 + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "name" + }, + "properties": [ + { + "id": "displayName", + "value": "Name" + }, + { + "id": "custom.align", + "value": "left" + }, + { + "id": "custom.width", + "value": 400 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "state" + }, + "properties": [ + { + "id": "displayName", + "value": "State" + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + }, + { + "id": "custom.align", + "value": "left" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)" + } + ] + } + }, + { + "id": "mappings", + "value": [ + { + "options": { + "checkingDL": { + "color": "semi-dark-blue", + "index": 8, + "text": "Checking" + }, + "checkingUL": { + "color": "semi-dark-blue", + "index": 9, + "text": "Checking" + }, + "downloading": { + "color": "semi-dark-green", + "index": 1, + "text": "Downloading" + }, + "forcedUP": { + "color": "semi-dark-orange", + "index": 11, + "text": "Uploading (Forced)" + }, + "missingFiles": { + "color": "semi-dark-red", + "index": 10, + "text": "Missing Files" + }, + "pausedDL": { + "color": "dark-yellow", + "index": 6, + "text": "Paused (Down)" + }, + "pausedUP": { + "color": "dark-yellow", + "index": 7, + "text": "Paused (Up)" + }, + "queuedDL": { + "color": "semi-dark-purple", + "index": 5, + "text": "Queued (Down)" + }, + "queuedUP": { + "color": "semi-dark-purple", + "index": 3, + "text": "Queued (Up)" + }, + "stalledDL": { + "color": "#868686", + "index": 2, + "text": "Stalled (Down)" + }, + "stalledUP": { + "color": "#868686", + "index": 0, + "text": "Stalled (Up)" + }, + "uploading": { + "color": "semi-dark-orange", + "index": 4, + "text": "Uploading" + } + }, + "type": "value" + } + ] + }, + { + "id": "custom.filterable", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "size" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "dl_speed" + }, + "properties": [ + { + "id": "unit", + "value": "Bps" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "up_speed" + }, + "properties": [ + { + "id": "unit", + "value": "Bps" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "amount_left" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "uploaded" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "time_active" + }, + "properties": [ + { + "id": "displayName", + "value": "Active" + }, + { + "id": "unit", + "value": "s" + }, + { + "id": "decimals", + "value": 1 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "eta" + }, + "properties": [ + { + "id": "unit", + "value": "s" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "downloaded" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "displayName", + "value": "Downloaded" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 24, + "interval": "", + "options": { + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": false, + "displayName": "Name" + } + ] + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_torrent_info", + "format": "table", + "instant": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "title": "Torrents", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Value": true, + "__name__": true, + "container": true, + "downloaded_session": true, + "endpoint": true, + "instance": true, + "job": true, + "max_ratio": true, + "namespace": true, + "pod": true, + "service": true, + "uploaded_session": true + }, + "indexByName": { + "Time": 3, + "Value": 20, + "__name__": 4, + "amount_left": 9, + "container": 19, + "dl_speed": 5, + "downloaded": 6, + "downloaded_session": 7, + "endpoint": 26, + "eta": 8, + "instance": 25, + "job": 24, + "leechers": 11, + "max_ratio": 12, + "name": 0, + "namespace": 23, + "pod": 22, + "progress": 2, + "ratio": 13, + "seeders": 10, + "service": 21, + "size": 14, + "state": 1, + "time_active": 15, + "up_speed": 16, + "uploaded": 17, + "uploaded_session": 18 + }, + "renameByName": { + "amount_left": "Amount Left", + "dl_speed": "DL Speed", + "downloaded": "Downloaded", + "eta": "ETA", + "leechers": "Leechers", + "max_ratio": "", + "name": "Name", + "progress": "Progress", + "ratio": "Ratio", + "seeders": "Seeders", + "size": "Size", + "state": "State", + "time_active": "Active", + "up_speed": "UL Speed", + "uploaded": "Uploaded" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 23 + }, + "id": 6, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_global_torrents", + "instant": true, + "refId": "A" + } + ], + "title": "Total Torrents", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "color": "rgb(33, 33, 35)", + "text": "0" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(33, 33, 35)", + "value": null + }, + { + "color": "#37872D", + "value": 1 + }, + { + "color": "#d44a3a" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 23 + }, + "id": 8, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "sum(qbittorrent_torrent_seeders)", + "instant": true, + "refId": "A" + } + ], + "title": "Current Seeders", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "color": "rgb(33, 33, 35)", + "text": "0" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(33, 33, 35)", + "value": null + }, + { + "color": "#C4162A", + "value": 1 + }, + { + "color": "#C4162A" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 16, + "y": 23 + }, + "id": 10, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "sum(qbittorrent_torrent_leechers)", + "instant": true, + "refId": "A" + } + ], + "title": "Current Leechers", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 26 + }, + "id": 16, + "links": [], + "maxDataPoints": 3, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_torrent_states", + "instant": true, + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "States", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "downloading", + "renamePattern": "Downloading" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "missingFiles", + "renamePattern": "Missing" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "pausedDL", + "renamePattern": "Paused (Downloading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "pausedUP", + "renamePattern": "Paused (Uploading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "queuedDL", + "renamePattern": "Queued (Downloading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "queuedUP", + "renamePattern": "Queued (Uploading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "stalledUP", + "renamePattern": "Stalled (Uploading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "stalledDL", + "renamePattern": "Stalled (Downloading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "uploading", + "renamePattern": "Uploading" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "checkingDL", + "renamePattern": "Checking (Downloading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "checkingUP", + "renamePattern": "Checking (Uploading)" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "forcedUP", + "renamePattern": "Uploading (Forced)" + } + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 26 + }, + "id": 20, + "links": [], + "maxDataPoints": 3, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "editorMode": "code", + "expr": "qbittorrent_torrent_amount_left_bytes > 0", + "instant": true, + "intervalFactor": 1, + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "Amount Remaining Per Torrent", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "from": "", + "id": 2, + "operator": "", + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 0.25 + }, + { + "color": "#EAB839", + "value": 0.5 + }, + { + "color": "semi-dark-green", + "value": 0.75 + }, + { + "color": "rgb(206, 206, 206)", + "value": 1 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 35 + }, + "id": 22, + "options": { + "displayMode": "lcd", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "text": {} + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_torrent_progress < 1.0", + "instant": true, + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "title": "Incomplete Torrent Progress", + "type": "bargauge" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 45 + }, + "hiddenSeries": false, + "id": 18, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": false, + "sideWidth": 200, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.7", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_torrent_download_speed_bytes", + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Download Speed by Torrent", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 45 + }, + "hiddenSeries": false, + "id": 26, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": false, + "sideWidth": 200, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.4.7", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_VICTORIA}" + }, + "expr": "qbittorrent_torrent_upload_speed_bytes", + "legendFormat": "{{name}}", + "refId": "A" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Upload Speed by Torrent", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + } + ], + "refresh": "10s", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "qBittorrent Dashboard", + "uid": "OEyH9tQZk", + "version": 2, + "weekStart": "" + } \ No newline at end of file diff --git a/cluster/apps/download/qbittorrent/kustomization.yaml b/cluster/apps/download/qbittorrent/kustomization.yaml index a04eae1..a72dfe7 100644 --- a/cluster/apps/download/qbittorrent/kustomization.yaml +++ b/cluster/apps/download/qbittorrent/kustomization.yaml @@ -3,4 +3,5 @@ kind: Kustomization resources: - ./qbittorrent-secrets.sops.yaml - ./helm-release.yaml -- ./qbittorrent-metrics.yaml \ No newline at end of file +- ./qbittorrent-metrics.yaml +- ./dashboard.yaml \ No newline at end of file