Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ade20996bd | ||
|
|
c174a26764
|
@@ -38,8 +38,7 @@ homelab-v2/
|
|||||||
│ ├── media/
|
│ ├── media/
|
||||||
│ ├── paperless/
|
│ ├── paperless/
|
||||||
│ ├── pihole/
|
│ ├── pihole/
|
||||||
│ ├── podsync/
|
│ └── podsync/
|
||||||
│ └── vikunja/
|
|
||||||
└── docs/
|
└── docs/
|
||||||
└── k8s-service-spec.md
|
└── k8s-service-spec.md
|
||||||
```
|
```
|
||||||
@@ -61,9 +60,6 @@ homelab-v2/
|
|||||||
| **Podsync** | Podcast downloader |
|
| **Podsync** | Podcast downloader |
|
||||||
| **Archmirror** | Local Arch Linux package repository mirror |
|
| **Archmirror** | Local Arch Linux package repository mirror |
|
||||||
| **Blog** | Personal static blog served via git-sync + nginx (gh-pages branch) |
|
| **Blog** | Personal static blog served via git-sync + nginx (gh-pages branch) |
|
||||||
| **Vikunja** | To-do list and task management, SSO via Authelia OIDC |
|
|
||||||
| **Reitti** | Personal location history and timeline (PostGIS), SSO via Authelia OIDC |
|
|
||||||
| **Dawarich** | Location history and timeline (PostGIS + Sidekiq), evaluated as a Reitti replacement; SSO via Authelia OIDC |
|
|
||||||
|
|
||||||
## Infrastructure Stack
|
## Infrastructure Stack
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
creation_rules:
|
|
||||||
- path_regex: .*\.sops\.yaml
|
|
||||||
encrypted_regex: "^(data|stringData|email)$"
|
|
||||||
age: age1jetw4h63gq4uzyk08znynw4h852nexdmtkdz4kwxj5ew5st32vnspmtag2
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
apiVersion: operator.victoriametrics.com/v1beta1
|
|
||||||
kind: VMStaticScrape
|
|
||||||
metadata:
|
|
||||||
name: coreelec
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: coreelec
|
|
||||||
spec:
|
|
||||||
jobName: coreelec
|
|
||||||
targetEndpoints:
|
|
||||||
- targets:
|
|
||||||
- "coreelec.iot.lviv:9100"
|
|
||||||
scheme: http
|
|
||||||
path: /metrics
|
|
||||||
interval: 60s
|
|
||||||
scrapeTimeout: 10s
|
|
||||||
relabelConfigs:
|
|
||||||
- targetLabel: instance
|
|
||||||
replacement: coreelec
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: homeassistant-prometheus
|
|
||||||
namespace: monitoring
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
token: ENC[AES256_GCM,data:0+65oM4/ICURAcNcp4c/W1r3fO8GgkPrZgpFGk1rYQF5mSTk8Mu/DrG6TZ6sULQ1otQOdcW/6DtFYZc4xfL29cirZF/XZUfyIm7ENSdMYM1hh3lYhbi9HC/rTXyBP2F9HCIHqVsuNC024WHq/YNNwWhaGScs1mV7yZWtbv+Dqq6Mg6p9iFBzZk+pQ+hJGzO+XUNrXlKYjjsxkLPKSyf9STqIQ4Bzx5B0MwsVfhIwh8NoedTW39cO,iv:8BFLgfE4hs+vYcr3FcGhPZBjJKIamqG3e0f12PngOVY=,tag:L7VGNV+MjfHxPusVPit7Ww==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnZXZ4enk0UVZpRTVnVnhL
|
|
||||||
UnNUTWFiWkczT0d0M1FvK3hnenhqMzYwWURFCjlJU3E0R2NXWFU0d0ppRjI0WXd5
|
|
||||||
djQ0d2VQQXI5bFp4YmhBU040V3JvbGsKLS0tIG1TKyt5SmVraTVMSFUxODdLTXlL
|
|
||||||
MDNXVDJMa3ZWMzJZQlVrYnN6dnJVYVkKIbBebz4SiKgwL+TI6k2l6p3r+99wc6e9
|
|
||||||
LZpX9jtVZtIYKyQDlWsEXz6cEzBh2IQyoLS8RYFWG2eYpN15fvIu7w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1jetw4h63gq4uzyk08znynw4h852nexdmtkdz4kwxj5ew5st32vnspmtag2
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-06-20T08:26:05Z"
|
|
||||||
mac: ENC[AES256_GCM,data:tyKGTUZHUd5CTxOH/vkDSxAXast6w5moVPxQWh54d/xOqasKw+fcFOzuYq81TgBRagM5BKHT3EqF1B7dr0TRZnT8s+LjwivWGfDCBoDFVtCnX3vA+mgIWaN/12fR3WJ4+dgpvoMwR4sFGFbvN6tozyDA6dPOYzOpOOM/VJxbdDw=,iv:VLu8bborH6YLoriseWympgJCNV08MZqVz7rF1/+o6BQ=,tag:PQkphKrdkNVsWipo6ge/bw==,type:str]
|
|
||||||
version: 3.13.1
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
apiVersion: operator.victoriametrics.com/v1beta1
|
|
||||||
kind: VMStaticScrape
|
|
||||||
metadata:
|
|
||||||
name: homeassistant
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: homeassistant
|
|
||||||
spec:
|
|
||||||
jobName: homeassistant
|
|
||||||
targetEndpoints:
|
|
||||||
- targets:
|
|
||||||
- "http://homeassistant.iot.lviv:8123"
|
|
||||||
scheme: http
|
|
||||||
path: /api/prometheus
|
|
||||||
interval: 60s
|
|
||||||
scrapeTimeout: 30s
|
|
||||||
bearerTokenSecret:
|
|
||||||
name: homeassistant-prometheus
|
|
||||||
key: token
|
|
||||||
relabelConfigs:
|
|
||||||
- targetLabel: instance
|
|
||||||
replacement: homeassistant
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
apiVersion: operator.victoriametrics.com/v1beta1
|
|
||||||
kind: VMStaticScrape
|
|
||||||
metadata:
|
|
||||||
name: hyperhdr
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: hyperhdr
|
|
||||||
spec:
|
|
||||||
jobName: hyperhdr
|
|
||||||
targetEndpoints:
|
|
||||||
- targets:
|
|
||||||
- "hyperhdr.iot.lviv:9100"
|
|
||||||
scheme: http
|
|
||||||
path: /metrics
|
|
||||||
interval: 60s
|
|
||||||
scrapeTimeout: 10s
|
|
||||||
relabelConfigs:
|
|
||||||
- targetLabel: instance
|
|
||||||
replacement: hyperhdr
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: apps
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m
|
|
||||||
path: ./kubernetes-monitoring/apps
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: flux-system
|
|
||||||
decryption:
|
|
||||||
provider: sops
|
|
||||||
secretRef:
|
|
||||||
name: sops-age
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: victoria-logs-grafana-datasource
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
# Picked up automatically by the Grafana datasource sidecar (vmstack chart).
|
|
||||||
grafana_datasource: "1"
|
|
||||||
data:
|
|
||||||
victoria-logs-datasource.yaml: |
|
|
||||||
apiVersion: 1
|
|
||||||
datasources:
|
|
||||||
- name: VictoriaLogs
|
|
||||||
type: victoriametrics-logs-datasource
|
|
||||||
access: proxy
|
|
||||||
url: http://victoria-logs.monitoring.svc:9428
|
|
||||||
isDefault: false
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: monitoring
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: victoria-logs-single
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: victoria-logs-single
|
|
||||||
version: 0.13.8
|
|
||||||
reconcileStrategy: ChartVersion
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: victoria-metrics
|
|
||||||
namespace: flux-system
|
|
||||||
targetNamespace: monitoring
|
|
||||||
interval: 30m
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
upgrade:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
server:
|
|
||||||
fullnameOverride: victoria-logs
|
|
||||||
retentionPeriod: "30d"
|
|
||||||
persistentVolume:
|
|
||||||
enabled: true
|
|
||||||
storageClassName: local-path
|
|
||||||
size: 20Gi
|
|
||||||
# NodePort so an external Alloy (e.g. the Talos DaemonSet) can push logs
|
|
||||||
# by IP, independent of DNS. In-cluster Grafana uses the ClusterIP DNS name.
|
|
||||||
service:
|
|
||||||
type: NodePort
|
|
||||||
nodePort: 30429
|
|
||||||
clusterIP: ""
|
|
||||||
syslog:
|
|
||||||
udp:
|
|
||||||
- name: syslog-udp
|
|
||||||
value: ":514"
|
|
||||||
useRemoteIP: true
|
|
||||||
useLocalTimestamp: true
|
|
||||||
# Scraped by the stack's vmagent so ingestion stalls can alert.
|
|
||||||
vmServiceScrape:
|
|
||||||
enabled: true
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 128Mi
|
|
||||||
limits:
|
|
||||||
memory: 512Mi
|
|
||||||
|
|
||||||
# Ship the chart's dashboards (victorialogs-single-node, vector-k8s-monitoring)
|
|
||||||
# as ConfigMaps; the grafana_dashboard label makes the vmstack Grafana
|
|
||||||
# dashboard sidecar import them automatically.
|
|
||||||
dashboards:
|
|
||||||
enabled: true
|
|
||||||
labels:
|
|
||||||
grafana_dashboard: "1"
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: victoria-metrics-k8s-stack
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: victoria-metrics-k8s-stack
|
|
||||||
version: 0.84.0
|
|
||||||
reconcileStrategy: ChartVersion
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: victoria-metrics
|
|
||||||
namespace: flux-system
|
|
||||||
targetNamespace: monitoring
|
|
||||||
interval: 30m
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
upgrade:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
values:
|
|
||||||
# Operator bundles the VictoriaMetrics CRDs (plain manifests, applied by Flux SSA).
|
|
||||||
victoria-metrics-operator:
|
|
||||||
enabled: true
|
|
||||||
crds:
|
|
||||||
plain: true
|
|
||||||
|
|
||||||
# Single-node TSDB. NodePort so the in-cluster Talos vmagent can remote_write
|
|
||||||
# and we can reach it by IP even when DNS (pihole on Talos) is down.
|
|
||||||
vmsingle:
|
|
||||||
enabled: true
|
|
||||||
spec:
|
|
||||||
retentionPeriod: "12" # months — VM is very space-efficient
|
|
||||||
storage:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: local-path
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 30Gi
|
|
||||||
serviceSpec:
|
|
||||||
useAsDefault: true
|
|
||||||
spec:
|
|
||||||
type: NodePort
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8428
|
|
||||||
targetPort: 8428
|
|
||||||
protocol: TCP
|
|
||||||
nodePort: 30428
|
|
||||||
|
|
||||||
# Local scrape of the Pi/k3s itself (node-exporter, kube-state-metrics, kubelet).
|
|
||||||
vmagent:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
vmalert:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# k3s runs scheduler/controller-manager in one binary with no separate
|
|
||||||
# scrape endpoints, and uses kine instead of etcd — disabling these drops
|
|
||||||
# the empty scrape pools and their always-firing rules.
|
|
||||||
kubeScheduler:
|
|
||||||
enabled: false
|
|
||||||
kubeControllerManager:
|
|
||||||
enabled: false
|
|
||||||
kubeEtcd:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
alertmanager:
|
|
||||||
enabled: true
|
|
||||||
spec:
|
|
||||||
# Mounted at /etc/vm/secrets/alertmanager-telegram/ (bot_token, chat_id).
|
|
||||||
secrets:
|
|
||||||
- alertmanager-telegram
|
|
||||||
config:
|
|
||||||
route:
|
|
||||||
receiver: telegram
|
|
||||||
group_by: ["alertname", "job"]
|
|
||||||
group_wait: 30s
|
|
||||||
group_interval: 5m
|
|
||||||
repeat_interval: 12h
|
|
||||||
routes:
|
|
||||||
- receiver: blackhole
|
|
||||||
matchers:
|
|
||||||
- alertname=~"Watchdog|InfoInhibitor"
|
|
||||||
- receiver: blackhole
|
|
||||||
matchers:
|
|
||||||
- severity="info"
|
|
||||||
inhibit_rules:
|
|
||||||
- source_matchers:
|
|
||||||
- severity="critical"
|
|
||||||
target_matchers:
|
|
||||||
- severity="warning"
|
|
||||||
equal: ["alertname", "job"]
|
|
||||||
receivers:
|
|
||||||
- name: blackhole
|
|
||||||
- name: telegram
|
|
||||||
telegram_configs:
|
|
||||||
- bot_token_file: /etc/vm/secrets/alertmanager-telegram/bot_token
|
|
||||||
chat_id_file: /etc/vm/secrets/alertmanager-telegram/chat_id
|
|
||||||
send_resolved: true
|
|
||||||
|
|
||||||
grafana:
|
|
||||||
enabled: true
|
|
||||||
# SQLite DB on an RWO local-path volume — never run two pods at once.
|
|
||||||
deploymentStrategy:
|
|
||||||
type: Recreate
|
|
||||||
# The volume already carries fsGroup: 472 and 472-owned data; the chown
|
|
||||||
# init container drops DAC_OVERRIDE and can't traverse Grafana's 0700
|
|
||||||
# render dirs, so it's both redundant and breaks rollouts here.
|
|
||||||
initChownData:
|
|
||||||
enabled: false
|
|
||||||
# Native VictoriaMetrics datasource plugins (signed, from Grafana catalog).
|
|
||||||
# - metrics: backs the "VictoriaMetrics (DS)" datasource the chart
|
|
||||||
# provisions by default (defaultDatasources.victoriametrics) — MetricsQL.
|
|
||||||
# - logs: backs our VictoriaLogs datasource (configmap-logs-datasource.yaml).
|
|
||||||
plugins:
|
|
||||||
- victoriametrics-metrics-datasource
|
|
||||||
- victoriametrics-logs-datasource
|
|
||||||
# Native Grafana login — independent of Authelia (which lives in Talos).
|
|
||||||
admin:
|
|
||||||
existingSecret: grafana-admin
|
|
||||||
userKey: admin-user
|
|
||||||
passwordKey: admin-password
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
type: pvc
|
|
||||||
storageClassName: local-path
|
|
||||||
size: 5Gi
|
|
||||||
# NodePort so Grafana is reachable by IP without depending on DNS.
|
|
||||||
service:
|
|
||||||
type: NodePort
|
|
||||||
nodePort: 30300
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: victoria-metrics
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 1h
|
|
||||||
url: https://victoriametrics.github.io/helm-charts/
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: alertmanager-telegram
|
|
||||||
namespace: monitoring
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
bot_token: ENC[AES256_GCM,data:V/SDGyp/M7Qqa22fiKYMZ2CzkivNBl24hv9cVEFPl50NySKY0jqIPnVWLtm11g==,iv:UfHMfvu9b2CaXhImng5OLVej13zHrptKQOaPUbjXiw0=,tag:SFAGUaM0XYvbVc1CRrJepQ==,type:str]
|
|
||||||
chat_id: ENC[AES256_GCM,data:HRDHrCMMurk=,iv:hP7UB23qWZ+YukoP3B7QolUIfv2FgJtTfM1OLe/nMMY=,tag:JTwjQwDLQaG5LfKQGV73iw==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwNXF4V1N3bmpxbWN5YUVR
|
|
||||||
UDNNdm1IL2hHWGgzRENvK0xWdkhFc1drRGhBCjdQc3hydG1RN3ZocUZnZGpKRG5i
|
|
||||||
K1RXUTdiZ29hWWdjLzZVMCtMb1NZbjQKLS0tIHpDcTNDeFpJUU5CeU5PSFNWWnBo
|
|
||||||
UmJNT1hVL0h3c3hWOGQxM21uWk14amsKIyFxmszp94FteSUXyAh4hrDNbPBja4dT
|
|
||||||
QL6wFw8GkYtFeucIgnvbjHWWi98QMwE1xEt930uMeNyRnLFqFfUtWw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1jetw4h63gq4uzyk08znynw4h852nexdmtkdz4kwxj5ew5st32vnspmtag2
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-10-03T20:07:21Z"
|
|
||||||
mac: ENC[AES256_GCM,data:k7rBxhWrC2DFvFcoB6Wqufzk6vLtWFypITl/JK2qd6Vj9m7XKBZdiH5mCSDNfo4UK+ygFnGQ8oidkgcCrbGYqKFK8Q67+LQ9o1OMOXcZDkz6UzNRaLh3aO5NqbdleV36cICX6qpG1uO6GL6p5g121vRztQT+Qg1L0BkIMrF+sJQ=,iv:y8figgbzUg1gf0zug534Fvd9jdB00JiA7LoWXUm3/Lw=,tag:ccP3IKdWwMIJqP0s/U7NQA==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: grafana-admin
|
|
||||||
namespace: monitoring
|
|
||||||
stringData:
|
|
||||||
admin-user: ENC[AES256_GCM,data:KDBvi5I=,iv:tNHZ9IABD5l210PTjKhN+q4vMnmJLAP99fzzONpwwxg=,tag:YU62qttxO95+P1VlpVn0qA==,type:str]
|
|
||||||
admin-password: ENC[AES256_GCM,data:HjZYVYs2t6Oml52fjFS2PymFvp1GXRAJXCewxA==,iv:LK1Yf0teLPITo2pK4lAaeub3Ieyl90uRrZeBD3LXy2o=,tag:7I8fT/SSzU7JkcreNlI8rw==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBobmoydk9FaHFkQXEzQU03
|
|
||||||
YnZ4RjlxVk40dkk5RGFya0Foeit1dEpWRkdZCmJ4M3pxcHl1S1FUTnlGbEtEeXJT
|
|
||||||
ZDN4c0dPYktwTXgveExQUWFsYlEwTmsKLS0tIElmTDNCM2dRR3VtRGRpeHVCSXVl
|
|
||||||
ckV1N3h1bmlOdjhnRXRZNExJank5Q2MKMsA6BkdzOrTQUN0uPSUQSa9aYLil2Chb
|
|
||||||
vjpFp1j6x9EwvKHLY7mry15ze7gjUtUt8e97zO9ZlturiPigl0jeoQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1jetw4h63gq4uzyk08znynw4h852nexdmtkdz4kwxj5ew5st32vnspmtag2
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-06-19T11:46:25Z"
|
|
||||||
mac: ENC[AES256_GCM,data:h7Bei7jgHb4dFIk6Vax8fL7uA0zlqLUtpQgYTNx7i+yssAXcKEr989WgbLqQY8Rx1BSj27rFHv2Y4P+K2ump+J930lZIe1NNBNiFnYbI2vN0TYrlVOAETk6c0DoqygG7Mmlq+kCGGml4A+4XuQcCA4ZYzBYE4QvGq/WS6bOCFXI=,iv:zE3GhfkvJl5Z4klGWHgw7iZmxOff+Mlf7aXtMWTKUEs=,tag:q0mxhLxK2SIujVa+mhiKVw==,type:str]
|
|
||||||
version: 3.13.1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: victoria-logs-syslog
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
type: NodePort
|
|
||||||
externalTrafficPolicy: Local
|
|
||||||
selector:
|
|
||||||
app: server
|
|
||||||
app.kubernetes.io/instance: monitoring-victoria-logs-single
|
|
||||||
app.kubernetes.io/name: victoria-logs-single
|
|
||||||
ports:
|
|
||||||
- name: syslog-udp
|
|
||||||
protocol: UDP
|
|
||||||
port: 514
|
|
||||||
targetPort: 514
|
|
||||||
nodePort: 30514
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
apiVersion: operator.victoriametrics.com/v1beta1
|
|
||||||
kind: VMRule
|
|
||||||
metadata:
|
|
||||||
name: homelab
|
|
||||||
namespace: monitoring
|
|
||||||
spec:
|
|
||||||
groups:
|
|
||||||
- name: unifi-gateway
|
|
||||||
rules:
|
|
||||||
# Baseline load is 2–5; the 2026-09-26 memory-pressure incident sat at 15–25.
|
|
||||||
- alert: UnifiGatewayHighLoad
|
|
||||||
expr: avg_over_time(unpoller_device_load_average_1{type="udm"}[15m]) > 10
|
|
||||||
for: 15m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: "UniFi gateway load is {{ $value | humanize }} (15m avg)"
|
|
||||||
# Baseline is 84–92% and creeps up ~1%/3 days until something restarts.
|
|
||||||
- alert: UnifiGatewayMemoryHigh
|
|
||||||
expr: avg_over_time(unpoller_device_memory_utilization_ratio{type="udm"}[30m]) > 0.93
|
|
||||||
for: 30m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: "UniFi gateway memory at {{ $value | humanizePercentage }} (30m avg)"
|
|
||||||
- name: victoria-logs
|
|
||||||
rules:
|
|
||||||
# The gateway alone logs DHCP chatter every few minutes, so zero rows
|
|
||||||
# means the syslog path is broken (e.g. the 2026-09-22 IP change).
|
|
||||||
- alert: SyslogIngestionStalled
|
|
||||||
expr: sum(rate(vl_rows_ingested_total{type="syslog_udp"}[30m])) == 0
|
|
||||||
for: 15m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: "VictoriaLogs has received no syslog for 45m"
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,76 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: snmp-exporter
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snmp-exporter
|
|
||||||
app.kubernetes.io/instance: snmp-exporter
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: snmp-exporter
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snmp-exporter
|
|
||||||
app.kubernetes.io/instance: snmp-exporter
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
runAsGroup: 65534
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: snmp-exporter
|
|
||||||
image: quay.io/prometheus/snmp-exporter:v0.30.1
|
|
||||||
args:
|
|
||||||
# Vendored snmp.yml (configmap) — `synology` module with full coverage
|
|
||||||
# (Synology private trees + IF-MIB + HOST-RESOURCES + UCD), matched to the dashboard.
|
|
||||||
- "--config.file=/etc/snmp-config/snmp.yml"
|
|
||||||
# Our SNMPv3 credentials; snmp_exporter merges multiple --config.file flags.
|
|
||||||
- "--config.file=/etc/snmp-auth/auth.yml"
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
containerPort: 9116
|
|
||||||
protocol: TCP
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /etc/snmp-config
|
|
||||||
readOnly: true
|
|
||||||
- name: auth
|
|
||||||
mountPath: /etc/snmp-auth
|
|
||||||
readOnly: true
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: metrics
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 15
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: metrics
|
|
||||||
initialDelaySeconds: 15
|
|
||||||
periodSeconds: 30
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 64Mi
|
|
||||||
limits:
|
|
||||||
memory: 128Mi
|
|
||||||
volumes:
|
|
||||||
- name: config
|
|
||||||
configMap:
|
|
||||||
name: snmp-exporter-config
|
|
||||||
- name: auth
|
|
||||||
secret:
|
|
||||||
secretName: snmp-exporter-auth
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: snmp-exporter-auth
|
|
||||||
namespace: monitoring
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
auth.yml: ENC[AES256_GCM,data:/UESrSn3ezINnFou7hiXYrqECjStumoIXBQm2q9Gxe9QaCg5AI5dl+ZNAgo+1YIrQbf1BrQgZttXjSAMn+Rf6nDhOEu44i1AbbZKXT6bm3fzuEzPcT5EIf5BQuGpnwXmpy3Gh+5Zi/fs0xO/cSlIiEkagNV7BO40Nl9ktUt4zKyW9GI/zf/T4iTUTlLWqSogDBE59gnBXa9fvNuHx8jIufpzhnnk65keoybEewW3/00Sa9Q+J31VvQ/w3DC205aad1njU8PIP5jPAn97pQeSZPY9iNNexxpb0+5IdSHpcKlT1aEigR8TqYc/,iv:4D6jFm9mA9BglHqsvTrrYxtYus1JWmCWEu0HQALET+4=,tag:It3uGYRvYPCL4+xvFo7P0A==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzdUFHTFFjMXpzbFAyN00x
|
|
||||||
N0FrRHJnT2ljYThUcndHNGIyK1RJOWp5Z3c0CnFNQzkzZk5NWDgwN3ZiRTBjYU9S
|
|
||||||
SFpkTmJkM2VLbEJzZEtxYy9DVFB6OXcKLS0tIFZzWTZNOFNXRzdERGFWanZTYkp1
|
|
||||||
R2dvMmhBTjQyOS85UzIxYlN0Wm8wU1EKmWA+lkDNqzpyqEd+PpI6PDi9L/Vlp1RP
|
|
||||||
Y6WVvvOi9OKc4UaDxXVSEgLlA3DNBg2BaY2jEhMJlqLJyknHY4un0g==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1jetw4h63gq4uzyk08znynw4h852nexdmtkdz4kwxj5ew5st32vnspmtag2
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-06-29T11:52:50Z"
|
|
||||||
mac: ENC[AES256_GCM,data:/zoY3ZS7ipOjt1YY2OQ5SCRITX9WXI+BXmrmlRfoJ9M+lJHomgbTkdqu70jcgYXTm/ARlTMrMrk3zCQqPBPc9bYbz7wXh8o0PLyCUQ1ccSGR5hWjywsRjm7nfM25p0UYvEllj+KywRnY7ArbJvzGcLYEtHmUvuyRs2HG5Tv7KnM=,iv:je3IVh8HpLzRGToU5Znuq49K2H+hxEM94WCP1c39mjg=,tag:sf6USL4a2/vZXQT7eMerBA==,type:str]
|
|
||||||
version: 3.13.1
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: snmp-exporter
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snmp-exporter
|
|
||||||
app.kubernetes.io/instance: snmp-exporter
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: snmp-exporter
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
port: 9116
|
|
||||||
targetPort: metrics
|
|
||||||
protocol: TCP
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: operator.victoriametrics.com/v1beta1
|
|
||||||
kind: VMStaticScrape
|
|
||||||
metadata:
|
|
||||||
name: synology
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: snmp-exporter
|
|
||||||
spec:
|
|
||||||
jobName: synology
|
|
||||||
targetEndpoints:
|
|
||||||
# snmp_exporter is a proxy: vmagent scrapes the exporter, which then queries
|
|
||||||
# the NAS over SNMP. The device address is passed as the `target` param and
|
|
||||||
# the request is redirected to the exporter Service via relabeling below.
|
|
||||||
- targets:
|
|
||||||
- "synology.storage.lviv"
|
|
||||||
scheme: http
|
|
||||||
path: /snmp
|
|
||||||
params:
|
|
||||||
module:
|
|
||||||
- synology
|
|
||||||
auth:
|
|
||||||
- synology_v3
|
|
||||||
interval: 60s
|
|
||||||
scrapeTimeout: 30s
|
|
||||||
relabelConfigs:
|
|
||||||
- sourceLabels: [__address__]
|
|
||||||
targetLabel: __param_target
|
|
||||||
- sourceLabels: [__param_target]
|
|
||||||
targetLabel: instance
|
|
||||||
- targetLabel: __address__
|
|
||||||
replacement: snmp-exporter.monitoring.svc:9116
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,253 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
client-insights.json: '{"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana
|
|
||||||
--","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations
|
|
||||||
& Alerts","type":"dashboard"}]},"description":"UniFi Poller v2.0.1 Displays detailed
|
|
||||||
information for clients in a UniFi network using Prometheus.","editable":true,"gnetId":11315,"graphTooltip":1,"id":null,"iteration":1592125485014,"links":[{"asDropdown":true,"icon":"external
|
|
||||||
link","includeVars":false,"keepTime":true,"tags":["unifi-poller"],"title":"UniFi
|
|
||||||
Poller","type":"dashboards"},{"icon":"question","tags":[],"title":"Help","type":"link","url":"https://golift.io/unifi-poller/issues"},{"icon":"doc","tags":[],"title":"Wiki","type":"link","url":"https://golift.io/unifi-poller/wiki"},{"icon":"bolt","tags":[],"title":"Discord","type":"link","url":"https://discord.gg/KnyKYt2"}],"panels":[{"columns":[],"datasource":"VictoriaMetrics","description":"This
|
|
||||||
table represents current (latest) data.\nBytes columns are lifetime totals.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"80%","gridPos":{"h":13,"w":24,"x":0,"y":0},"id":21,"links":[],"pageSize":null,"scroll":true,"showHeader":true,"sort":{"col":9,"desc":true},"styles":[{"alias":"Bytes
|
|
||||||
Rx","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#A","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"Name","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"name","thresholds":[],"type":"string","unit":"short"},{"alias":"Chan","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"channel","thresholds":[],"type":"string","unit":"short"},{"alias":"Device
|
|
||||||
MAC","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"mappingType":1,"pattern":"mac","thresholds":[],"type":"string","unit":"short"},{"alias":"Radio","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"radio","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"radio_name","thresholds":[],"type":"hidden","unit":"short"},{"alias":"AP
|
|
||||||
/ Radio / Proto","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54,
|
|
||||||
0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"radio_desc","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"radio_proto","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"job","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"bssid","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"ap_mac","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"wired","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"vlan","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"sw_mac","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"instance","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"gw_mac","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Network","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"network","thresholds":[],"type":"string","unit":"short"},{"alias":"OUI","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"oui","thresholds":[],"type":"string","unit":"short"},{"alias":"Address","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"ip","thresholds":[],"type":"string","unit":"short"},{"alias":"ESSID","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"essid","thresholds":[],"type":"string","unit":"short"},{"alias":"Switch","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"sw_name","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Sw
|
|
||||||
Port","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"mappingType":1,"pattern":"sw_port","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"gw_name","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Controller","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"source","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Bytes
|
|
||||||
Tx","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#B","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"s"}],"targets":[{"expr":"sum
|
|
||||||
by (channel,essid,ip,mac,name,network,oui,radio_desc,site_name,source) (\n unpoller_client_receive_bytes_total{wired!=\"true\",
|
|
||||||
site_name=~\"$Site\", name=~\"$Wireless\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"A"},{"expr":"sum
|
|
||||||
by (channel,essid,ip,mac,name,network,oui,radio_desc,site_name,source) (\n unpoller_client_transmit_bytes_total{wired!=\"true\",site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"B"},{"expr":"sum
|
|
||||||
by (channel,essid,ip,mac,name,network,oui,radio_desc,site_name,source) (\n unpoller_client_uptime_seconds{wired!=\"true\",site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"C"}],"timeFrom":null,"title":"Wireless
|
|
||||||
Devices","transform":"table","type":"table-old"},{"columns":[],"datasource":"VictoriaMetrics","description":"This
|
|
||||||
table represents current (latest) data.\nBytes columns are lifetime totals.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"80%","gridPos":{"h":12,"w":24,"x":0,"y":13},"hideTimeOverride":false,"id":22,"links":[],"pageSize":null,"scroll":true,"showHeader":true,"sort":{"col":9,"desc":true},"styles":[{"alias":"Time","align":"auto","dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","link":false,"linkUrl":"http://$__cell","pattern":"Time","type":"hidden"},{"alias":"Sw
|
|
||||||
Port","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"decimals":0,"pattern":"sw_port","thresholds":[],"type":"number","unit":"short"},{"alias":"Name","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"name","thresholds":[],"type":"string","unit":"short"},{"alias":"Device
|
|
||||||
MAC","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"mappingType":1,"pattern":"mac","thresholds":[],"type":"string","unit":"short"},{"alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value","thresholds":[],"type":"number","unit":"s"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"__name__","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"gw_mac","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"gw_name","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"instance","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Address","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"ip","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"job","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Network","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"network","thresholds":[],"type":"string","unit":"short"},{"alias":"OUI","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"oui","thresholds":[],"type":"string","unit":"short"},{"alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"sw_mac","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Switch","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"sw_name","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"wired","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Controller","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"source","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #A","thresholds":[],"type":"number","unit":"s"},{"alias":"Bytes
|
|
||||||
Rx","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":1,"mappingType":1,"pattern":"Value
|
|
||||||
#B","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"Bytes Tx","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":1,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"decbytes"}],"targets":[{"expr":"sum
|
|
||||||
by (ap_name,ip,mac,name,network,oui,site_name,source,sw_port) (\n unpoller_client_uptime_seconds{wired=\"true\",
|
|
||||||
site_name=~\"$Site\", name=~\"$Wired\", sw_name=~\"$Switch\"})","format":"table","instant":true,"interval":"","refId":"A"},{"expr":"sum
|
|
||||||
by (ap_name,ip,mac,name,network,oui,site_name,source,sw_port) (\n unpoller_client_receive_bytes_total{wired=\"true\",
|
|
||||||
site_name=~\"$Site\", name=~\"$Wired\", sw_name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"interval":"","refId":"B"},{"expr":"sum
|
|
||||||
by (ap_name,ip,mac,name,network,oui,site_name,source,sw_port) (\n unpoller_client_transmit_bytes_total{wired=\"true\",
|
|
||||||
site_name=~\"$Site\", name=~\"$Wired\", sw_name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"interval":"","refId":"C"}],"timeFrom":null,"title":"Wired
|
|
||||||
Devices","transform":"table","type":"table-old"},{"aliasColors":{},"breakPoint":"50%","cacheTimeout":null,"combine":{"label":"Others","threshold":0},"datasource":"VictoriaMetrics","decimals":0,"description":"Visualize
|
|
||||||
wireless channel usage w/ wired client counts.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"70%","format":"short","gridPos":{"h":10,"w":8,"x":0,"y":25},"hideTimeOverride":false,"id":9,"interval":null,"legend":{"header":"","percentage":true,"show":true,"values":false},"legendType":"Right
|
|
||||||
side","links":[],"maxDataPoints":3,"nullPointMode":"connected","pieType":"pie","strokeWidth":"2","targets":[{"expr":"count
|
|
||||||
by (hostname) (unpoller_client_uptime_seconds{site_name=~\"$Site\", name=~\"$Wired\",
|
|
||||||
sw_name=~\"$Switch\"})","instant":true,"legendFormat":"Wired","refId":"A"},{"expr":"count
|
|
||||||
by (channel) (unpoller_client_roam_count_total{site_name=~\"$Site\", name=~\"$Wireless\",
|
|
||||||
ap_name=~\"$AP\"})","instant":true,"interval":"$Smooth","legendFormat":"Channel
|
|
||||||
{{channel}}","refId":"B"}],"timeFrom":null,"title":"Clients / Channel","transparent":true,"type":"piechart","valueName":"current"},{"aliasColors":{},"breakPoint":"25%","cacheTimeout":null,"combine":{"label":"Others","threshold":0},"datasource":"VictoriaMetrics","decimals":0,"description":"Visualize
|
|
||||||
how many clients are connected to which radios/APs.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"70%","format":"short","gridPos":{"h":10,"w":8,"x":8,"y":25},"hideTimeOverride":false,"id":11,"interval":null,"legend":{"header":"","percentage":true,"show":true,"values":false},"legendType":"Right
|
|
||||||
side","links":[],"maxDataPoints":3,"nullPointMode":"connected","pieType":"pie","strokeWidth":"3","targets":[{"expr":"count
|
|
||||||
by (radio_proto) (unpoller_client_roam_count_total{site_name=~\"$Site\", name=~\"$Wireless\",
|
|
||||||
ap_name=~\"$AP\"})","instant":true,"interval":"$Smooth","legendFormat":"{{radio_proto}}","refId":"A"}],"timeFrom":null,"title":"Clients
|
|
||||||
/ AP Radio","transparent":true,"type":"piechart","valueName":"current"},{"aliasColors":{},"breakPoint":"50%","cacheTimeout":null,"combine":{"label":"Others","threshold":"0.01"},"datasource":"VictoriaMetrics","decimals":0,"description":"This
|
|
||||||
shows an OUI breakdown from Unifi''s perspective. e = wired, w = wireless","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"70%","format":"short","gridPos":{"h":10,"w":8,"x":16,"y":25},"hideTimeOverride":false,"id":12,"interval":null,"legend":{"header":"Count","percentage":true,"percentageDecimals":0,"show":true,"sort":"current","sortDesc":true,"values":true},"legendType":"Right
|
|
||||||
side","links":[],"maxDataPoints":3,"nullPointMode":"connected","pieType":"pie","strokeWidth":1,"targets":[{"expr":"count
|
|
||||||
by (oui) (unpoller_client_uptime_seconds{site_name=~\"$Site\", name=~\"$Wireless\",
|
|
||||||
ap_name=~\"$AP\"})","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"
|
|
||||||
w {{oui}}","refId":"A"},{"expr":"count by (oui) (+unpoller_client_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
name=~\"$Wired\", sw_name=~\"$Switch\"})","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"e {{oui}}","refId":"B"}],"timeFrom":null,"title":"Client
|
|
||||||
MAC OUI Breakdown","transparent":true,"type":"piechart","valueName":"current"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Bandwidth
|
|
||||||
usage per wireless devices as reported by the UAPs. Rx is on the negative axis.
|
|
||||||
Does not include amazon devices.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":14,"w":24,"x":0,"y":35},"hiddenSeries":false,"id":3,"legend":{"alignAsTable":true,"avg":true,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"$$hashKey":"object:323","alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (rate(unpoller_client_transmit_bytes_total{name!~\".*camera.*|.*cam(era)?$\",
|
|
||||||
name=~\"$Wireless\", site_name=~\"$Site\", ap_name=~\"$AP\"}[$__interval]))","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{mac}} Tx","refId":"B"},{"expr":"sum by ($Identifier) (rate(unpoller_client_receive_bytes_total{name!~\".*camera.*|.*cam(era)?$\",
|
|
||||||
name=~\"$Wireless\", site_name=~\"$Site\", ap_name=~\"$AP\"}[$__interval]))","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{mac}} Rx","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"UAP
|
|
||||||
Bandwidth / Wireless Devices","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"bytes
|
|
||||||
/ sec","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Wired
|
|
||||||
TX / RX bytes per second (calculated in 30 second buckets). Rx is on the negative
|
|
||||||
axis. Does not include amazon and camera devices. Unaffected by the AP setting.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":17,"w":24,"x":0,"y":49},"hiddenSeries":false,"id":2,"legend":{"alignAsTable":true,"avg":true,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"$$hashKey":"object:398","alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (rate(unpoller_client_transmit_bytes_total{name!~\".*camera.*|.*cam(era)?$\",
|
|
||||||
name=~\"$Wired\", site_name=~\"$Site\", sw_name=~\"$Switch\"}[$__interval]))","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{mac}} Tx","refId":"A"},{"expr":"sum by ($Identifier) (rate(unpoller_client_receive_bytes_total{name!~\".*camera.*|.*cam(era)?$\",
|
|
||||||
name=~\"$Wired\", site_name=~\"$Site\", sw_name=~\"$Switch\"}[$__interval]))","hide":false,"interval":"$Smooth","intervalFactor":1,"legendFormat":"{{name}}
|
|
||||||
{{mac}} Rx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Switch
|
|
||||||
Bandwidth / Wired Devices","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"bytes
|
|
||||||
/ sec","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Amazon
|
|
||||||
Devices TX / RX bytes per second. Rx is on the negative axis. My home network
|
|
||||||
has a ton of Amazon devices, so I broke them out separately. If you don''t have
|
|
||||||
Amazon devices, or they have different names, you can edit the query to use a
|
|
||||||
different name. e = wired, w = wireless","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":11,"w":12,"x":0,"y":66},"hiddenSeries":false,"id":23,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"$$hashKey":"object:469","alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (rate(unpoller_client_transmit_bytes_total{name=~\"^amazon.*\",
|
|
||||||
name=~\"$Wireless\", site_name=~\"$Site\", ap_name=~\"$AP\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"w
|
|
||||||
{{name}} {{mac}} Tx","refId":"A"},{"expr":"sum by ($Identifier) (rate(unpoller_client_receive_bytes_total{name=~\"^amazon.*\",
|
|
||||||
name=~\"$Wireless\", site_name=~\"$Site\", ap_name=~\"$AP\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"w
|
|
||||||
{{name}} {{mac}} Rx","refId":"B"},{"expr":"sum by ($Identifier) (rate(unpoller_client_transmit_bytes_total{name=~\"^amazon.*\",
|
|
||||||
name=~\"$Wired\", site_name=~\"$Site\", sw_name=~\"$Switch\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"e
|
|
||||||
{{name}} {{mac}} Tx","refId":"C"},{"expr":"sum by ($Identifier) (rate(unpoller_client_receive_bytes_total{name=~\"^amazon.*\",
|
|
||||||
name=~\"$Wired\", site_name=~\"$Site\", sw_name=~\"$Switch\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"e
|
|
||||||
{{name}} {{mac}} Rx","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Bandwidth / Echos & FireTVs","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"bytes
|
|
||||||
/ sec","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Cameras
|
|
||||||
TX / RX bytes per second. Rx is on the negative axis. This graph shows any device
|
|
||||||
with the word \"camera\" in its name and has nothing to do with UniFi Protect/video
|
|
||||||
products. e = wired, w = wireless","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":11,"w":12,"x":12,"y":66},"hiddenSeries":false,"id":15,"legend":{"alignAsTable":true,"avg":true,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"avg","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"$$hashKey":"object:510","alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":true,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (rate(unpoller_client_transmit_bytes_total{ap_name=~\"$AP\",
|
|
||||||
name=~\".*camera.*|.*cam$\", site_name=~\"$Site\"}[$__interval]))","hide":false,"instant":false,"interval":"$Smooth","legendFormat":"w
|
|
||||||
{{name}} {{mac}} Tx","refId":"A"},{"expr":"sum by ($Identifier) (rate(unpoller_client_receive_bytes_total{ap_name=~\"$AP\",
|
|
||||||
name=~\".*camera.*|.*cam$\", site_name=~\"$Site\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"w
|
|
||||||
{{name}} {{mac}} Rx","refId":"B"},{"expr":"sum by ($Identifier) (rate(unpoller_client_transmit_bytes_total{sw_name=~\"$Switch\",
|
|
||||||
name=~\".*camera.*|.*cam$\", site_name=~\"$Site\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"e
|
|
||||||
{{name}} {{mac}} Tx","refId":"C"},{"expr":"sum by ($Identifier) (rate(unpoller_client_receive_bytes_total{sw_name=~\"$Switch\",
|
|
||||||
name=~\".*camera.*|.*cam$\", site_name=~\"$Site\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"e
|
|
||||||
{{name}} {{mac}} Rx","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Bandwidth: Cameras","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"bytes
|
|
||||||
/ sec","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":0,"y":77},"hiddenSeries":false,"id":7,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"min","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_rssi_db{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"1m","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Received
|
|
||||||
Signal Strength Indicator","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"dB","label":"RSSI
|
|
||||||
Quality","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":12,"y":77},"hiddenSeries":false,"id":10,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":false,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_radio_signal_db{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","instant":false,"interval":"$Smooth","intervalFactor":1,"legendFormat":"{{name}}
|
|
||||||
{{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Wireless
|
|
||||||
Signal","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"dBm","label":"Signal
|
|
||||||
Power","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":86},"hiddenSeries":false,"id":6,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_noise_db{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"UAP
|
|
||||||
Client Stats / Noise","tooltip":{"shared":true,"sort":1,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"dB","label":"Noise","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Client
|
|
||||||
reported transmit rate.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":86},"hiddenSeries":false,"id":19,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_radio_transmit_rate_bps{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"TX
|
|
||||||
Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":94},"hiddenSeries":false,"id":24,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"avg
|
|
||||||
by ($Identifier) (rate(unpoller_client_wifi_attempts_transmit_total{ap_name=~\"$AP\",
|
|
||||||
site_name=~\"$Site\", name=~\"$Wireless\"}[$__interval]))","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Wifi Tx Attempts","tooltip":{"shared":true,"sort":1,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"short","label":"Attempts
|
|
||||||
/ Second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Client
|
|
||||||
reported receive rate.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":94},"hiddenSeries":false,"id":26,"legend":{"alignAsTable":true,"avg":true,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_radio_receive_rate_bps{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"RX
|
|
||||||
Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":102},"hiddenSeries":false,"id":30,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (rate(unpoller_client_transmit_retries_total{ap_name=~\"$AP\",
|
|
||||||
site_name=~\"$Site\", name=~\"$Wireless\"}[$__interval]))","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Transmit Retries","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"short","label":"Tx
|
|
||||||
Retries / Second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":102},"hiddenSeries":false,"id":29,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_radio_transmit_power_dbm{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Transmit Power","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"dBm","label":"Transmit
|
|
||||||
Power dBm","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":110},"hiddenSeries":false,"id":25,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_anomalies{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Anomalies","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"short","label":"Anomalies","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":110},"hiddenSeries":false,"id":31,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_satisfaction_ratio{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Satisfaction","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"percentunit","label":"Client
|
|
||||||
Satisfaction","logBase":1,"max":"1","min":"0","show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":118},"hiddenSeries":false,"id":28,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_roam_count_total{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Roam
|
|
||||||
Count","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"short","label":"Roam
|
|
||||||
Count","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":118},"hiddenSeries":false,"id":27,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":false,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by ($Identifier) (unpoller_client_ccq_ratio{ap_name=~\"$AP\", site_name=~\"$Site\",
|
|
||||||
name=~\"$Wireless\"})","interval":"$Smooth","legendFormat":"{{name}} {{mac}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Connection Quality %","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"percentunit","label":"CCQ","logBase":1,"max":"1","min":"0","show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}}],"refresh":"1m","schemaVersion":25,"style":"dark","tags":["unifi","unifi-poller"],"templating":{"list":[{"allValue":null,"current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_client_uptime_seconds,source)","hide":2,"includeAll":true,"label":null,"multi":true,"name":"Controller","options":[],"query":"label_values(unpoller_client_uptime_seconds,source)","refresh":1,"regex":"","skipUrlSync":false,"sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_client_uptime_seconds{source=~\"$Controller\"},site_name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Site","options":[],"query":"label_values(unpoller_client_uptime_seconds{source=~\"$Controller\"},site_name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\"},ap_name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"AP","options":[],"query":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\"},ap_name)","refresh":2,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\"},sw_name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Switch","options":[],"query":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\"},sw_name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
ap_name=~\"$AP\", wired=\"false\"},name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Wireless","options":[],"query":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
ap_name=~\"$AP\", wired=\"false\"},name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
sw_name=~\"$Switch\", wired=\"true\"},name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Wired","options":[],"query":"label_values(unpoller_client_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
sw_name=~\"$Switch\", wired=\"true\"},name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"selected":true,"text":"2m","value":"2m"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"Smooth","options":[{"selected":false,"text":"30s","value":"30s"},{"selected":false,"text":"1m","value":"1m"},{"selected":true,"text":"2m","value":"2m"},{"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,2m,5m,10m,15m,30m,1h","skipUrlSync":false,"type":"custom"},{"allValue":null,"current":{"selected":true,"text":"name","value":"name"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"Identifier","options":[{"selected":true,"text":"name","value":"name"},{"selected":false,"text":"name,mac","value":"name,mac"}],"query":"name,
|
|
||||||
name\\,mac","queryValue":"","skipUrlSync":false,"type":"custom"}]},"time":{"from":"now-3h","to":"now"},"timepicker":{"nowDelay":"","refresh_intervals":["30s","1m","5m","15m","30m","1h","2h"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"UniFi-Poller:
|
|
||||||
Client Insights - Prometheus","uid":"jMfvAjxWz","version":30}'
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/part-of: unpoller
|
|
||||||
grafana_dashboard: "1"
|
|
||||||
name: unpoller-dashboard-client-insights
|
|
||||||
namespace: monitoring
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
network-sites.json: '{"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana
|
|
||||||
--","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations
|
|
||||||
& Alerts","type":"dashboard"}]},"description":"UniFi Poller v2.0 Displays detailed
|
|
||||||
information for network Sites in a UniFi controller using Prometheus.","editable":true,"gnetId":11311,"graphTooltip":1,"id":null,"iteration":1580616399315,"links":[{"asDropdown":true,"icon":"external
|
|
||||||
link","includeVars":false,"keepTime":true,"tags":["unifi-poller"],"title":"UniFi
|
|
||||||
Poller","type":"dashboards"},{"icon":"question","tags":[],"title":"Help","type":"link","url":"https://golift.io/unifi-poller/issues"},{"icon":"doc","tags":[],"title":"Wiki","type":"link","url":"https://golift.io/unifi-poller/wiki"},{"icon":"bolt","tags":[],"title":"Discord","type":"link","url":"https://discord.gg/KnyKYt2"}],"panels":[{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["#299c46","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":null,"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":0,"y":0},"id":41,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"options":{},"pluginVersion":"6.4.4","postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(unpoller_site_switches)","format":"time_series","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"USW","type":"singlestat","valueFontSize":"100%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["#299c46","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":null,"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":3,"y":0},"id":42,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"options":{},"pluginVersion":"6.4.4","postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(unpoller_site_aps)","format":"time_series","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"UAP","type":"singlestat","valueFontSize":"100%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["#299c46","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":null,"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":6,"y":0},"id":43,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"options":{},"pluginVersion":"6.4.4","postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(unpoller_site_gateways)","format":"time_series","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"USG","type":"singlestat","valueFontSize":"100%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["#299c46","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":null,"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":3,"x":9,"y":0},"id":44,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"options":{},"pluginVersion":"6.4.4","postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"sum(unpoller_site_stations)","format":"time_series","instant":false,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"Stations","type":"singlestat","valueFontSize":"100%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"content":"Each
|
|
||||||
site contains 5 subsystems: wan, lan, wlan, www, vpn. Each subsystem contains
|
|
||||||
data specific to that system. \nAll subsystems except vpn have data rate. VPN
|
|
||||||
has data transfer though.\nThere''s not a ton of juicy info here, and most of
|
|
||||||
it can be gleaned on other the dashboards.\nThe row below is purposely collapsed
|
|
||||||
because some installationd have hundreds of sites. \nLoading them all at once
|
|
||||||
is often not possible.\n","gridPos":{"h":4,"w":12,"x":12,"y":0},"id":37,"links":[],"mode":"html","options":{},"timeFrom":null,"timeShift":null,"title":"Information","type":"text"},{"collapsed":true,"gridPos":{"h":1,"w":24,"x":0,"y":4},"id":4,"panels":[{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["#299c46","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":null,"format":"s","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":3,"w":6,"x":0,"y":5},"id":40,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"options":{},"pluginVersion":"6.4.4","postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"sparkline":{"fillColor":"rgba(31, 118,
|
|
||||||
189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false,"ymax":null,"ymin":null},"tableColumn":"","targets":[{"expr":"unpoller_site_uptime_seconds","format":"time_series","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"timeShift":null,"title":"Uplink
|
|
||||||
Uptime","type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"These
|
|
||||||
are counters, totals, but they don''t change much so the graph does not show rate.","fill":0,"fillGradient":0,"gridPos":{"h":11,"w":18,"x":6,"y":5},"hiddenSeries":false,"id":38,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","repeatDirection":"h","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_site_iots{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
IoT","refId":"A"},{"expr":"unpoller_site_adopted{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Adopted","refId":"B"},{"expr":"unpoller_site_disabled{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Disabled","refId":"C"},{"expr":"unpoller_site_disconnected{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Disconnected","refId":"D"},{"expr":"unpoller_site_pending{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Pending","refId":"E"},{"expr":"unpoller_site_gateways{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Gateways","refId":"F"},{"expr":"unpoller_site_switches{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Switches","refId":"G"},{"expr":"unpoller_site_intenet_drops_total{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Drops","refId":"H"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Item
|
|
||||||
Counts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"short","label":"Item
|
|
||||||
Counts","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"cacheTimeout":null,"datasource":"VictoriaMetrics","gridPos":{"h":8,"w":3,"x":0,"y":8},"id":32,"links":[],"options":{"fieldOptions":{"calcs":["lastNotNull"],"defaults":{"color":{"mode":"thresholds"},"decimals":0,"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"max":400,"min":10,"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"#299c46","value":null},{"color":"rgba(237,
|
|
||||||
129, 40, 0.89)","value":100},{"color":"#d44a3a","value":200}]},"title":"Latency","unit":"s"},"overrides":[],"values":false},"orientation":"horizontal","showThresholdLabels":false,"showThresholdMarkers":true},"pluginVersion":"6.6.0","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"targets":[{"expr":"unpoller_site_latency_seconds{site_name=~\"$Site\"}","instant":true,"interval":"$Smooth","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"","type":"gauge"},{"cacheTimeout":null,"datasource":"VictoriaMetrics","gridPos":{"h":8,"w":3,"x":3,"y":8},"id":33,"links":[],"options":{"fieldOptions":{"calcs":["lastNotNull"],"defaults":{"color":{"mode":"thresholds"},"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"max":200,"min":1,"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"#299c46","value":null},{"color":"rgba(237,
|
|
||||||
129, 40, 0.89)","value":50},{"color":"#d44a3a","value":100}]},"title":"Speed Test
|
|
||||||
Ping","unit":"s"},"overrides":[],"values":false},"orientation":"horizontal","showThresholdLabels":false,"showThresholdMarkers":true},"pluginVersion":"6.6.0","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"targets":[{"expr":"unpoller_site_speedtest_ping{site_name=~\"$Site\"}","interval":"$Smooth","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"","type":"gauge"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":null,"description":"Shows
|
|
||||||
data transfer for each subsystem on the site. RX is on the negative axis.","fill":0,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":16},"hiddenSeries":false,"id":15,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"maxPerRow":2,"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","repeatDirection":"h","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_site_transmit_rate_bytes{site_name=~\"$Site\",
|
|
||||||
subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Tx","refId":"A"},{"expr":"unpoller_site_receive_rate_bytes{site_name=~\"$Site\",
|
|
||||||
subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Rx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Data
|
|
||||||
Transfer","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"Bps","label":"bytes
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"This
|
|
||||||
graphs shows clients connected to the site.","fill":0,"fillGradient":0,"gridPos":{"h":7,"w":24,"x":0,"y":24},"hiddenSeries":false,"id":2,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","repeat":null,"repeatDirection":"h","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_site_users{site_name=~\"$Site\",
|
|
||||||
subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Users","refId":"A"},{"expr":"unpoller_site_guests{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Guests","refId":"B"},{"expr":"unpoller_site_remote_user_active{site_name=~\"$Site\",
|
|
||||||
subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Active","refId":"C"},{"expr":"unpoller_site_remote_user_inactive{site_name=~\"$Site\",
|
|
||||||
subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Inactive","refId":"D"},{"expr":"unpoller_site_stations{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}","interval":"$Smooth","legendFormat":"{{subsystem}}
|
|
||||||
Stations","refId":"E"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Client
|
|
||||||
Counts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"This
|
|
||||||
graphs shows clients connected to the site.","fill":0,"fillGradient":0,"gridPos":{"h":7,"w":24,"x":0,"y":31},"hiddenSeries":false,"id":39,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","repeatDirection":"h","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_site_remote_user_transmit_bytes_total{site_name=~\"$Site\"}[$__interval])","interval":"$Smooth","legendFormat":"VPN
|
|
||||||
Users Tx","refId":"A"},{"expr":"rate(unpoller_site_remote_user_receive_bytes_total{site_name=~\"$Site\"}[$__interval])","interval":"$Smooth","legendFormat":"VPN
|
|
||||||
Users Rx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"VPN
|
|
||||||
Users Data Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"Bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"This
|
|
||||||
graph only works if DPI is enabled on the controller and DPI collection is enabled
|
|
||||||
in UniFi Poller. Rx is on the negative axis.","fill":0,"fillGradient":0,"gridPos":{"h":17,"w":24,"x":0,"y":38},"hiddenSeries":false,"id":45,"legend":{"alignAsTable":true,"avg":true,"current":false,"hideEmpty":true,"hideZero":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","repeatDirection":"h","scopedVars":{"Site":{"selected":false,"text":"Home
|
|
||||||
(default)","value":"Home (default)"}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by (category) (rate(unpoller_site_dpi_receive_bytes{site_name=~\"$Site\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"{{category}}
|
|
||||||
Rx","refId":"A"},{"expr":"sum by (category) (rate(unpoller_site_dpi_transmit_bytes{site_name=~\"$Site\"}[$__interval]))","hide":false,"interval":"$Smooth","legendFormat":"{{category}}
|
|
||||||
Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Data
|
|
||||||
Transfer by Category","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"Bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"repeat":"Site","title":"Site:
|
|
||||||
$Site","type":"row"}],"refresh":"1m","schemaVersion":22,"style":"dark","tags":["unifi","unifi-poller"],"templating":{"list":[{"allValue":null,"current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_site_transmit_rate_bytes,source)","hide":0,"includeAll":true,"label":"","multi":true,"name":"Controller","options":[],"query":"label_values(unpoller_site_transmit_rate_bytes,source)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_site_transmit_rate_bytes{source=~\"$Controller\"},site_name)","hide":2,"includeAll":true,"label":"","multi":false,"name":"Site","options":[],"query":"label_values(unpoller_site_transmit_rate_bytes{source=~\"$Controller\"},site_name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(subsystem)","hide":2,"includeAll":true,"label":null,"multi":true,"name":"Subsystem","options":[],"query":"label_values(subsystem)","refresh":1,"regex":"","skipUrlSync":false,"sort":0,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"selected":true,"text":"2m","value":"2m"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"Smooth","options":[{"selected":false,"text":"30s","value":"30s"},{"selected":true,"text":"1m","value":"1m"},{"selected":false,"text":"2m","value":"2m"},{"selected":false,"text":"5m","value":"5m"},{"selected":false,"text":"10m","value":"10m"}],"query":"30s,1m,2m,5m,10m","skipUrlSync":false,"type":"custom"}]},"time":{"from":"now-3h","to":"now"},"timepicker":{"nowDelay":"5s","refresh_intervals":["30s","1m","5m","15m","30m","1h","2h"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"UniFi-Poller:
|
|
||||||
Network Sites - Prometheus","uid":"9WaGWZaZk","version":9}'
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/part-of: unpoller
|
|
||||||
grafana_dashboard: "1"
|
|
||||||
name: unpoller-dashboard-network-sites
|
|
||||||
namespace: monitoring
|
|
||||||
@@ -1,266 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
uap-insights.json: '{"annotations":{"list":[{"$$hashKey":"object:69","builtIn":1,"datasource":"--
|
|
||||||
Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations
|
|
||||||
& Alerts","type":"dashboard"}]},"description":"UniFi Poller v2.0.1 Displays detailed
|
|
||||||
information for wireless access points in a UniFi network using Prometheus.","editable":true,"gnetId":11314,"graphTooltip":1,"id":null,"iteration":1592125488769,"links":[{"asDropdown":true,"icon":"external
|
|
||||||
link","includeVars":false,"keepTime":true,"tags":["unifi-poller","unifi"],"title":"UniFi
|
|
||||||
Poller","type":"dashboards"},{"icon":"question","tags":[],"title":"Help","type":"link","url":"https://golift.io/unifi-poller/issues"},{"icon":"doc","tags":[],"title":"Wiki","type":"link","url":"https://golift.io/unifi-poller/wiki"},{"icon":"bolt","tags":[],"title":"Discord","type":"link","url":"https://discord.gg/KnyKYt2"}],"panels":[{"content":"<br>\n<br>\n<center><b><font
|
|
||||||
size=\"6px\">Unifi UAP</font></b></center>\n","datasource":"${DS_UNIFI_POLLER}","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"gridPos":{"h":3,"w":4,"x":0,"y":0},"id":34,"links":[],"mode":"html","title":"","transparent":true,"type":"text"},{"aliasColors":{"Channel
|
|
||||||
11":"#37872D","Channel 36":"#1F60C4","Channel 44":"#8F3BB8"},"breakPoint":"50%","cacheTimeout":null,"combine":{"label":"Others","threshold":0},"datasource":"VictoriaMetrics","decimals":0,"description":"Visualize
|
|
||||||
wireless channel usage w/ wired client counts.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"70%","format":"short","gridPos":{"h":10,"w":6,"x":4,"y":0},"hideTimeOverride":false,"id":52,"interval":null,"legend":{"header":"","percentage":true,"percentageDecimals":0,"show":true,"values":false},"legendType":"Right
|
|
||||||
side","links":[],"maxDataPoints":3,"nullPointMode":"connected","pieType":"pie","strokeWidth":"3","targets":[{"expr":"count
|
|
||||||
by (channel) (unpoller_client_roam_count_total{site_name=~\"$Site\", ap_name=~\"$AP\"})\n","instant":false,"interval":"$Smooth","legendFormat":"Ch
|
|
||||||
{{channel}}","refId":"B"}],"timeFrom":null,"title":"Clients / Channel","transparent":true,"type":"piechart","valueName":"current"},{"aliasColors":{"ac":"#37872D","g":"#E0B400","na":"#1F60C4","ng":"#8F3BB8"},"breakPoint":"25%","cacheTimeout":null,"combine":{"label":"Others","threshold":0},"datasource":"VictoriaMetrics","decimals":0,"description":"Visualize
|
|
||||||
how many clients are connected to which radios/APs.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"70%","format":"short","gridPos":{"h":10,"w":7,"x":10,"y":0},"hideTimeOverride":false,"id":54,"interval":null,"legend":{"header":"","percentage":true,"show":true,"sort":"current","sortDesc":true,"values":true},"legendType":"Right
|
|
||||||
side","links":[],"maxDataPoints":3,"nullPointMode":"connected","pieType":"pie","strokeWidth":"3","targets":[{"expr":"count
|
|
||||||
by (radio_desc) (unpoller_client_uptime_seconds{site_name=~\"$Site\", ap_name=~\"$AP\"})","instant":false,"interval":"$Smooth","legendFormat":"{{radio_desc}}","refId":"A"}],"timeFrom":null,"title":"Clients
|
|
||||||
/ AP Radio","transparent":true,"type":"piechart","valueName":"current"},{"aliasColors":{},"breakPoint":"50%","cacheTimeout":null,"combine":{"label":"Others","threshold":"0.01"},"datasource":"VictoriaMetrics","decimals":0,"description":"This
|
|
||||||
shows an OUI breakdown from Unifi''s perspective.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"70%","format":"short","gridPos":{"h":10,"w":7,"x":17,"y":0},"hideTimeOverride":false,"id":56,"interval":null,"legend":{"header":"Count","percentage":true,"percentageDecimals":0,"show":true,"sortDesc":false,"values":true},"legendType":"Right
|
|
||||||
side","links":[],"maxDataPoints":3,"nullPointMode":"connected","pieType":"pie","strokeWidth":1,"targets":[{"expr":"count
|
|
||||||
by (oui) (unpoller_client_uptime_seconds{site_name=~\"$Site\", ap_name=~\"$AP\"})","instant":false,"interval":"$Smooth","legendFormat":"e
|
|
||||||
{{oui}}","refId":"A"}],"timeFrom":null,"title":"Client / MAC OUI","transparent":true,"type":"piechart","valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"datasource":"VictoriaMetrics","description":"","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":2,"x":0,"y":3},"id":48,"interval":null,"isNew":true,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"80%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false},"tableColumn":"","targets":[{"expr":"sum(unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$AP\", station_type=\"user\"})","instant":true,"refId":"A"}],"thresholds":"","timeFrom":null,"title":"Users","type":"singlestat","valueFontSize":"110%","valueMaps":[],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":false,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"datasource":"VictoriaMetrics","description":"","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":2,"x":2,"y":3},"id":60,"interval":null,"isNew":true,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"80%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false},"tableColumn":"","targets":[{"expr":"sum(unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$AP\", station_type=\"guest\"})","instant":true,"refId":"A"}],"thresholds":"","timeFrom":null,"title":"Guests","type":"singlestat","valueFontSize":"110%","valueMaps":[],"valueName":"current"},{"bgColor":"#3f2b5b","clockType":"12
|
|
||||||
hour","countdownSettings":{"customFormat":null,"endCountdownTime":"2018-04-29T21:47:00.000Z","endText":"00:00:00"},"datasource":"${DS_UNIFI_POLLER}","dateSettings":{"dateFormat":"YYYY-MM-DD","fontSize":"12px","fontWeight":"bold","showDate":true},"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"gridPos":{"h":3,"w":4,"x":0,"y":7},"id":32,"links":[],"mode":"time","offsetFromUtc":null,"offsetFromUtcMinutes":null,"options":{"bgColor":"","clockType":"24
|
|
||||||
hour","countdownSettings":{"endCountdownTime":"2020-06-14T00:36:42-07:00","endText":"00:00:00"},"dateSettings":{"dateFormat":"YYYY-MM-DD","fontSize":"20px","fontWeight":"normal","showDate":false},"mode":"time","timeSettings":{"fontSize":"12px","fontWeight":"normal"},"timezone":"","timezoneSettings":{"fontSize":"12px","fontWeight":"normal","showTimezone":false,"zoneFormat":"offsetAbbv"}},"refreshSettings":{"syncWithDashboard":false},"timeSettings":{"customFormat":"HH:mm:ss","fontSize":"30px","fontWeight":"normal"},"timezone":null,"timezoneSettings":{"fontSize":"12px","fontWeight":"normal","showTimezone":false,"zoneFormat":"offsetAbbv"},"title":"Now","type":"grafana-clock-panel"},{"columns":[],"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"100%","gridPos":{"h":6,"w":24,"x":0,"y":10},"id":1,"isNew":true,"links":[],"pageSize":null,"scroll":false,"showHeader":true,"sort":{"col":11,"desc":true},"styles":[{"$$hashKey":"object:9911","alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"$$hashKey":"object:9912","alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Value #A","thresholds":[],"type":"hidden","unit":"dtdurations"},{"$$hashKey":"object:9913","alias":"Name","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":true,"linkUrl":"http:","pattern":"name","preserveFormat":false,"sanitize":false,"thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9915","alias":"Model","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"model","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9916","alias":"Device
|
|
||||||
MAC","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"mac","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9917","alias":"Unifi
|
|
||||||
Serial #","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"serial","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9918","alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9919","alias":"Version","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"version","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9923","alias":"Address","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"ip","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9924","alias":"Type","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"type","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:9925","alias":"Type","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"type","thresholds":[],"type":"string","unit":"decbytes"},{"$$hashKey":"object:9926","alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #B","thresholds":[],"type":"number","unit":"s"},{"$$hashKey":"object:9928","alias":"Bytes","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":1,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"bytes"}],"targets":[{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version) (unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
name=~\"$AP\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"A"},{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version) (unpoller_device_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
name=~\"$AP\"})","format":"table","hide":false,"instant":true,"interval":"","legendFormat":"","refId":"B"},{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version) (unpoller_device_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$AP\"})","format":"table","hide":false,"instant":true,"interval":"","legendFormat":"","refId":"C"}],"timeFrom":null,"title":"Access
|
|
||||||
Point Details","transform":"table","type":"table-old"},{"columns":[],"datasource":"VictoriaMetrics","description":"The
|
|
||||||
counters in this table represent uptime totals and do not change with the time
|
|
||||||
range selector. ","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"100%","gridPos":{"h":10,"w":24,"x":0,"y":16},"id":49,"isNew":true,"links":[],"pageSize":null,"scroll":false,"showHeader":true,"sort":{"col":15,"desc":true},"styles":[{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"alias":"BSSID","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":true,"linkUrl":"http:","pattern":"bssid","preserveFormat":false,"sanitize":false,"thresholds":[],"type":"string","unit":"short"},{"alias":"ESSID","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"essid","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"job","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"__name__","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Serial","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"serial","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"type","thresholds":[],"type":"hidden","unit":"short"},{"alias":"MAC","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"mac","thresholds":[],"type":"string","unit":"short"},{"alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"alias":"VAP","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"vap_name","thresholds":[],"type":"string","unit":"short"},{"alias":"Version","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"version","thresholds":[],"type":"string","unit":"short"},{"alias":"CCQ","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #A","thresholds":[],"type":"number","unit":"percentunit"},{"alias":"Model","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"model","thresholds":[],"type":"string","unit":"short"},{"alias":"Name","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"radio_name","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"instance","thresholds":[],"type":"hidden","unit":"short"},{"alias":"AP
|
|
||||||
Name","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"mappingType":1,"pattern":"name","thresholds":[],"type":"string","unit":"short"},{"alias":"Usage","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"usage","thresholds":[],"type":"string","unit":"short"},{"alias":"Radio","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"radio","thresholds":[],"type":"string","unit":"short"},{"alias":"Avg
|
|
||||||
Client Sig","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"mappingType":1,"pattern":"Value
|
|
||||||
#B","thresholds":[],"type":"number","unit":"dBm"},{"alias":"Rx Drops","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"short"},{"alias":"Controller","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"source","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Tx
|
|
||||||
Drops","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#E","thresholds":[],"type":"number","unit":"short"},{"alias":"Bytes Rx","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #G","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"Bytes
|
|
||||||
Tx","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#F","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"Rx Packets","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #H","thresholds":[],"type":"number","unit":"short"},{"alias":"Tx
|
|
||||||
Packets","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value
|
|
||||||
#I","thresholds":[],"type":"number","unit":"short"}],"targets":[{"expr":"sum by
|
|
||||||
(bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source) (unpoller_device_vap_ccq_ratio{site_name=~\"$Site\",
|
|
||||||
name=~\"$AP\"})","format":"table","instant":true,"interval":"","refId":"A"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_average_client_signal{site_name=~\"$Site\", name=~\"$AP\"})","format":"table","hide":false,"instant":true,"interval":"","refId":"B"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_receive_dropped_total{site_name=~\"$Site\", name=~\"$AP\"})
|
|
||||||
","format":"table","hide":false,"instant":true,"interval":"","refId":"C"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_transmit_dropped_total{site_name=~\"$Site\", name=~\"$AP\"})
|
|
||||||
","format":"table","hide":false,"instant":true,"interval":"","refId":"E"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_transmit_bytes_total{site_name=~\"$Site\", name=~\"$AP\"})
|
|
||||||
","format":"table","hide":false,"instant":true,"interval":"","refId":"F"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_receive_bytes_total{site_name=~\"$Site\", name=~\"$AP\"})
|
|
||||||
","format":"table","hide":false,"instant":true,"interval":"","refId":"G"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_receive_packets_total{site_name=~\"$Site\", name=~\"$AP\"})
|
|
||||||
","format":"table","hide":false,"instant":true,"interval":"","refId":"H"},{"expr":"sum
|
|
||||||
by (bssid,essid,ap_name,name,radio,radio_name,vap_name,site_name,usage,source)
|
|
||||||
(unpoller_device_vap_transmit_packets_total{site_name=~\"$Site\", name=~\"$AP\"})
|
|
||||||
","format":"table","hide":false,"instant":true,"interval":"","refId":"I"}],"timeFrom":null,"title":"Networks
|
|
||||||
/ UAP","transform":"table","transparent":true,"type":"table-old"},{"aliasColors":{"wap-lower":"dark-green","wap-upper":"dark-purple"},"bars":false,"cacheTimeout":null,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":26},"hiddenSeries":false,"hideTimeOverride":true,"id":30,"interval":"","legend":{"avg":false,"current":false,"hideEmpty":true,"max":true,"min":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_cpu_utilization_ratio{site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"UAP
|
|
||||||
CPU Usage","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":"CPU
|
|
||||||
Utilization","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"wap-lower":"dark-green","wap-upper":"dark-purple"},"bars":false,"cacheTimeout":null,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":26},"hiddenSeries":false,"hideTimeOverride":true,"id":47,"interval":"","legend":{"avg":false,"current":false,"hideEmpty":true,"max":true,"min":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_memory_utilization_ratio{site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"UAP
|
|
||||||
Memory Usage","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":"Memory
|
|
||||||
Utilization","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"wap-lower
|
|
||||||
load1":"dark-green","wap-lower load15":"dark-blue","wap-upper load1":"dark-purple","wap-upper
|
|
||||||
load15":"dark-yellow"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":33},"hiddenSeries":false,"id":3,"isNew":true,"legend":{"alignAsTable":false,"avg":false,"current":false,"hideEmpty":true,"hideZero":true,"max":true,"min":false,"show":true,"sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/load15$/","fill":0,"lines":true,"linewidth":6},{}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_load_average_1{site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load1","refId":"A"},{"expr":"unpoller_device_load_average_5{site_name=~\"$Site\",name=~\"$AP\"}","hide":true,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load5","refId":"B"},{"expr":"unpoller_device_load_average_15{site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load15","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"UAP
|
|
||||||
Load Average","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"none","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":33},"hiddenSeries":false,"id":46,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":true,"targets":[{"expr":"unpoller_device_stations{site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
users","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Clients
|
|
||||||
/ UAP","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"none","label":"","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Devices
|
|
||||||
TX / RX bytes per second grouped by OUI. RX on negative axis.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":40},"hiddenSeries":false,"id":42,"legend":{"alignAsTable":true,"avg":true,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(unpoller_client_receive_rate_bytes{site_name=~\"$Site\",ap_name=~\"$AP\"}) by
|
|
||||||
(oui)","interval":"$Smooth","legendFormat":"{{oui}} Rx","refId":"A"},{"expr":"sum
|
|
||||||
(unpoller_client_transmit_rate_bytes{site_name=~\"$Site\",ap_name=~\"$AP\"}) by
|
|
||||||
(oui)","interval":"$Smooth","legendFormat":"{{oui}} Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Wireless
|
|
||||||
Traffic / Vendor","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":40},"hiddenSeries":false,"id":19,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":true,"max":true,"min":true,"rightSide":true,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":true,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(unpoller_device_radio_stations{radio=\"ng\", site_name=~\"$Site\",name=~\"$AP\",
|
|
||||||
station_type=\"guest\"}) by (radio,name)","hide":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Guests 2,4GHz","refId":"A"},{"expr":"sum (unpoller_device_radio_stations{radio=\"ng\",
|
|
||||||
site_name=~\"$Site\",name=~\"$AP\", station_type=\"user\"}) by (radio,name)","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Users 2.4GHz","refId":"B"},{"expr":"sum (unpoller_device_radio_stations{radio=\"na\",
|
|
||||||
site_name=~\"$Site\",name=~\"$AP\", station_type=\"user\"}) by (radio,name)","hide":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Users 5GHz","refId":"C"},{"expr":"sum (unpoller_device_radio_stations{radio=\"na\",
|
|
||||||
site_name=~\"$Site\",name=~\"$AP\", station_type=\"guest\"}) by (radio,name)","hide":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Guests 5GHz","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Users
|
|
||||||
& Guests / Radio Band","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"none","label":"","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":48},"hiddenSeries":false,"id":59,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":true,"max":true,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_vap_average_client_signal{name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{vap_name}} {{radio}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Average
|
|
||||||
AP Client Signal","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"dBm","label":"Average
|
|
||||||
Client Signal","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":48},"hiddenSeries":false,"id":44,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":true,"max":true,"min":true,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"avg(unpoller_client_rssi_db{ap_name=~\"$AP\"})
|
|
||||||
by (ap_name, radio_name)","interval":"$Smooth","legendFormat":"{{ap_name}} {{radio_name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Average
|
|
||||||
AP Client RSSI","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":0,"format":"dBm","label":"Average
|
|
||||||
Client RSSI","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":56},"hiddenSeries":false,"id":18,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":true,"max":true,"min":true,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_vap_ccq_ratio{site_name=~\"$Site\",name=~\"$AP\",
|
|
||||||
radio=\"na\"}","interval":"$Smooth","legendFormat":"{{name}} {{vap_name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"5
|
|
||||||
GHz Client Connection Quality","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":"Average
|
|
||||||
CCQ % / VAP","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":56},"hiddenSeries":false,"id":58,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":true,"max":true,"min":true,"rightSide":true,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_vap_ccq_ratio{site_name=~\"$Site\",name=~\"$AP\",
|
|
||||||
radio=\"ng\"}","interval":"1m","legendFormat":"{{name}} {{vap_name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"2.4
|
|
||||||
GHz Client Connection Quality","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":"Average
|
|
||||||
CCQ % / VAP","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":64},"hiddenSeries":false,"id":8,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":""}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_radio_channel_utilization_receive_ratio{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Rx","refId":"B"},{"expr":"unpoller_device_radio_channel_utilization_transmit_ratio{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Tx","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"5
|
|
||||||
GHz Channel Utilization","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"percentunit","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"Displays
|
|
||||||
2.4GHz usage.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":64},"hiddenSeries":false,"id":27,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":""}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_radio_channel_utilization_receive_ratio{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{radio}} Rx","refId":"B"},{"expr":"unpoller_device_radio_channel_utilization_transmit_ratio{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{radio}} Tx","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"2.4
|
|
||||||
GHz Channel Utilization","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"percentunit","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"RX
|
|
||||||
is on the negative Axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":72},"hiddenSeries":false,"id":20,"interval":"","isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_bytes_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[5m]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Tx","refId":"A"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_bytes_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[5m]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Rx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"5
|
|
||||||
GHz Traffic","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"RX
|
|
||||||
is on the negative Axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":72},"hiddenSeries":false,"id":24,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_bytes_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[5m]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Tx","refId":"A"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_bytes_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[5m]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Rx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"2.4
|
|
||||||
GHz Traffic","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"PPS
|
|
||||||
on the na band. In is on the negative Axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":79},"hiddenSeries":false,"id":22,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/In$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_packets_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","hide":false,"interval":"$Smooth","legendFormat":"{{name}} Out","refId":"A"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_packets_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} In","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"5
|
|
||||||
GHz Packets","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"pps","label":"PPS","logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"PPS
|
|
||||||
on the ng band calculated in 30 second buckets. In is on the negative Axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":79},"hiddenSeries":false,"id":25,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/In$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_packets_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Out","refId":"A"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_packets_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} In","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"2.4
|
|
||||||
GHz Packets","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"pps","label":"PPS","logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"Visualize
|
|
||||||
packet errors (several types) per second in the 5GHz band.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":86},"hiddenSeries":false,"id":57,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/In$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_dropped_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Drops Rx","refId":"A"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_dropped_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Drops Tx","refId":"B"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_errors_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Errors Rx","refId":"C"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_errors_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Errors Tx","refId":"D"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_crypts_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Crypts Rx","refId":"E"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_frags_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Frags Rx","refId":"F"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_nwids_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Nwids Rx","refId":"G"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_retries_total{radio=\"na\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Retries Tx","refId":"H"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"5
|
|
||||||
GHz Drops/Errors","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"In
|
|
||||||
is on the negative axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":86},"hiddenSeries":false,"id":26,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/In$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_dropped_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Drops Rx","refId":"A"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_dropped_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Drops Tx","refId":"B"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_errors_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Errors Rx","refId":"C"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_errors_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Errors Tx","refId":"D"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_crypts_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Crypts Rx","refId":"E"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_frags_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Frags Rx","refId":"F"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_receive_nwids_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Nwids Rx","refId":"G"},{"expr":"sum
|
|
||||||
(rate(unpoller_device_vap_transmit_retries_total{radio=\"ng\",site_name=~\"$Site\",name=~\"$AP\"}[$__interval]))
|
|
||||||
by (name)","interval":"$Smooth","legendFormat":"{{name}} Retries Tx","refId":"H"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"2.4
|
|
||||||
GHz Drops/Errors","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}}],"refresh":"1m","schemaVersion":25,"style":"dark","tags":["unifi","uap","unifi-poller"],"templating":{"list":[{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{type=\"uap\"},source)","hide":2,"includeAll":true,"label":"","multi":true,"name":"Controller","options":[],"query":"label_values(unpoller_device_info{type=\"uap\"},source)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{source=~\"$Controller\",
|
|
||||||
type=\"uap\"},site_name)","hide":0,"includeAll":true,"label":"","multi":true,"name":"Site","options":[],"query":"label_values(unpoller_device_info{source=~\"$Controller\",
|
|
||||||
type=\"uap\"},site_name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
type=~\"uap|udm\",model!=\"UDMPRO\"},name)","hide":0,"includeAll":true,"label":"UniFi
|
|
||||||
AP:","multi":true,"name":"AP","options":[],"query":"label_values(unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
type=~\"uap|udm\",model!=\"UDMPRO\"},name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":null,"current":{"selected":true,"tags":[],"text":"2m","value":"2m"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"Smooth","options":[{"selected":false,"text":"30s","value":"30s"},{"selected":false,"text":"1m","value":"1m"},{"selected":true,"text":"2m","value":"2m"},{"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,2m,5m,10m,15m,30m,1h","skipUrlSync":false,"type":"custom"}]},"time":{"from":"now-3h","to":"now"},"timepicker":{"nowDelay":"","refresh_intervals":["30s","1m","5m","15m","30m","1h","2h"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"UniFi-Poller:
|
|
||||||
UAP Insights - Prometheus","uid":"g5wFWqxZk","version":24}'
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/part-of: unpoller
|
|
||||||
grafana_dashboard: "1"
|
|
||||||
name: unpoller-dashboard-uap-insights
|
|
||||||
namespace: monitoring
|
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
usg-insights.json: '{"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana
|
|
||||||
--","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","limit":100,"name":"Annotations
|
|
||||||
& Alerts","showIn":0,"type":"dashboard"}]},"description":"UniFi Poller v2.0.1
|
|
||||||
Displays detailed information for security gateways in a UniFi network using Prometheus.","editable":true,"gnetId":11313,"graphTooltip":2,"id":null,"iteration":1592125878109,"links":[{"asDropdown":true,"icon":"external
|
|
||||||
link","includeVars":false,"keepTime":true,"tags":["unifi-poller"],"title":"UniFi
|
|
||||||
Poller","type":"dashboards"},{"icon":"question","tags":[],"title":"Help","type":"link","url":"https://golift.io/unifi-poller/issues"},{"icon":"doc","tags":[],"title":"Wiki","type":"link","url":"https://golift.io/unifi-poller/wiki"},{"icon":"bolt","tags":[],"title":"Discord","type":"link","url":"https://discord.gg/KnyKYt2"}],"panels":[{"columns":[],"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"100%","gridPos":{"h":5,"w":24,"x":0,"y":0},"id":60,"isNew":true,"links":[],"pageSize":null,"scroll":false,"showHeader":true,"sort":{"col":11,"desc":true},"styles":[{"$$hashKey":"object:1420","alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"$$hashKey":"object:1421","alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Value #A","thresholds":[],"type":"hidden","unit":"dtdurations"},{"$$hashKey":"object:1422","alias":"Name","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":true,"linkUrl":"http:","pattern":"name","preserveFormat":false,"sanitize":false,"thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1424","alias":"Model","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"model","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1425","alias":"Device
|
|
||||||
MAC","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"mac","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1426","alias":"Unifi
|
|
||||||
Serial #","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"serial","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1427","alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1428","alias":"Version","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"version","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1432","alias":"Address","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"ip","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1433","alias":"Data","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"decbytes"},{"$$hashKey":"object:1434","alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #B","thresholds":[],"type":"number","unit":"s"},{"$$hashKey":"object:1435","alias":"Controller","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"source","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:1436","alias":"Type","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"type","thresholds":[],"type":"string","unit":"short"}],"targets":[{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version,source) (unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"A"},{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version,source) (unpoller_device_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"B"},{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version,source) (unpoller_device_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"C"}],"timeFrom":null,"title":"Gateway
|
|
||||||
Details","transform":"table","type":"table-old"},{"collapsed":true,"datasource":"${DS_UNIFI_POLLER}","gridPos":{"h":1,"w":24,"x":0,"y":5},"id":50,"panels":[{"cacheTimeout":null,"datasource":"VictoriaMetrics","description":"","fieldConfig":{"defaults":{"custom":{},"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"min":0,"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"dark-purple","value":null}]},"unit":"s"},"overrides":[]},"gridPos":{"h":3,"w":4,"x":0,"y":6},"hideTimeOverride":false,"id":64,"links":[],"options":{"colorMode":"value","graphMode":"area","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["mean"],"fields":"","values":false}},"pluginVersion":"7.0.3","scopedVars":{"Site":{"selected":false}},"targets":[{"expr":"unpoller_device_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Uptime","refId":"B"}],"timeFrom":null,"timeShift":null,"title":"","transparent":true,"type":"stat"},{"cacheTimeout":null,"datasource":"VictoriaMetrics","description":"","fieldConfig":{"defaults":{"custom":{},"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"max":100,"min":0,"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"dark-purple","value":null}]},"unit":"Mbits"},"overrides":[]},"gridPos":{"h":9,"w":6,"x":4,"y":6},"hideTimeOverride":false,"id":44,"links":[],"options":{"colorMode":"value","graphMode":"area","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false}},"pluginVersion":"7.0.3","scopedVars":{"Site":{"selected":false}},"targets":[{"expr":"unpoller_device_speedtest_upload{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Upload","refId":"A"},{"expr":"unpoller_device_speedtest_download{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Download","refId":"B"}],"timeFrom":null,"timeShift":null,"title":"Speed Test","transparent":true,"type":"stat"},{"cacheTimeout":null,"datasource":"VictoriaMetrics","description":"","fieldConfig":{"defaults":{"custom":{},"displayName":"${__series.name}","links":[],"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"dark-purple","value":null}]},"unit":"s"},"overrides":[]},"gridPos":{"h":9,"w":9,"x":10,"y":6},"hideTimeOverride":false,"id":63,"links":[],"options":{"colorMode":"value","graphMode":"area","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false}},"pluginVersion":"7.0.3","scopedVars":{"Site":{"selected":false}},"targets":[{"expr":"sum
|
|
||||||
by (name) (unpoller_device_speedtest_runtime_seconds{site_name=~\"$Site\", name=~\"$Gateway\"})","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Test Time","refId":"A"},{"expr":"sum by (name) (unpoller_device_uplink_latency_seconds{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"})","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
Uplink Latency","refId":"C"}],"timeFrom":null,"timeShift":null,"title":"","transparent":true,"type":"stat"},{"cacheTimeout":null,"datasource":"VictoriaMetrics","fieldConfig":{"defaults":{"custom":{},"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"dark-purple","value":null},{"color":"rgba(237,
|
|
||||||
129, 40, 0.89)","value":50},{"color":"#d44a3a","value":80}]},"unit":"percentunit"},"overrides":[]},"gridPos":{"h":9,"w":5,"x":19,"y":6},"hideTimeOverride":false,"id":37,"links":[],"options":{"colorMode":"value","graphMode":"area","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false}},"pluginVersion":"7.0.3","scopedVars":{"Site":{"selected":false}},"targets":[{"expr":"unpoller_device_cpu_utilization_ratio{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
CPU %","refId":"A"},{"expr":"unpoller_device_memory_utilization_ratio{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
RAM %","refId":"B"}],"timeFrom":null,"timeShift":null,"title":"","transparent":true,"type":"stat"},{"cacheTimeout":null,"colorBackground":false,"colorPostfix":true,"colorValue":true,"colors":["#FA6400","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":0,"description":"WAN
|
|
||||||
Port Speed","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":true,"thresholdMarkers":true},"gridPos":{"h":2,"w":2,"x":0,"y":9},"hideTimeOverride":true,"id":46,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"M","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false}},"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":false},"tableColumn":"unpoller_device_uplink_speed_mbps{instance=\"UniFi-Poller:9130\",
|
|
||||||
job=\"unpoller\", name=\"gateway\", port=\"all\", site_name=\"Home (default)\",
|
|
||||||
source=\"https://unifi-controller:8443\"}","targets":[{"expr":"unpoller_device_uplink_speed_mbps{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","instant":true,"refId":"A"}],"thresholds":"","timeFrom":null,"title":"Uplink","transparent":true,"type":"singlestat","valueFontSize":"50%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#5794F2","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":true,"thresholdMarkers":true},"gridPos":{"h":2,"w":2,"x":2,"y":9},"hideTimeOverride":true,"id":52,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false}},"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"unpoller_device_stations{instance=\"UniFi-Poller:9130\",
|
|
||||||
job=\"unpoller\", name=\"gateway\", site_name=\"Home (default)\", source=\"https://unifi-controller:8443\",
|
|
||||||
station_type=\"desktop\", type=\"ugw\"}","targets":[{"expr":"unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\",station_type=\"desktop\"}","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"title":"Desktop","transparent":true,"type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#5794F2","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":true,"thresholdMarkers":true},"gridPos":{"h":2,"w":2,"x":0,"y":11},"hideTimeOverride":true,"id":38,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false}},"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"unpoller_device_stations{instance=\"UniFi-Poller:9130\",
|
|
||||||
job=\"unpoller\", name=\"gateway\", site_name=\"Home (default)\", source=\"https://unifi-controller:8443\",
|
|
||||||
station_type=\"user\", type=\"ugw\"}","targets":[{"expr":"unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\",station_type=\"user\"}","instant":true,"refId":"A"}],"thresholds":"","timeFrom":null,"title":"Users","transparent":true,"type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#5794F2","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":true,"thresholdMarkers":true},"gridPos":{"h":2,"w":2,"x":2,"y":11},"hideTimeOverride":true,"id":53,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false}},"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"unpoller_device_stations{instance=\"UniFi-Poller:9130\",
|
|
||||||
job=\"unpoller\", name=\"gateway\", site_name=\"Home (default)\", source=\"https://unifi-controller:8443\",
|
|
||||||
station_type=\"mobile\", type=\"ugw\"}","targets":[{"expr":"unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\",station_type=\"mobile\"}","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"title":"Mobile","transparent":true,"type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#FADE2A","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":true,"thresholdMarkers":true},"gridPos":{"h":2,"w":2,"x":0,"y":13},"hideTimeOverride":true,"id":39,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false}},"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"unpoller_device_stations{instance=\"UniFi-Poller:9130\",
|
|
||||||
job=\"unpoller\", name=\"gateway\", site_name=\"Home (default)\", source=\"https://unifi-controller:8443\",
|
|
||||||
station_type=\"guest\", type=\"ugw\"}","targets":[{"expr":"unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\",station_type=\"guest\"}","instant":true,"refId":"A"}],"thresholds":"","timeFrom":null,"title":"Guests","transparent":true,"type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#5794F2","rgba(237,
|
|
||||||
129, 40, 0.89)","#d44a3a"],"datasource":"VictoriaMetrics","decimals":0,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"format":"none","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":true,"thresholdMarkers":true},"gridPos":{"h":2,"w":2,"x":2,"y":13},"hideTimeOverride":true,"id":54,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value
|
|
||||||
to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"","prefixFontSize":"50%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"scopedVars":{"Site":{"selected":false}},"sparkline":{"fillColor":"rgba(31,
|
|
||||||
118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"unpoller_device_stations{instance=\"UniFi-Poller:9130\",
|
|
||||||
job=\"unpoller\", name=\"gateway\", site_name=\"Home (default)\", source=\"https://unifi-controller:8443\",
|
|
||||||
station_type=\"handheld\", type=\"ugw\"}","targets":[{"expr":"unpoller_device_stations{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\",station_type=\"handheld\"}","instant":true,"interval":"$Smooth","refId":"A"}],"thresholds":"","timeFrom":null,"title":"Handheld","transparent":true,"type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"current"},{"aliasColors":{"gateway
|
|
||||||
load1":"dark-purple","gateway load15":"dark-green"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":10,"w":24,"x":0,"y":15},"hiddenSeries":false,"id":56,"isNew":true,"legend":{"alignAsTable":false,"avg":false,"current":false,"max":true,"min":false,"rightSide":false,"show":true,"sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/load15$/","fill":0,"lines":true,"linewidth":6},{}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_load_average_1{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","interval":"$Smooth","legendFormat":"{{name}} load1","refId":"A"},{"expr":"unpoller_device_load_average_5{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","hide":true,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load5","refId":"B"},{"expr":"unpoller_device_load_average_15{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","interval":"$Smooth","legendFormat":"{{name}} load15","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"USG
|
|
||||||
Load Average","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"none","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
wan Bytes Rx":"dark-green","gateway wan Bytes Tx":"dark-purple"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Spikes
|
|
||||||
on this graph that are missing from the LAN graph indicate gateway-originated
|
|
||||||
traffic, like a scheduled speed test. Rx is on the negative axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":11,"w":12,"x":0,"y":25},"hiddenSeries":false,"id":3,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"show":true,"sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_wan_receive_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Bytes Rx","refId":"A"},{"expr":"rate(unpoller_device_wan_transmit_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Bytes Tx","refId":"B"},{"expr":"unpoller_device_wan_transmit_rate_bytes{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","hide":true,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Bytes Tx","refId":"C"},{"expr":"unpoller_device_wan_receive_rate_bytes{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}","hide":true,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Bytes Rx","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"WAN
|
|
||||||
Throughput","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"bytes
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
lan Bytes Rx":"dark-green","gateway lan Bytes Tx":"dark-purple"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Spikes
|
|
||||||
on this graph that do not appear on the WAN graph indicate inter-VLAN-routing.
|
|
||||||
Rx is on the negative axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":11,"w":12,"x":12,"y":25},"hiddenSeries":false,"id":35,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"show":true,"sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_lan_receive_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Bytes Rx","refId":"A"},{"expr":"rate(unpoller_device_lan_transmit_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Bytes Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"LAN
|
|
||||||
Throughput","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"bytes
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
wan Packets Rx":"dark-green","gateway wan Packets Tx":"dark-purple"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":null,"description":"PPS
|
|
||||||
on the WAN interface. Rx is on the negative axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":0,"y":36},"hiddenSeries":false,"id":36,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":false,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_wan_receive_packets_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Packets Rx","refId":"A"},{"expr":"rate(unpoller_device_wan_transmit_packets_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Packets Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"WAN
|
|
||||||
Packets","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"pps","label":"packets
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
lan Packets Rx":"dark-green","gateway lan Packets Tx":"dark-purple"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":null,"description":"PPS
|
|
||||||
on the LAN interface. Rx is on the negative axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":12,"y":36},"hiddenSeries":false,"id":25,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":false,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_lan_receive_packets_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Packets Rx","refId":"A"},{"expr":"rate(unpoller_device_lan_transmit_packets_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Packets Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"LAN
|
|
||||||
Packets","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"pps","label":"packets
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
wan Multicast Rx":"dark-green","gateway wan Broadcast Rx":"dark-blue","gateway
|
|
||||||
wan Broadcast Tx":"dark-yellow","gateway wan Multicast Tx":"dark-purple"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":2,"description":"","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":2,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":45},"hiddenSeries":false,"id":47,"isNew":true,"legend":{"alignAsTable":true,"avg":true,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":true,"show":true,"sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_wan_transmit_broadcast_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Broadcast Tx","refId":"D"},{"expr":"rate(unpoller_device_wan_receive_broadcast_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Broadcast Rx","refId":"C"},{"expr":"rate(unpoller_device_wan_receive_multicast_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Multicast Rx","refId":"A"},{"expr":"rate(unpoller_device_wan_transmit_multicast_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Multicast Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"WAN
|
|
||||||
Multicast & Broadcast","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"pps","label":"packets
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
wan Drops Rx":"dark-green","gateway wan Drops Tx":"dark-purple","gateway wan Errors
|
|
||||||
Rx":"dark-blue","gateway wan Errors Tx":"dark-yellow"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":null,"description":"May
|
|
||||||
show problems with your WAN interface. Rx on negative axis.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":2,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":0,"y":53},"hiddenSeries":false,"id":48,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":false,"show":true,"sort":null,"sortDesc":null,"total":true,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_wan_transmit_dropped_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Drops Tx","refId":"A"},{"expr":"rate(unpoller_device_wan_receive_dropped_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Drops Rx","refId":"B"},{"expr":"rate(unpoller_device_wan_transmit_errors_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Errors Tx","refId":"C"},{"expr":"rate(unpoller_device_wan_receive_errors_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Errors Rx","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"WAN
|
|
||||||
Drops & Errors","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"pps","label":"packets
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"gateway
|
|
||||||
lan Dropped Rx":"dark-green"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":null,"description":"","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":12,"y":53},"hiddenSeries":false,"id":51,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":false,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":3,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","scopedVars":{"Site":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_lan_receive_dropped_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Gateway\"}[$__interval])","hide":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{port}} Dropped Rx","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"LAN
|
|
||||||
Drops","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"pps","label":"packets
|
|
||||||
/ second","logBase":1,"max":null,"min":null,"show":true},{"format":"pps","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}}],"repeat":"Site","title":"Site:
|
|
||||||
$Site","type":"row"},{"collapsed":true,"datasource":"${DS_UNIFI_POLLER}","gridPos":{"h":1,"w":24,"x":0,"y":6},"id":62,"panels":[],"title":"Purposely
|
|
||||||
Empty Row","type":"row"}],"refresh":"1m","schemaVersion":25,"style":"dark","tags":["unifi","unifi-poller","usg"],"templating":{"list":[{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{type=~\"udm|usg|ugw\"},source)","hide":2,"includeAll":true,"label":"","multi":true,"name":"Controller","options":[],"query":"label_values(unpoller_device_info{type=~\"udm|usg|ugw\"},source)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{source=~\"$Controller\",
|
|
||||||
type=~\"udm|usg|ugw\"},site_name)","hide":0,"includeAll":true,"label":"","multi":true,"name":"Site","options":[],"query":"label_values(unpoller_device_info{source=~\"$Controller\",
|
|
||||||
type=~\"udm|usg|ugw\"},site_name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
type=~\"udm|usg|ugw\"},name)","hide":2,"includeAll":true,"label":"","multi":true,"name":"Gateway","options":[],"query":"label_values(unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
type=~\"udm|usg|ugw\"},name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":null,"current":{"tags":[],"text":"2m","value":"2m"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"Smooth","options":[{"selected":false,"text":"30s","value":"30s"},{"selected":false,"text":"1m","value":"1m"},{"selected":true,"text":"2m","value":"2m"},{"selected":false,"text":"5m","value":"5m"},{"selected":false,"text":"10m","value":"10m"},{"selected":false,"text":"15m","value":"15m"}],"query":"30s,1m,2m,5m,10m,15m","skipUrlSync":false,"type":"custom"}]},"time":{"from":"now-3h","to":"now"},"timepicker":{"nowDelay":"","refresh_intervals":["30s","1m","5m","15m","30m","1h","2h"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"UniFi-Poller:
|
|
||||||
USG Insights - Prometheus","uid":"4Yo8IZ-Wk","version":36}'
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/part-of: unpoller
|
|
||||||
grafana_dashboard: "1"
|
|
||||||
name: unpoller-dashboard-usg-insights
|
|
||||||
namespace: monitoring
|
|
||||||
@@ -1,236 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
usw-insights.json: '{"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana
|
|
||||||
--","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations
|
|
||||||
& Alerts","type":"dashboard"}]},"description":"UniFi Poller v2.0.1 Displays detailed
|
|
||||||
information for network switches in a UniFi network using Prometheus.","editable":true,"gnetId":11312,"graphTooltip":1,"id":null,"iteration":1592125490470,"links":[{"asDropdown":true,"icon":"external
|
|
||||||
link","includeVars":false,"keepTime":true,"tags":["unifi-poller"],"title":"UniFi
|
|
||||||
Poller","type":"dashboards"},{"icon":"question","tags":[],"title":"Help","type":"link","url":"https://golift.io/unifi-poller/issues"},{"icon":"doc","tags":[],"title":"Wiki","type":"link","url":"https://golift.io/unifi-poller/wiki"},{"icon":"bolt","tags":[],"title":"Discord","type":"link","url":"https://discord.gg/KnyKYt2"}],"panels":[{"collapsed":false,"datasource":"${DS_UNIFI_POLLER}","gridPos":{"h":1,"w":24,"x":0,"y":0},"id":137,"panels":[],"title":"Aggregate
|
|
||||||
Graphs","type":"row"},{"columns":[],"datasource":"VictoriaMetrics","description":"If
|
|
||||||
you have access points and gateways they will also show up here because they have
|
|
||||||
switch ports.","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"100%","gridPos":{"h":6,"w":24,"x":0,"y":1},"id":2297,"isNew":true,"links":[],"pageSize":null,"scroll":false,"showHeader":true,"sort":{"col":11,"desc":true},"styles":[{"$$hashKey":"object:10978","alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"$$hashKey":"object:10979","alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"Value #A","thresholds":[],"type":"hidden","unit":"dtdurations"},{"$$hashKey":"object:10980","alias":"Name","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":true,"linkUrl":"http:","pattern":"name","preserveFormat":false,"sanitize":false,"thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10982","alias":"Model","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"model","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10983","alias":"Device
|
|
||||||
MAC","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"mac","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10984","alias":"UniFi
|
|
||||||
Serial #","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"serial","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10985","alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10986","alias":"Version","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"pattern":"version","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10990","alias":"IP","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"ip","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10991","alias":"Type","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"type","thresholds":[],"type":"string","unit":"short"},{"$$hashKey":"object:10992","alias":"Data","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"decbytes"},{"$$hashKey":"object:10993","alias":"Uptime","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Value #B","thresholds":[],"type":"number","unit":"s"},{"$$hashKey":"object:10994","alias":"Controller","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"source","thresholds":[],"type":"hidden","unit":"short"}],"targets":[{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version,source) (unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"A"},{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version,source) (unpoller_device_uptime_seconds{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"B"},{"expr":"sum
|
|
||||||
by (ip,mac,model,name,serial,site_name,type,version,source) (unpoller_device_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\"})","format":"table","instant":true,"interval":"","legendFormat":"","refId":"C"}],"timeFrom":null,"title":"Switch
|
|
||||||
Details","transform":"table","type":"table-old"},{"aliasColors":{"switch C":"dark-green","switch
|
|
||||||
F":"dark-purple"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":1,"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":16,"x":0,"y":7},"hiddenSeries":false,"id":1149,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":true,"max":true,"min":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[{"$$hashKey":"object:11469","alias":"/F$/","yaxis":2}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum
|
|
||||||
by (name,temp_area,temp_type) (unpoller_device_temperature_celsius{site_name=~\"$Site\",name=~\"$Switch\"})","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{temp_area}} {{temp_type}} C ","refId":"A"},{"expr":"sum by (name,temp_area,temp_type)
|
|
||||||
(unpoller_device_temperature_celsius{site_name=~\"$Site\",name=~\"$Switch\"}*9/5+32)","hide":false,"instant":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
{{temp_area}} {{temp_type}} F","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Device
|
|
||||||
Temperature(s)","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"$$hashKey":"object:11514","decimals":1,"format":"celsius","label":"Celcius","logBase":1,"max":null,"min":null,"show":true},{"$$hashKey":"object:11515","decimals":1,"format":"fahrenheit","label":"Farenheit","logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":-32}},{"aliasColors":{"switch":"dark-purple"},"bars":false,"cacheTimeout":null,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":8,"x":16,"y":7},"hiddenSeries":false,"hideTimeOverride":true,"id":1859,"interval":"","legend":{"avg":false,"current":false,"hideEmpty":true,"max":true,"min":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_memory_utilization_ratio{type=\"usw\",
|
|
||||||
site_name=~\"$Site\",name=~\"$Switch\",type=~\"usw|udm|udmp\"}","interval":"$Smooth","legendFormat":"{{name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Memory","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"percentunit","label":"Memory
|
|
||||||
Utilization","logBase":1,"max":"1","min":"0","show":true},{"decimals":null,"format":"short","label":"","logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"switch
|
|
||||||
load1":"dark-green","switch load15":"semi-dark-purple","switch load5":"dark-blue"},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","editable":true,"error":false,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":8,"w":16,"x":0,"y":14},"hiddenSeries":false,"id":1857,"isNew":true,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":true,"min":false,"show":true,"sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/load15$/","fill":0,"lines":true,"linewidth":6},{"alias":"/load5$/","fill":0,"lines":true,"linewidth":4}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_load_average_1{site_name=~\"$Site\",name=~\"$Switch\"}","interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load1","refId":"A"},{"expr":"unpoller_device_load_average_5{site_name=~\"$Site\",name=~\"$Switch\"}","hide":true,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load5","refId":"B"},{"expr":"unpoller_device_load_average_15{site_name=~\"$Site\",name=~\"$Switch\"}","hide":false,"interval":"$Smooth","legendFormat":"{{name}}
|
|
||||||
load15","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Device
|
|
||||||
Load Average","tooltip":{"msResolution":false,"shared":true,"sort":2,"value_type":"cumulative"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"$$hashKey":"object:13149","format":"none","label":null,"logBase":1,"max":null,"min":null,"show":true},{"$$hashKey":"object:13150","format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"switch":"dark-purple"},"bars":false,"cacheTimeout":null,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":0,"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":8,"x":16,"y":14},"hiddenSeries":false,"hideTimeOverride":true,"id":1861,"interval":"","legend":{"avg":false,"current":false,"hideEmpty":true,"max":true,"min":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_cpu_utilization_ratio{site_name=~\"$Site\",name=~\"$Switch\",type=~\"usw|udm|udmp\"}","interval":"$Smooth","legendFormat":"{{name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"CPU","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":1,"format":"percentunit","label":"CPU
|
|
||||||
Utilization","logBase":1,"max":"1","min":"0","show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Shows
|
|
||||||
data transferred for selected switch ports.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":17,"w":24,"x":0,"y":22},"hiddenSeries":false,"id":135,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"hideZero":false,"max":true,"min":false,"rightSide":true,"show":true,"sort":"current","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_port_transmit_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\", port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
{{port_name}} Tx","refId":"A"},{"expr":"rate(unpoller_device_port_receive_bytes_total{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\", port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
{{port_name}} Rx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Data
|
|
||||||
Transfer","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"Bytes
|
|
||||||
Per Second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"columns":[],"datasource":"VictoriaMetrics","description":"This
|
|
||||||
panel displays lifetime totals and current data as of now.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"90%","gridPos":{"h":21,"w":24,"x":0,"y":39},"id":214,"links":[],"pageSize":null,"scroll":true,"showHeader":true,"sort":{"col":2,"desc":true},"styles":[{"alias":"Port
|
|
||||||
Name","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Switch","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Switch","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"name","thresholds":[],"type":"string","unit":"short"},{"alias":"Port","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":0,"mappingType":1,"pattern":"port_num","thresholds":[],"type":"number","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"__name__","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"instance","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"job","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"port_id","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Client","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"port_name","thresholds":[],"type":"string","unit":"short"},{"alias":"Bytes
|
|
||||||
Rx","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#A","thresholds":[],"type":"number","unit":"bytes"},{"alias":"Site","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"site_name","thresholds":[],"type":"string","unit":"short"},{"alias":"Controller","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"source","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Bytes
|
|
||||||
Tx","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#B","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"Tx Drops","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #C","thresholds":[],"type":"number","unit":"short"},{"alias":"Rx
|
|
||||||
Drops","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#D","thresholds":[],"type":"number","unit":"short"},{"alias":"Tx Broadcast","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #E","thresholds":[],"type":"number","unit":"short"},{"alias":"Rx
|
|
||||||
Broadcast","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#F","thresholds":[],"type":"number","unit":"short"},{"alias":"Tx Errors","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #G","thresholds":[],"type":"number","unit":"short"},{"alias":"Rx
|
|
||||||
Errors","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#H","thresholds":[],"type":"number","unit":"short"},{"alias":"Tx Packets","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #I","thresholds":[],"type":"number","unit":"short"},{"alias":"Rx
|
|
||||||
Packets","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237,
|
|
||||||
129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value
|
|
||||||
#J","thresholds":[],"type":"number","unit":"short"},{"alias":"Amps","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #K","thresholds":[],"type":"number","unit":"mamp"},{"alias":"Volts","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #L","thresholds":[],"type":"number","unit":"volt"},{"alias":"Watts","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"Value #M","thresholds":[],"type":"number","unit":"watt"}],"targets":[{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_receive_bytes_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","instant":true,"refId":"A"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_transmit_bytes_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"B"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_receive_dropped_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"D"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_transmit_dropped_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"C"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_receive_broadcast_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"F"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_transmit_broadcast_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"E"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_receive_errors_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"H"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_transmit_errors_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"G"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_receive_packets_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"J"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_transmit_packets_total{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"I"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_poe_amperes{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"K"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_poe_volts{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"L"},{"expr":"sum
|
|
||||||
by (name,port_num,port_name,site_name,source) (unpoller_device_port_poe_watts{site_name=~\"$Site\",name=~\"$Switch\"})","format":"table","hide":false,"instant":true,"refId":"M"}],"title":"All
|
|
||||||
Port Information","transform":"table","transparent":true,"type":"table-old"},{"collapsed":true,"datasource":"${DS_UNIFI_POLLER}","gridPos":{"h":1,"w":24,"x":0,"y":60},"id":4,"panels":[{"columns":[],"datasource":"VictoriaMetrics","description":"These
|
|
||||||
are total \"lifetime\" counters.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"90%","gridPos":{"h":3,"w":24,"x":0,"y":61},"id":291,"links":[],"pageSize":null,"scopedVars":{"Port":{"selected":false}},"scroll":true,"showHeader":true,"sort":{"col":13,"desc":true},"styles":[{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":2,"mappingType":1,"pattern":"Time","thresholds":[],"type":"hidden","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":0,"mappingType":1,"pattern":"Speed","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"","align":"auto","colorMode":"cell","colors":["rgba(50,
|
|
||||||
172, 45, 0)","rgba(237, 129, 40, 0.89)","rgba(245, 54, 54, 0.9)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":0,"mappingType":1,"pattern":"/Drops|Errors/","thresholds":["10","100"],"type":"number","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":1,"mappingType":1,"pattern":"/^Bytes/","thresholds":[],"type":"number","unit":"decbytes"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":0,"mappingType":1,"pattern":"Satisfaction","thresholds":[],"type":"number","unit":"percent"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":null,"mappingType":1,"pattern":"/^[TR]x /","thresholds":[],"type":"number","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":0,"mappingType":1,"pattern":"Volts","thresholds":[],"type":"number","unit":"volt"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":1,"mappingType":1,"pattern":"Watts","thresholds":[],"type":"number","unit":"watt"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245,
|
|
||||||
54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD
|
|
||||||
HH:mm:ss","decimals":0,"mappingType":1,"pattern":"Amps","thresholds":[],"type":"number","unit":"mamp"}],"targets":[{"expr":"unpoller_device_port_port_speed_bps{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Speed","refId":"A"},{"expr":"unpoller_device_port_poe_amperes{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Amps","refId":"B"},{"expr":"unpoller_device_port_poe_volts{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Volts","refId":"C"},{"expr":"unpoller_device_port_poe_watts{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Watts","refId":"D"},{"expr":"unpoller_device_port_transmit_broadcast_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Tx
|
|
||||||
Broadcast","refId":"E"},{"expr":"unpoller_device_port_transmit_multicast_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Rx
|
|
||||||
Multicast","refId":"F"},{"expr":"unpoller_device_port_receive_dropped_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Rx
|
|
||||||
Drops","refId":"G"},{"expr":"unpoller_device_port_transmit_dropped_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Tx
|
|
||||||
Drops","refId":"N"},{"expr":"unpoller_device_port_transmit_errors_total+unpoller_device_port_receive_errors_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Rx+Tx
|
|
||||||
Errors","refId":"H"},{"expr":"unpoller_device_port_receive_packets_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","instant":true,"interval":"$Smooth","legendFormat":"Rx
|
|
||||||
Packets","refId":"I"},{"expr":"unpoller_device_port_transmit_packets_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Tx
|
|
||||||
Packets","refId":"J"},{"expr":"unpoller_device_port_receive_bytes_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Bytes
|
|
||||||
Rx","refId":"K"},{"expr":"unpoller_device_port_transmit_bytes_total{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Bytes
|
|
||||||
Tx","refId":"L"},{"expr":"unpoller_device_port_satisfaction_percent{port_id=\"$Port\",
|
|
||||||
site_name=~\"$Site\"}","format":"time_series","hide":false,"instant":true,"interval":"$Smooth","legendFormat":"Satisfaction","refId":"M"}],"title":"Switch
|
|
||||||
$Port Information","transform":"timeseries_to_columns","type":"table-old"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Shows
|
|
||||||
data transfer rate per second for Switch $Port. TX on positive axis and RX on
|
|
||||||
negative axis.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":9,"w":24,"x":0,"y":64},"hiddenSeries":false,"id":1396,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_port_receive_bytes_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":" {{port_id}}
|
|
||||||
({{port_name}}) Rx","refId":"A"},{"expr":"rate(unpoller_device_port_transmit_bytes_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":" {{port_id}}
|
|
||||||
({{port_name}}) Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Data
|
|
||||||
Transfer: Switch $Port","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":"Bytes
|
|
||||||
/ Second","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Shows
|
|
||||||
broadcast and multicast packets per second for Switch $Port. TX on positive axis
|
|
||||||
and RX on negative axis.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":73},"hiddenSeries":false,"id":594,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_port_receive_broadcast_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Broadcast Rx","refId":"A"},{"expr":"rate(unpoller_device_port_transmit_broadcast_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Broadcast Tx","refId":"B"},{"expr":"rate(unpoller_device_port_receive_multicast_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Multicast Rx","refId":"C"},{"expr":"rate(unpoller_device_port_transmit_multicast_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Multicast Tx","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Multicast
|
|
||||||
& Broadcast: Switch $Port","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"pps","label":"PPS","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","decimals":null,"description":"Shows
|
|
||||||
errors and dropped packets for Switch $Port. RX on negative axis.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":73},"hiddenSeries":false,"id":367,"legend":{"alignAsTable":false,"avg":false,"current":false,"hideEmpty":true,"max":true,"min":false,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_port_receive_dropped_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Drops Rx","refId":"A"},{"expr":"rate(unpoller_device_port_transmit_dropped_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Drops Tx","refId":"B"},{"expr":"rate(unpoller_device_port_transmit_errors_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Errors Tx","refId":"C"},{"expr":"rate(unpoller_device_port_receive_errors_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Errors Rx","refId":"D"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Errors
|
|
||||||
and Drops: Switch $Port","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"$$hashKey":"object:4320","decimals":null,"format":"pps","label":"packets
|
|
||||||
per second","logBase":1,"max":null,"min":null,"show":true},{"$$hashKey":"object:4321","format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Shows
|
|
||||||
packet counters for Switch $Port. TX on positive axis and RX on negative axis.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":80},"hiddenSeries":false,"id":468,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":true,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[{"alias":"/Rx$/","transform":"negative-Y"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(unpoller_device_port_receive_packets_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Rx","refId":"A"},{"expr":"rate(unpoller_device_port_transmit_packets_total{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}[$__interval])","interval":"$Smooth","legendFormat":"{{port_id}}
|
|
||||||
({{port_name}}) Tx","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Packets
|
|
||||||
Per Second: Switch $Port","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"pps","label":"PPS","logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Display
|
|
||||||
POE Power for Switch $Port.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":4,"x":12,"y":80},"hiddenSeries":false,"id":745,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":true,"min":false,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_port_poe_watts{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}","interval":"$Smooth","legendFormat":"{{port_id}} Watts","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"POE
|
|
||||||
Power: Switch $Port","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"watt","label":"Watts","logBase":1,"max":null,"min":null,"show":true},{"format":"watt","label":"Watts","logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Display
|
|
||||||
POE Voltage for Switch $Port.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":4,"x":16,"y":80},"hiddenSeries":false,"id":921,"legend":{"alignAsTable":true,"avg":false,"current":true,"hideEmpty":true,"max":true,"min":false,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_port_poe_volts{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}","interval":"$Smooth","legendFormat":"{{port_id}} Volts","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"POE
|
|
||||||
Voltage: Switch $Port","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"volt","label":"Volts","logBase":1,"max":null,"min":null,"show":true},{"format":"watt","label":"Watts","logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"VictoriaMetrics","description":"Display
|
|
||||||
POE Current for Switch $Port.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":4,"x":20,"y":80},"hiddenSeries":false,"id":922,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":true,"min":false,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","scopedVars":{"Port":{"selected":false}},"seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"unpoller_device_port_poe_amperes{site_name=~\"$Site\",
|
|
||||||
port_id=~\"$Port\"}","interval":"$Smooth","legendFormat":"{{port_id}} Amps","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"POE
|
|
||||||
Current: Switch $Port","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"mamp","label":"Amps","logBase":1,"max":null,"min":null,"show":true},{"format":"watt","label":"Watts","logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}}],"repeat":"Port","title":"Switch
|
|
||||||
$Port","type":"row"},{"collapsed":true,"datasource":"${DS_UNIFI_POLLER}","gridPos":{"h":1,"w":24,"x":0,"y":85},"id":2299,"panels":[],"title":"Purposely
|
|
||||||
Empty Row","type":"row"}],"refresh":"1m","schemaVersion":25,"style":"dark","tags":["unifi","usw","unifi-poller"],"templating":{"list":[{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info,source)","hide":2,"includeAll":true,"label":null,"multi":true,"name":"Controller","options":[],"query":"label_values(unpoller_device_info,source)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":"","current":{"selected":true,"tags":[],"text":"All","value":["$__all"]},"hide":0,"includeAll":true,"label":null,"multi":true,"name":"Devices","options":[{"selected":true,"text":"All","value":"$__all"},{"selected":false,"text":"udm","value":"udm"},{"selected":false,"text":"usw","value":"usw"},{"selected":false,"text":"uap","value":"uap"}],"query":"udm,usw,uap","queryValue":"","skipUrlSync":false,"type":"custom"},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{source=~\"$Controller\"},site_name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Site","options":[],"query":"label_values(unpoller_device_info{source=~\"$Controller\"},site_name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":"","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
type=~\"$Devices\"},name)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Switch","options":[],"query":"label_values(unpoller_device_info{site_name=~\"$Site\",
|
|
||||||
type=~\"$Devices\"},name)","refresh":1,"regex":"","skipUrlSync":false,"sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".*","current":{},"datasource":"VictoriaMetrics","definition":"label_values(unpoller_device_port_port_speed_bps{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\"},port_id)","hide":0,"includeAll":true,"label":null,"multi":true,"name":"Port","options":[],"query":"label_values(unpoller_device_port_port_speed_bps{site_name=~\"$Site\",
|
|
||||||
name=~\"$Switch\"},port_id)","refresh":1,"regex":"","skipUrlSync":false,"sort":3,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"tags":[],"text":"2m","value":"2m"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"Smooth","options":[{"selected":false,"text":"30s","value":"30s"},{"selected":false,"text":"1m","value":"1m"},{"selected":true,"text":"2m","value":"2m"},{"selected":false,"text":"5m","value":"5m"},{"selected":false,"text":"10m","value":"10m"},{"selected":false,"text":"15m","value":"15m"},{"selected":false,"text":"30m","value":"30m"}],"query":"30s,1m,2m,5m,10m,15m,30m","skipUrlSync":false,"type":"custom"}]},"time":{"from":"now-3h","to":"now"},"timepicker":{"nowDelay":"","refresh_intervals":["30s","1m","5m","15m","30m","1h","2h"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"UniFi-Poller:
|
|
||||||
USW Insights - Prometheus","uid":"FsfxpWaZz","version":35}'
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/part-of: unpoller
|
|
||||||
grafana_dashboard: "1"
|
|
||||||
name: unpoller-dashboard-usw-insights
|
|
||||||
namespace: monitoring
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: unpoller
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
app.kubernetes.io/instance: unpoller
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
app.kubernetes.io/instance: unpoller
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 65534
|
|
||||||
runAsGroup: 65534
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: unpoller
|
|
||||||
image: ghcr.io/unpoller/unpoller:v3.3.1
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
containerPort: 9130
|
|
||||||
protocol: TCP
|
|
||||||
env:
|
|
||||||
# Outputs: Prometheus exporter on, InfluxDB off.
|
|
||||||
- name: UP_INFLUXDB_DISABLE
|
|
||||||
value: "true"
|
|
||||||
- name: UP_PROMETHEUS_DISABLE
|
|
||||||
value: "false"
|
|
||||||
- name: UP_PROMETHEUS_HTTP_LISTEN
|
|
||||||
value: "0.0.0.0:9130"
|
|
||||||
# UniFi OS controller: self-signed cert, poll all sites.
|
|
||||||
- name: UP_UNIFI_DEFAULT_VERIFY_SSL
|
|
||||||
value: "false"
|
|
||||||
- name: UP_UNIFI_DEFAULT_SITE_0
|
|
||||||
value: "all"
|
|
||||||
- name: UP_UNIFI_DEFAULT_SAVE_SITES
|
|
||||||
value: "true"
|
|
||||||
- name: UP_POLLER_DEBUG
|
|
||||||
value: "false"
|
|
||||||
# UP_UNIFI_DEFAULT_URL / _USER / _PASS come from the secret.
|
|
||||||
envFrom:
|
|
||||||
- secretRef:
|
|
||||||
name: unpoller-unifi
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: metrics
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 15
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /
|
|
||||||
port: metrics
|
|
||||||
initialDelaySeconds: 15
|
|
||||||
periodSeconds: 30
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
readOnlyRootFilesystem: true
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- ALL
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 64Mi
|
|
||||||
limits:
|
|
||||||
memory: 256Mi
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: unpoller-unifi
|
|
||||||
namespace: monitoring
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
#ENC[AES256_GCM,data:ii9nZ95ZfxWrmxlxsrI3/GMqAhMZWe7NJVxZoHaY9WLhGgndKJ0wVnJc7FDkTiSENVsmyvOR9Un8nquxtOpnWuJkiK4UVMgt,iv:vq8/8M9wZTYBjSC28n11z1dwYg9QpPeJkbChSrXwR9g=,tag:d3gsygZLzAZvKSbPGVkfWw==,type:comment]
|
|
||||||
UP_UNIFI_DEFAULT_URL: ENC[AES256_GCM,data:6Ng+S4pJtZ1RrCZzYsaBcsij,iv:XVEJhGuzul53wA2jDcTRSTQ+Zg5LfrjYIsfnIwKJrjI=,tag:p5cuB+TucDJ0nS6qZwrU5w==,type:str]
|
|
||||||
#ENC[AES256_GCM,data:bPOMGlTiBcBaxZooysr8eGiYEPpiiWw7qj24YbZfs/+gUqvQICFoZFUuvtQHUr7d1AvXMmD08C7oxo2Wi3CQO49zaBMprC2Pp1afIQBYGEdAzTw=,iv:ZMgm/r6n/q7SHiQcXuv9jNH17FYO9m53YtstrWMIsHQ=,tag:JigMJbOWMai+95UX+Hq1DQ==,type:comment]
|
|
||||||
UP_UNIFI_DEFAULT_USER: ENC[AES256_GCM,data:tcGXHfzSeX4=,iv:VdqazUQzNZu4wrNtU/ZBM+Z/qgKFJcn5vUGPQk8XnY4=,tag:gimPFlc9r+wHINhkxgie4w==,type:str]
|
|
||||||
UP_UNIFI_DEFAULT_PASS: ENC[AES256_GCM,data:zNgR/FH3H53dlH+FBcaRHcE6eAORkBKg5X1cM35dAQs=,iv:cgvYU4RlAST5+2qchDa7qJhxpmqXWKmaGy5aEptum4E=,tag:0Iv6jVbq3p+462FmNUEDAA==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpekpqdDJqeGZBbmNPVVlW
|
|
||||||
MDN6WnI4Ynd1dGhQTlkwYzY4STREMnFuQkFNCjVWWGFjMW5rOUVESVQ5RVhZZ2FT
|
|
||||||
cmtnejhHMzBpNlV5bmpsMWdwcW5ZNFEKLS0tIHdLQ0lRdXZuTE1DWUJ6L1hCUFhK
|
|
||||||
ajhCRUh2dVQrUkJJamFCTDU0eS9lajAKq/7OhPmhVUTVFos0IdBozgFXAcv5HutH
|
|
||||||
yudHIJNuecjCFsTpM7gr6d6dBfr2xBKk8HsTkjfuwwI+/Bd3+VObvw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1jetw4h63gq4uzyk08znynw4h852nexdmtkdz4kwxj5ew5st32vnspmtag2
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-06-19T18:29:59Z"
|
|
||||||
mac: ENC[AES256_GCM,data:MSKLVzChp1ylSbtQU1eaxf1egktK6B75PLQTgoMkVXZZ5GJJzXEsWuiIdnud9vcMet8uBVVLUzqfsCEEwkobJXf7yi8jloKboIYqkKb38PlSb6SVyj3QB59a7LMISUZspBFiiVozrRD7q5jzZKlK86v0RJ21KvxOVdv7pbTfzUY=,iv:rkoR814sUKLMkPHG8zZQk7sGF59w+gc1qbDO65TvOd0=,tag:zcjGwcFZ5tzjApN472bpTA==,type:str]
|
|
||||||
version: 3.13.1
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: unpoller
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
app.kubernetes.io/instance: unpoller
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
port: 9130
|
|
||||||
targetPort: metrics
|
|
||||||
protocol: TCP
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
apiVersion: operator.victoriametrics.com/v1beta1
|
|
||||||
kind: VMServiceScrape
|
|
||||||
metadata:
|
|
||||||
name: unpoller
|
|
||||||
namespace: monitoring
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: unpoller
|
|
||||||
endpoints:
|
|
||||||
# unpoller caches controller data and refreshes it every 60s, so a tighter
|
|
||||||
# scrape interval just re-serves the same cache.
|
|
||||||
- port: metrics
|
|
||||||
path: /metrics
|
|
||||||
interval: 60s
|
|
||||||
scrapeTimeout: 30s
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,27 +0,0 @@
|
|||||||
# This manifest was generated by flux. DO NOT EDIT.
|
|
||||||
---
|
|
||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: GitRepository
|
|
||||||
metadata:
|
|
||||||
name: flux-system
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 1m0s
|
|
||||||
ref:
|
|
||||||
branch: master
|
|
||||||
secretRef:
|
|
||||||
name: flux-system
|
|
||||||
url: https://github.com/berezovskyi-oleksandr/homelab.git
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: flux-system
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 10m0s
|
|
||||||
path: ./kubernetes-monitoring
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: flux-system
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- gotk-components.yaml
|
|
||||||
- gotk-sync.yaml
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- flux-system
|
|
||||||
- apps/ks.yaml
|
|
||||||
@@ -6,8 +6,6 @@ metadata:
|
|||||||
namespace: archmirror
|
namespace: archmirror
|
||||||
data:
|
data:
|
||||||
nginx.conf: |
|
nginx.conf: |
|
||||||
worker_processes auto;
|
|
||||||
|
|
||||||
events {
|
events {
|
||||||
worker_connections 1024;
|
worker_connections 1024;
|
||||||
}
|
}
|
||||||
@@ -17,8 +15,6 @@ data:
|
|||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
sendfile on;
|
sendfile on;
|
||||||
# NFS reads block the worker; offload them so /health keeps answering
|
|
||||||
aio threads;
|
|
||||||
gzip on;
|
gzip on;
|
||||||
|
|
||||||
server {
|
server {
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ data:
|
|||||||
server_name _;
|
server_name _;
|
||||||
root /git/current;
|
root /git/current;
|
||||||
index index.html;
|
index index.html;
|
||||||
absolute_redirect off;
|
|
||||||
|
|
||||||
location /health {
|
location /health {
|
||||||
access_log off;
|
access_log off;
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: dawarich-redis
|
|
||||||
namespace: dawarich
|
|
||||||
labels:
|
|
||||||
app: dawarich-redis
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-redis
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: dawarich-redis
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 999 # redis user in the alpine image
|
|
||||||
runAsGroup: 999
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: redis
|
|
||||||
image: redis:7.4.11-alpine
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
# Sidekiq job queue. Snapshots (as in upstream compose) survive container restarts;
|
|
||||||
# the emptyDir is lost with the pod, which only drops queued jobs.
|
|
||||||
args: ["--save", "900", "1", "--save", "300", "10", "--appendonly", "no"]
|
|
||||||
ports:
|
|
||||||
- containerPort: 6379
|
|
||||||
name: redis
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /data
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 6379
|
|
||||||
periodSeconds: 30
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 6379
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 20m
|
|
||||||
memory: 32Mi
|
|
||||||
limits:
|
|
||||||
memory: 256Mi
|
|
||||||
volumes:
|
|
||||||
- name: data
|
|
||||||
emptyDir: {}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: dawarich
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: default-deny-ingress
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
podSelector: {}
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-ingress-controller
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- namespaceSelector:
|
|
||||||
matchLabels:
|
|
||||||
kubernetes.io/metadata.name: traefik
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-app-to-db
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-db
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-to-db
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-db
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-backup
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-egress
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-backup
|
|
||||||
policyTypes:
|
|
||||||
- Egress
|
|
||||||
egress:
|
|
||||||
- ports:
|
|
||||||
- port: 53
|
|
||||||
protocol: UDP
|
|
||||||
- port: 53
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 8888
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 443
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 5432
|
|
||||||
protocol: TCP
|
|
||||||
to:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-db
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-app-to-redis
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-redis
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich
|
|
||||||
ports:
|
|
||||||
- port: 6379
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: dawarich
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: dawarich
|
|
||||||
version: 2.9.3
|
|
||||||
reconcileStrategy: ChartVersion
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: cogitri
|
|
||||||
namespace: flux-system
|
|
||||||
targetNamespace: dawarich
|
|
||||||
interval: 1m0s
|
|
||||||
install:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
upgrade:
|
|
||||||
remediation:
|
|
||||||
retries: 3
|
|
||||||
# The chart hardcodes an unpinned busybox wait-for-postgres init container, no deployment
|
|
||||||
# strategy, and a 130s web startupProbe — too short for the first start, which runs every
|
|
||||||
# migration and seeds the countries table before Puma listens.
|
|
||||||
postRenderers:
|
|
||||||
- kustomize:
|
|
||||||
patches:
|
|
||||||
- target:
|
|
||||||
kind: Deployment
|
|
||||||
name: dawarich
|
|
||||||
patch: |
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: dawarich
|
|
||||||
spec:
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
initContainers:
|
|
||||||
- name: wait-for-postgres
|
|
||||||
image: busybox:1.37
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
containers:
|
|
||||||
- name: dawarich
|
|
||||||
startupProbe:
|
|
||||||
failureThreshold: 60
|
|
||||||
livenessProbe:
|
|
||||||
periodSeconds: 30
|
|
||||||
timeoutSeconds: 10
|
|
||||||
failureThreshold: 6
|
|
||||||
readinessProbe:
|
|
||||||
timeoutSeconds: 5
|
|
||||||
- target:
|
|
||||||
kind: Deployment
|
|
||||||
name: dawarich-sidekiq
|
|
||||||
patch: |
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: dawarich-sidekiq
|
|
||||||
spec:
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
initContainers:
|
|
||||||
- name: wait-for-postgres
|
|
||||||
image: busybox:1.37
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
values:
|
|
||||||
# Release name is dawarich-dawarich (targetNamespace prefix); keep resource names short.
|
|
||||||
fullnameOverride: dawarich
|
|
||||||
|
|
||||||
image:
|
|
||||||
# renovate: datasource=docker depName=freikin/dawarich
|
|
||||||
tag: "1.16.0"
|
|
||||||
|
|
||||||
keyBase:
|
|
||||||
existingSecret: dawarich-credentials # key: value
|
|
||||||
|
|
||||||
# Every key is rendered into the ConfigMap as UPPER_SNAKE_CASE.
|
|
||||||
env:
|
|
||||||
timeZone: Europe/Kyiv
|
|
||||||
# TLS terminates at Traefik; "https" here turns on Rails force_ssl.
|
|
||||||
applicationProtocol: http
|
|
||||||
distanceUnit: km
|
|
||||||
# Upstream compose default; each thread holds an import batch in memory.
|
|
||||||
backgroundProcessingConcurrency: "3"
|
|
||||||
# OIDC-only login (blocks the web form and the API password sign-in since 1.14.4).
|
|
||||||
allowEmailPasswordLogin: "false"
|
|
||||||
|
|
||||||
# Authentication against Authelia over OIDC only. Unknown Authelia users are auto-created
|
|
||||||
# as regular (non-admin) users.
|
|
||||||
oidc:
|
|
||||||
enabled: true
|
|
||||||
providerName: Authelia
|
|
||||||
clientId:
|
|
||||||
existingSecret: dawarich-credentials
|
|
||||||
existingSecretKeyName: OIDC_CLIENT_ID
|
|
||||||
clientSecret:
|
|
||||||
existingSecret: dawarich-credentials
|
|
||||||
existingSecretKeyName: OIDC_CLIENT_SECRET
|
|
||||||
issuer: https://auth.${AUTHELIA_DOMAIN}
|
|
||||||
redirectUri: https://${DAWARICH_HOST}/users/auth/openid_connect/callback
|
|
||||||
autoRegister: true
|
|
||||||
allowEmailPasswordRegistration: false
|
|
||||||
|
|
||||||
dawarich:
|
|
||||||
hosts:
|
|
||||||
- ${DAWARICH_HOST}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 512Mi
|
|
||||||
limits:
|
|
||||||
memory: 2Gi
|
|
||||||
|
|
||||||
sidekiq:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 512Mi
|
|
||||||
limits:
|
|
||||||
memory: 4Gi # imports parse whole files in memory (Google Records.json)
|
|
||||||
|
|
||||||
postgresql:
|
|
||||||
host: dawarich-db
|
|
||||||
auth:
|
|
||||||
database: dawarich
|
|
||||||
existingSecret: dawarich-credentials # keys: username, password
|
|
||||||
|
|
||||||
# Own single Redis (deployment-redis.yaml) instead of the bundled 3-node redis-ha.
|
|
||||||
redis:
|
|
||||||
enabled: false
|
|
||||||
host: dawarich-redis
|
|
||||||
auth: false
|
|
||||||
|
|
||||||
# RWO volumes shared by web and sidekiq — fine on the single node.
|
|
||||||
persistence:
|
|
||||||
public:
|
|
||||||
# Static assets, re-synced from the image on every web start.
|
|
||||||
storageClass: nfs-synology-ssd
|
|
||||||
size: 1Gi
|
|
||||||
watched:
|
|
||||||
# Drop folder: <user-email>/<file> is auto-imported.
|
|
||||||
storageClass: nfs-synology-ssd
|
|
||||||
size: 1Gi
|
|
||||||
storage:
|
|
||||||
# ActiveStorage: uploaded imports, exports, videos.
|
|
||||||
storageClass: nfs-synology-ssd
|
|
||||||
size: 10Gi
|
|
||||||
|
|
||||||
serviceAccount:
|
|
||||||
automount: false
|
|
||||||
|
|
||||||
podLabels:
|
|
||||||
app: dawarich
|
|
||||||
|
|
||||||
# The image starts as root only to chown volumes and gosu-drop when PUID/PGID are set.
|
|
||||||
# Running as 1000 directly skips that; tmp/ is 0777 in the image and the NFS subdir
|
|
||||||
# provisioner creates directories 0777.
|
|
||||||
podSecurityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
# No Authelia forward-auth middleware — Dawarich authenticates against Authelia
|
|
||||||
# natively over OIDC. A middleware here would break the OIDC callback and the
|
|
||||||
# api_key-authenticated /api ingest endpoints (OwnTracks, Overland, mobile app).
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
hosts:
|
|
||||||
- host: ${DAWARICH_HOST}
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- secretName: dawarich-tls
|
|
||||||
hosts:
|
|
||||||
- ${DAWARICH_HOST}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/dawarich/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"customManagers": [
|
|
||||||
{
|
|
||||||
"customType": "regex",
|
|
||||||
"fileMatch": ["kubernetes/app/dawarich/release\\.yaml$"],
|
|
||||||
"matchStrings": [
|
|
||||||
"#\\s*renovate:\\s*datasource=(?<datasource>\\S+)\\s+depName=(?<depName>\\S+)\\s*\\n\\s*tag:\\s*[\"']?(?<currentValue>[^\\s\"']+)"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/dawarich/**"],
|
|
||||||
"semanticCommitScope": "k8s/dawarich"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/dawarich/**"],
|
|
||||||
"matchPackageNames": ["freikin/dawarich"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/dawarich/**"],
|
|
||||||
"matchPackageNames": ["freikin/dawarich"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Ignore infrastructure images",
|
|
||||||
"matchFileNames": ["kubernetes/app/dawarich/**"],
|
|
||||||
"matchPackageNames": ["postgis/postgis", "redis", "creativeprojects/resticprofile"],
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
|
||||||
kind: HelmRepository
|
|
||||||
metadata:
|
|
||||||
name: cogitri
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
interval: 1m0s
|
|
||||||
url: https://charts.cogitri.dev
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: dawarich-credentials
|
|
||||||
namespace: dawarich
|
|
||||||
stringData:
|
|
||||||
#ENC[AES256_GCM,data:3gPe9ezMvEnV02kKbZkjtsq2FmJJzXmhtp6CfwYh8icAv/PdAwa3DQCu0oRbgkIV9claZCqDSrhPIaYy5wsQUshL8hyGUYDm/mLNVDsAl9HPz6MlDA==,iv:QOG8JpMEA3IYlcLyrWM8yH9ZHbpwNM1EpC+02J8PCDU=,tag:eIGomi40Pe+7MSOU8POO4w==,type:comment]
|
|
||||||
username: ENC[AES256_GCM,data:Tpj/Iq4oLlg=,iv:9RORl+XlNqG87y3qsqCNj/oRrLzmdVlZCAXD4R1RfXY=,tag:67MSd0HIYEhTqQYfDNUJ2g==,type:str]
|
|
||||||
password: ENC[AES256_GCM,data:BhB59Y5J5pKobyKWOsIWP8jMxPzkL12TkFrTJuCGexw=,iv:VDJdyx7dyHgZh/doBTxBfAiN3NqzmvdCz3Hpxwsafac=,tag:AUtd1ubgOWMbgxm2FzfDpw==,type:str]
|
|
||||||
value: ENC[AES256_GCM,data:Ok4GM6+qnZSQ3c9fyedlXE+LlAoSzIvIQMrCSKLPGp3TQT6PpbouXbR0QveZWZgROmexn0YMs62WCkCdfNfv2DC7SooJ+EksWHKi/m8UTWay7X/WYBlMmSClS3/MeFwsRz5/G4MayIT166C6OhXKB2rPicRMzlU+3dbL9MBDLpw=,iv:gi6C0rbYy3Ie6ati6ACnlqeXjONR/HC3o8xmPGUIF/Y=,tag:jcAQ3YSWZ1DZqr8u+KIBWg==,type:str]
|
|
||||||
OIDC_CLIENT_ID: ENC[AES256_GCM,data:qddOrkEvw0g=,iv:NrS1vRqZG3/4cQyWtEONu16GbFlHJplcHVc75h7+CpQ=,tag:l5Fu5vsPiU6rFGFWziCnzg==,type:str]
|
|
||||||
OIDC_CLIENT_SECRET: ENC[AES256_GCM,data:uisMM3Gd6ChnLvg/eyxff9ZGq6uAfs9fryuVOgf+ZGVexKoRn0NT1Ic7rpJ9pUwzhTAO6WGo941MdJmkSxbxXw==,iv:HNZhiPMTMk/aG7Z9hr0r97CFzo8C0PKRL3FtIW2vGns=,tag:+sbLFE2zbdn4M4eyWrvqTA==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSUdIeXZKNDBVcXVURWpz
|
|
||||||
Wmwrd1hWb0tTcDFmMWZHVG4vZmFmUDNZUnhjCk1PVzQ2RG5Qa2VQZk5PV1VwS09M
|
|
||||||
YUdzVWtsc3dJY256dzRkUTMxdG83OGsKLS0tIERBVVRXTTBsYk1jTTRadmNoOHM0
|
|
||||||
c1F5Q1RsQ1Y1SW9rQUw1ZkwrVVREV1UKI0bO6Nq92fPVPqImWMtWCe5s4r5pLGAf
|
|
||||||
6FWWzTkerOnQ4n7iGoAPtnuFbo6wUBypm4yirbgX6ErzU5vTWJWHWw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-10-08T10:16:10Z"
|
|
||||||
mac: ENC[AES256_GCM,data:HcMG1/LqcljJ6b6LZvXZqKdT3LGFNikH/1PQKzxL+71lwSqlg3k5L0pDNObSfRZeYMeCQTMJWCzgt2qlUlpML58DFTRC0B6K3bofHJixhJT1cS62rzngR0iRY4KVepI6qZACfTh8mwzt15Zrpy9ZMRvV1GSwnxpgaXJVyCMqWnw=,iv:7GHyXB1nA1WAbkI396l4Vw5RtcsYW9n70b+ybOUo6ds=,tag:YbqsKjek9ZnExzghSupuDw==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: dawarich-db
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
clusterIP: None
|
|
||||||
selector:
|
|
||||||
app: dawarich-db
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
targetPort: 5432
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: dawarich-redis
|
|
||||||
namespace: dawarich
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: dawarich-redis
|
|
||||||
ports:
|
|
||||||
- port: 6379
|
|
||||||
targetPort: 6379
|
|
||||||
name: redis
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: dawarich-db
|
|
||||||
namespace: dawarich
|
|
||||||
labels:
|
|
||||||
app: dawarich-db
|
|
||||||
spec:
|
|
||||||
serviceName: dawarich-db
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: dawarich-db
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: dawarich-db
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 999
|
|
||||||
runAsGroup: 999
|
|
||||||
fsGroup: 999
|
|
||||||
containers:
|
|
||||||
- name: postgres
|
|
||||||
# Dawarich requires PostGIS; the Debian variant keeps the postgres user at UID 999
|
|
||||||
# (the alpine variant upstream uses has 70). The image creates the postgis extension in POSTGRES_DB.
|
|
||||||
image: postgis/postgis:17-3.5
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
env:
|
|
||||||
- name: POSTGRES_USER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: dawarich-credentials
|
|
||||||
key: username
|
|
||||||
- name: POSTGRES_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: dawarich-credentials
|
|
||||||
key: password
|
|
||||||
- name: POSTGRES_DB
|
|
||||||
value: dawarich
|
|
||||||
- name: PGDATA
|
|
||||||
value: /var/lib/postgresql/data/pgdata
|
|
||||||
ports:
|
|
||||||
- containerPort: 5432
|
|
||||||
startupProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
periodSeconds: 30
|
|
||||||
failureThreshold: 5
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 256Mi
|
|
||||||
limits:
|
|
||||||
memory: 2Gi # includes the 1Gi /dev/shm below
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /var/lib/postgresql/data
|
|
||||||
- name: shm
|
|
||||||
mountPath: /dev/shm
|
|
||||||
volumes:
|
|
||||||
# Upstream compose sets shm_size: 1G — parallel queries over the points table
|
|
||||||
# exceed the 64M container default.
|
|
||||||
- name: shm
|
|
||||||
emptyDir:
|
|
||||||
medium: Memory
|
|
||||||
sizeLimit: 1Gi
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- metadata:
|
|
||||||
name: data
|
|
||||||
spec:
|
|
||||||
accessModes: ["ReadWriteOnce"]
|
|
||||||
storageClassName: nfs-synology-ssd
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
@@ -24,10 +24,6 @@ spec:
|
|||||||
values:
|
values:
|
||||||
deploymentStrategyType: Recreate
|
deploymentStrategyType: Recreate
|
||||||
|
|
||||||
image:
|
|
||||||
# renovate: datasource=docker depName=fireflyiii/core
|
|
||||||
tag: version-6.7.9
|
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/firefly/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"customManagers": [
|
|
||||||
{
|
|
||||||
"customType": "regex",
|
|
||||||
"fileMatch": ["kubernetes/app/firefly/release\\.yaml$"],
|
|
||||||
"matchStrings": [
|
|
||||||
"#\\s*renovate:\\s*datasource=(?<datasource>\\S+)\\s+depName=(?<depName>\\S+)\\s*\\n\\s*tag:\\s*[\"']?(?<currentValue>[^\\s\"']+)"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/firefly/**"],
|
|
||||||
"semanticCommitScope": "k8s/firefly"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Tags are version-X.Y.Z; skip floating version-X.Y, version-X, latest, develop",
|
|
||||||
"matchFileNames": ["kubernetes/app/firefly/**"],
|
|
||||||
"matchPackageNames": ["fireflyiii/core"],
|
|
||||||
"versioning": "regex:^version-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/firefly/**"],
|
|
||||||
"matchPackageNames": ["fireflyiii/core"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/firefly/**"],
|
|
||||||
"matchPackageNames": ["fireflyiii/core"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Ignore infrastructure images",
|
|
||||||
"matchFileNames": ["kubernetes/app/firefly/**"],
|
|
||||||
"matchPackageNames": ["postgres", "creativeprojects/resticprofile"],
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -25,10 +25,8 @@ spec:
|
|||||||
- sh
|
- sh
|
||||||
- -c
|
- -c
|
||||||
- |
|
- |
|
||||||
set -e
|
|
||||||
apk add --no-cache sqlite
|
apk add --no-cache sqlite
|
||||||
sqlite3 "file:/db-local/grocy.db?mode=ro" ".backup /backup/grocy.db"
|
sqlite3 /db-local/grocy.db ".backup /backup/grocy.db"
|
||||||
[ "$(sqlite3 /backup/grocy.db 'PRAGMA integrity_check')" = ok ]
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: db
|
- name: db
|
||||||
mountPath: /db-local
|
mountPath: /db-local
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ data:
|
|||||||
type: jellyfin
|
type: jellyfin
|
||||||
url: https://${JELLYFIN_HOST}
|
url: https://${JELLYFIN_HOST}
|
||||||
key: "{{HOMEPAGE_VAR_JELLYFIN_API_KEY}}"
|
key: "{{HOMEPAGE_VAR_JELLYFIN_API_KEY}}"
|
||||||
version: 2 # Jellyfin 12 dropped /emby paths and ?api_key auth
|
|
||||||
enableBlocks: true
|
enableBlocks: true
|
||||||
enableUser: true
|
enableUser: true
|
||||||
enableMediaControl: false
|
enableMediaControl: false
|
||||||
@@ -91,14 +90,6 @@ data:
|
|||||||
icon: grocy.png
|
icon: grocy.png
|
||||||
href: https://${GROCY_HOST}/
|
href: https://${GROCY_HOST}/
|
||||||
description: Chores and inventory tracker
|
description: Chores and inventory tracker
|
||||||
- Vikunja:
|
|
||||||
icon: vikunja.png
|
|
||||||
href: https://${VIKUNJA_HOST}/
|
|
||||||
description: Task management
|
|
||||||
- Reitti:
|
|
||||||
icon: mdi-map-marker-path
|
|
||||||
href: https://${REITTI_HOST}/
|
|
||||||
description: Location history
|
|
||||||
|
|
||||||
widgets.yaml: |
|
widgets.yaml: |
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: homepage
|
- name: homepage
|
||||||
image: ghcr.io/gethomepage/homepage:v2.6.0
|
image: ghcr.io/gethomepage/homepage:v1.10.1
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
name: http
|
name: http
|
||||||
@@ -33,12 +33,8 @@ spec:
|
|||||||
- secretRef:
|
- secretRef:
|
||||||
name: homepage-credentials
|
name: homepage-credentials
|
||||||
env:
|
env:
|
||||||
- name: MY_POD_IP
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: status.podIP
|
|
||||||
- name: HOMEPAGE_ALLOWED_HOSTS
|
- name: HOMEPAGE_ALLOWED_HOSTS
|
||||||
value: "$(MY_POD_IP):3000,${HOMEPAGE_HOST}"
|
value: "${HOMEPAGE_HOST}"
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: /app/config/settings.yaml
|
mountPath: /app/config/settings.yaml
|
||||||
@@ -58,13 +54,13 @@ spec:
|
|||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
port: 3000
|
port: 3000
|
||||||
path: /api/healthcheck
|
path: /
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
port: 3000
|
port: 3000
|
||||||
path: /api/healthcheck
|
path: /
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/homepage/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/homepage/**"],
|
|
||||||
"semanticCommitScope": "k8s/homepage"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/homepage/**"],
|
|
||||||
"matchPackageNames": ["ghcr.io/gethomepage/homepage"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/homepage/**"],
|
|
||||||
"matchPackageNames": ["ghcr.io/gethomepage/homepage"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,7 @@ spec:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: ghcr.io/immich-app/immich-server
|
repository: ghcr.io/immich-app/immich-server
|
||||||
tag: v3.3.3
|
tag: v2.7.5
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
|
|||||||
@@ -1,171 +0,0 @@
|
|||||||
# Jellyfin SQLite database backup.
|
|
||||||
# jellyfin.db lives on the local-path PVC (/config/data/jellyfin.db is a symlink
|
|
||||||
# to it), so it is read from jellyfin-data directly. sqlite3 ".backup" uses the
|
|
||||||
# online backup API — no downtime, consistent snapshot while Jellyfin runs.
|
|
||||||
# The volume is mounted read-write on purpose: jellyfin.db is in WAL mode, and
|
|
||||||
# SQLite cannot open a WAL database from a read-only filesystem once Jellyfin has
|
|
||||||
# closed it and removed the -wal/-shm files (e.g. while scaled to zero).
|
|
||||||
# The connection itself is read-only (?mode=ro). A read-write connection that
|
|
||||||
# believes it is the last one checkpoints and deletes -wal/-shm on close; when
|
|
||||||
# Jellyfin had lost its POSIX locks this deleted them under the running server
|
|
||||||
# and corrupted jellyfin.db (2026-09-16). The copy is integrity-checked so a
|
|
||||||
# broken snapshot fails the job instead of landing in restic.
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-db-backup
|
|
||||||
namespace: jellyfin
|
|
||||||
labels:
|
|
||||||
app: jellyfin-backup
|
|
||||||
spec:
|
|
||||||
schedule: "30 2 * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
successfulJobsHistoryLimit: 3
|
|
||||||
failedJobsHistoryLimit: 3
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: jellyfin-backup
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
initContainers:
|
|
||||||
- name: sqlite-backup
|
|
||||||
image: alpine:3.21
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
set -e
|
|
||||||
apk add --no-cache sqlite
|
|
||||||
sqlite3 "file:/db-local/jellyfin.db?mode=ro" ".backup /backup/jellyfin.db"
|
|
||||||
[ "$(sqlite3 /backup/jellyfin.db 'PRAGMA integrity_check')" = ok ]
|
|
||||||
volumeMounts:
|
|
||||||
- name: db
|
|
||||||
mountPath: /db-local
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
containers:
|
|
||||||
- name: resticprofile
|
|
||||||
image: creativeprojects/resticprofile:0.32.0
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n jellyfin-db backup
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n jellyfin-db copy
|
|
||||||
env:
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: jellyfin-backup-config
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: jellyfin-backup-config
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
volumeMounts:
|
|
||||||
- name: secrets
|
|
||||||
mountPath: /secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
volumes:
|
|
||||||
- name: secrets
|
|
||||||
secret:
|
|
||||||
secretName: jellyfin-backup-config
|
|
||||||
- name: db
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: jellyfin-data
|
|
||||||
- name: backup-tmp
|
|
||||||
emptyDir: {}
|
|
||||||
---
|
|
||||||
# Jellyfin configuration backup.
|
|
||||||
# Only non-regenerable state: server config, library definitions, plugin
|
|
||||||
# configuration (including the Authelia SSO settings), collections, and the
|
|
||||||
# Intro Skipper analysis results. Metadata (27G), trickplay (20G) and extracted
|
|
||||||
# subtitles (1.7G) are deliberately excluded — they are regenerable from the
|
|
||||||
# media files and the metadata providers.
|
|
||||||
# Intro Skipper keeps its results in two live WAL-mode SQLite databases, so they
|
|
||||||
# are snapshotted with sqlite3 ".backup" rather than copied as files (which could
|
|
||||||
# capture a torn page mid-write). Read-write mount and read-only connection for
|
|
||||||
# the same reasons as above.
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-config-backup
|
|
||||||
namespace: jellyfin
|
|
||||||
labels:
|
|
||||||
app: jellyfin-backup
|
|
||||||
spec:
|
|
||||||
schedule: "30 3 * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
successfulJobsHistoryLimit: 3
|
|
||||||
failedJobsHistoryLimit: 3
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: jellyfin-backup
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
initContainers:
|
|
||||||
- name: sqlite-backup
|
|
||||||
image: alpine:3.21
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
set -e
|
|
||||||
apk add --no-cache sqlite
|
|
||||||
mkdir -p /backup/introskipper
|
|
||||||
for db in introskipper.db introskipper-cache.db; do
|
|
||||||
sqlite3 "file:/config/data/introskipper/$db?mode=ro" ".backup /backup/introskipper/$db"
|
|
||||||
[ "$(sqlite3 "/backup/introskipper/$db" 'PRAGMA integrity_check')" = ok ]
|
|
||||||
done
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /config
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
containers:
|
|
||||||
- name: resticprofile
|
|
||||||
image: creativeprojects/resticprofile:0.32.0
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n jellyfin-config backup
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n jellyfin-config copy
|
|
||||||
env:
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: jellyfin-backup-config
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: jellyfin-backup-config
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
volumeMounts:
|
|
||||||
- name: secrets
|
|
||||||
mountPath: /secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: config
|
|
||||||
mountPath: /config
|
|
||||||
readOnly: true
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
volumes:
|
|
||||||
- name: secrets
|
|
||||||
secret:
|
|
||||||
secretName: jellyfin-backup-config
|
|
||||||
- name: config
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: jellyfin-config
|
|
||||||
- name: backup-tmp
|
|
||||||
emptyDir: {}
|
|
||||||
@@ -43,7 +43,7 @@ spec:
|
|||||||
mountPath: /db-local
|
mountPath: /db-local
|
||||||
containers:
|
containers:
|
||||||
- name: jellyfin
|
- name: jellyfin
|
||||||
image: jellyfin/jellyfin:12.2
|
image: jellyfin/jellyfin:10.11.8
|
||||||
env:
|
env:
|
||||||
- name: JELLYFIN_PublishedServerUrl
|
- name: JELLYFIN_PublishedServerUrl
|
||||||
value: https://${JELLYFIN_HOST}
|
value: https://${JELLYFIN_HOST}
|
||||||
@@ -62,15 +62,6 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
gpu.intel.com/i915: "1"
|
gpu.intel.com/i915: "1"
|
||||||
# 12.0's first boot runs one-way database migrations that take several
|
|
||||||
# minutes and must not be interrupted. startupProbe holds liveness off
|
|
||||||
# until the server answers; liveness/readiness take over once up.
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 8096
|
|
||||||
path: /health
|
|
||||||
failureThreshold: 90
|
|
||||||
periodSeconds: 10
|
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
port: 8096
|
port: 8096
|
||||||
|
|||||||
@@ -45,29 +45,3 @@ spec:
|
|||||||
protocol: UDP
|
protocol: UDP
|
||||||
- port: 1900
|
- port: 1900
|
||||||
protocol: UDP
|
protocol: UDP
|
||||||
---
|
|
||||||
# Backup jobs need DNS, the Synology rest-server (8888) and B2 over HTTPS.
|
|
||||||
# Declaring egress here also confines the backup pods to exactly those.
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-egress
|
|
||||||
namespace: jellyfin
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: jellyfin-backup
|
|
||||||
policyTypes:
|
|
||||||
- Egress
|
|
||||||
egress:
|
|
||||||
- ports:
|
|
||||||
- port: 53
|
|
||||||
protocol: UDP
|
|
||||||
- port: 53
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 8888
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 443
|
|
||||||
protocol: TCP
|
|
||||||
|
|||||||
@@ -7,11 +7,6 @@
|
|||||||
"matchFileNames": ["kubernetes/app/jellyfin/**"],
|
"matchFileNames": ["kubernetes/app/jellyfin/**"],
|
||||||
"semanticCommitScope": "k8s/jellyfin"
|
"semanticCommitScope": "k8s/jellyfin"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/jellyfin/**"],
|
|
||||||
"matchPackageNames": ["jellyfin/jellyfin"],
|
|
||||||
"versioning": "regex:^(?<minor>\\d+)\\.(?<patch>\\d+)$"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"matchFileNames": ["kubernetes/app/jellyfin/**"],
|
"matchFileNames": ["kubernetes/app/jellyfin/**"],
|
||||||
"matchPackageNames": ["jellyfin/jellyfin"],
|
"matchPackageNames": ["jellyfin/jellyfin"],
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: jellyfin-backup-config
|
|
||||||
namespace: jellyfin
|
|
||||||
stringData:
|
|
||||||
profiles.yaml: ENC[AES256_GCM,data:A1EdRDhXncj5EIjg6iyw+mmiW7ObrGVlBmnQn1GJbF6P+yHmw97h4Hk/yHfMM1tDrNhiy8jpMWmXHGuHa56QFGPQzPCkaMtjqwO2pUcXrdrv8ThVtX3ZgyzvHX1fL5lwDm5aG0mMjuV51+j5URR6P3n+GCCg3OYP/DbEngroT5f7QKhFb4hwHdGnF9tHLwKH/hZrXJIH8XLeJD5BbjHBRFiXEpYlgmHtZ3Vb3SzJRMSMBMH4wBj2obxL2nOqKDXaK/NRV1XHuN+/enKvQaFm9j3h7F4G4MD1Gfr6LwjtGiV5S8ngcQo9gQptardTVqxTtKHKA80pbtSoqwP3TuR6Vh6U9KNqDiaLte6wqoOxQ6Tb3oCTnFJOLn1WE/PBxTPp9VDRfwXBlhPtYK8JhaTcQHdjkM1xw3qzyL09XMNKWf1wvlaoszurwlxI+bSKNlDQjC/dUd/j067xFf1SRNze++75QJkrp1o2+4DCrdK4QiPd9FeacgUml/uI957i0ZkBQLTn9WHUcp7kLmALzu8byDHgf2jkHYEfJ3QKg5yjpE0aQ2Iub/8fnQC732YOUGeP5HKcFTl8fU4xdRrIPbz8K728FYukeU4pzLQY+2qOENfMSFoVMIYpD5LSyv+RqIejb6x1ZYIchPQ91aBsnkXRSL6b2Lj60vccF1cyilrPAgBAzM6FeAvAHqbalSMdvyMwd6AgHgW0jOE9dGquxQfliCyoU9vcsNKY/2y01MWiH7wa80IjvrrUTiuQHh7h2g+JYqiXoyA2R9qXQBScjiWQbtUAYQjBqqKGdTSxiUzYiCBw75FMJxj2BUE739bQQNCBN18WLSyietS7LiTu50cL0jD79zNYGqi4vduHdK+MZuhZa5I/5OoHo71VGj1nkyKYBOemA5zdW3xbS4ZOnblOYeEkhx0It1KafAbN4JnY7ZPCQqH7JyAxKIV1YR4zKEMpFgEzIKUFl0Cr7PrZ5/hoA6HhuzzWq6GvtQ+4PJusp5Spu+d7AEZLSPqPrSlK6iCQA3nKG+A/wau4BI4P83Q2LzW5Aa4aujNZJ+mCYAyPkkQqt6+MTWgFCKa61fZT8Rypw+q1+BRJrY+/2PU/DUeEBb6hBTcL24YRHEkcPlcU4FkK4/WppALM/FWySFgfdwL9XqhOWwuhJ3nfMFEMFR9TkbrTHGNzC7JRTcIo4FIhvgoNtQ2WujgB01a79cqGcw2sSWDTeUCH5SaeYiQSfmI1n7OyBP9vk3pc8FrqRVZkpetlrYCdart6FKDuO+P4YhOpk42GrL+0lWis4Hkmos9REpKP0jAkvgcI9nDHTq1stHbPuqVXsBaah0mrbk450ZAREmGMx/4Gc3ltXh8YfgT26HSDCl3SRtXgnLsTA9XKYgR1zgvT8a82EYDg08af5X1yGQFutxIkfIwIijAIx+Y9NY6KeWvgBYxjgkKkNvY29kCZZ5POKw5L9YiMOcp4jSTK+dNdPqCWplSzyaLgrFGBbzOcQVagm9UkZEXLv44H60fMMExdHzuo81Bh1JV6luVqqDcHlnigxM6QNMNavgT6G60kFfRmEyRldSrpefKkH9GtxJMJgWMgZhhdDkkOzFsou/GuaWCLQp3JyOmZiKisJu5Nytkl4h0rPGR+Oe26Z5IxCYOjRgmp8+TT4JMmHIvlL7Ljf1PRQS6eWz9ICvoK/nvLaj0/rjEvQ9BZKY1WVzGGSYrvrNzNbprhaT6+DE1Xdd9qmwaP+B9czB54KCrKd17knL0GWYkneOM/M+UNeD4nDeK8fShHJeIYI5+7QRh54BsGlmwgw8mYnysagsQeav56aZC7Lcg3e1uCeVSHY7RdrUJ7i+++5v95TpIP8tQCFO5RvlIp7UPChdHOyxqlGqGMWs66Jvpq47ENN6OObAdR0uAHPA/MsvVO0ygmANE8Sog2JLJbQO6+3Wsmg/n+Is2Ps1lEjSft6Kn/SrmPG3ilOedpirrnn1cfWOHAXtfruZ9xB2GIdhBHgVFgjSUmAvd+9R+MV+urq3d/Czr1+w2WDryOPPw=,iv:+DuENxnJKTQ3ZKom2uNsW7QU1eMsrO+ZFCo5aW51pwE=,tag:4MiKklkRuvJuCvlu8tV07w==,type:str]
|
|
||||||
restic-password-nas: ENC[AES256_GCM,data:2uDszBmHa4YG1oYyhN4Wjw0Lcc6/MpmrCHldwNF22kFiokbx4R+zrd8ML4NvK1ezmQmMDhlb3RsyAcQNRgJ9Ng==,iv:96pdW1B6M97+eG1EC2YPbNmO4OQmt47uiJOWuvzdYzE=,tag:dQKHD+2LeWL5+tcQbrbN0g==,type:str]
|
|
||||||
restic-password-b2: ENC[AES256_GCM,data:ceHYbKn174cIm38qnlGvx9edxP8apPWkwx7wAkNncSF6kIE5OvXVsNAWcjsZKQLEgYXFX5NwLZMDPY0edtAhNQ==,iv:mDki/Soljcnp60cfihK2EqfTNHv/VnoieetBThFqLtE=,tag:5VMRM0fe4nFDal3BO+ninw==,type:str]
|
|
||||||
B2_ACCOUNT_ID: ENC[AES256_GCM,data:6u+UlYRILbb0TRTdISi7TdVItw4omfodFw==,iv:A+be6o3ZjfYsyvEk750DcoSlBsKYM2FncSY8kqkcpqs=,tag:9ReTmil5sAfo+04IfdaKYw==,type:str]
|
|
||||||
B2_ACCOUNT_KEY: ENC[AES256_GCM,data:p+irC0iQR3RjhmElD+tZcXcgWsV8ROGHsEOJ7kxXvg==,iv:2VgptxIaJ0v1e5jejLyBIPHnvxD6ldgTWn/3oa1M32Y=,tag:9gHDOD0524IAoQQLOytT+w==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5Mk5NMVNxOG5JWHhkMjlh
|
|
||||||
YzRyYVhYT2tncmVzRzB5NXc2aEZQcUVtVFUwCnl2U2JQSkdpTjZVb1pPTmlPeVRt
|
|
||||||
SURJNFFzUTFTdVZpckV5d2puN2xQTmcKLS0tIDUxeXFLdGxOdDVLdng2SFRWb296
|
|
||||||
NFpDSkZmYkY0Vyt4Nml3N3VXbFdZZ0kKfNoqtyb+16qpDdCHgp3uiDCHqtiDXEjB
|
|
||||||
p1kaQkgF6xqFohomV+6x0RsW+r7PaGh8oWRut0NBRahZwIKBucZUTw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-09-13T13:09:04Z"
|
|
||||||
mac: ENC[AES256_GCM,data:E8xZZ+0hdRPKE/nss00gopEg7feF7t4pXBqYkEtr9yzHn1Vz4Opfv4vBDDgwqntZdekE40rpzWTuPJDAfOrhDsCsgZjOgWa6VpSRNM9GQ37Ax/fv/G42CXtwBPCzY1p2GuXr9nsJI+/P4c6sx4FIXZ0o4QLCHuStkYpjbHlyIFA=,iv:LJCUP/KbZ0tZPdG2hedHfZMfYWS+w4T73JaI7nLe2uQ=,tag:J7GT2jm6iHFZ8oMV2ecEIw==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -17,8 +17,7 @@ spec:
|
|||||||
interval: 1m0s
|
interval: 1m0s
|
||||||
values:
|
values:
|
||||||
image:
|
image:
|
||||||
# renovate: datasource=docker depName=ghcr.io/hargata/lubelogger
|
tag: "v1.6.1"
|
||||||
tag: "v1.7.4"
|
|
||||||
|
|
||||||
updateStrategy:
|
updateStrategy:
|
||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/lubelogger/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"customManagers": [
|
|
||||||
{
|
|
||||||
"customType": "regex",
|
|
||||||
"fileMatch": ["kubernetes/app/lubelogger/release\\.yaml$"],
|
|
||||||
"matchStrings": [
|
|
||||||
"#\\s*renovate:\\s*datasource=(?<datasource>\\S+)\\s+depName=(?<depName>\\S+)\\s*\\n\\s*tag:\\s*[\"']?(?<currentValue>[^\\s\"']+)"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/lubelogger/**"],
|
|
||||||
"semanticCommitScope": "k8s/lubelogger"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/lubelogger/**"],
|
|
||||||
"matchPackageNames": ["ghcr.io/hargata/lubelogger"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/lubelogger/**"],
|
|
||||||
"matchPackageNames": ["ghcr.io/hargata/lubelogger"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Ignore infrastructure images",
|
|
||||||
"matchFileNames": ["kubernetes/app/lubelogger/**"],
|
|
||||||
"matchPackageNames": ["postgres", "creativeprojects/resticprofile"],
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -45,13 +45,10 @@ spec:
|
|||||||
- psql -d postgres -c 'CREATE DATABASE "prowlarr-log"' || true
|
- psql -d postgres -c 'CREATE DATABASE "prowlarr-log"' || true
|
||||||
containers:
|
containers:
|
||||||
- name: prowlarr
|
- name: prowlarr
|
||||||
image: lscr.io/linuxserver/prowlarr:2.6.5
|
image: lscr.io/linuxserver/prowlarr:2.3.5
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: media-common-env
|
name: media-common-env
|
||||||
env:
|
|
||||||
- name: PROWLARR__SERVER__TRUSTEDNETWORKS
|
|
||||||
value: ${POD_CIDR}
|
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 9696
|
- containerPort: 9696
|
||||||
name: http
|
name: http
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
mountPath: /media
|
mountPath: /media
|
||||||
containers:
|
containers:
|
||||||
- name: qbittorrent
|
- name: qbittorrent
|
||||||
image: lscr.io/linuxserver/qbittorrent:5.2.4
|
image: lscr.io/linuxserver/qbittorrent:5.2.0
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: media-common-env
|
name: media-common-env
|
||||||
|
|||||||
@@ -54,13 +54,10 @@ spec:
|
|||||||
- psql -d postgres -c 'CREATE DATABASE "radarr-log"' || true
|
- psql -d postgres -c 'CREATE DATABASE "radarr-log"' || true
|
||||||
containers:
|
containers:
|
||||||
- name: radarr
|
- name: radarr
|
||||||
image: lscr.io/linuxserver/radarr:6.4.4
|
image: lscr.io/linuxserver/radarr:6.1.1
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: media-common-env
|
name: media-common-env
|
||||||
env:
|
|
||||||
- name: RADARR__SERVER__TRUSTEDNETWORKS
|
|
||||||
value: ${POD_CIDR}
|
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 7878
|
- containerPort: 7878
|
||||||
name: http
|
name: http
|
||||||
|
|||||||
@@ -54,13 +54,10 @@ spec:
|
|||||||
- psql -d postgres -c 'CREATE DATABASE "sonarr-log"' || true
|
- psql -d postgres -c 'CREATE DATABASE "sonarr-log"' || true
|
||||||
containers:
|
containers:
|
||||||
- name: sonarr
|
- name: sonarr
|
||||||
image: lscr.io/linuxserver/sonarr:4.0.20
|
image: lscr.io/linuxserver/sonarr:4.0.17
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: media-common-env
|
name: media-common-env
|
||||||
env:
|
|
||||||
- name: SONARR__SERVER__TRUSTEDNETWORKS
|
|
||||||
value: ${POD_CIDR}
|
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8989
|
- containerPort: 8989
|
||||||
name: http
|
name: http
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ spec:
|
|||||||
targetNamespace: media
|
targetNamespace: media
|
||||||
values:
|
values:
|
||||||
image:
|
image:
|
||||||
tag: v3.5.0
|
tag: v3.2.0
|
||||||
podLabels:
|
podLabels:
|
||||||
app: seerr
|
app: seerr
|
||||||
extraEnv:
|
extraEnv:
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: tika
|
- name: tika
|
||||||
image: apache/tika:3.3.1.0
|
image: apache/tika:3.2.3.0
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: Europe/Kyiv
|
value: Europe/Kyiv
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: paperless
|
- name: paperless
|
||||||
image: ghcr.io/paperless-ngx/paperless-ngx:3.3
|
image: ghcr.io/paperless-ngx/paperless-ngx:2.20
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
name: http
|
name: http
|
||||||
@@ -86,31 +86,6 @@ spec:
|
|||||||
value: allauth.socialaccount.providers.openid_connect
|
value: allauth.socialaccount.providers.openid_connect
|
||||||
- name: PAPERLESS_SOCIALACCOUNT_ALLOW_SIGNUPS
|
- name: PAPERLESS_SOCIALACCOUNT_ALLOW_SIGNUPS
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: PAPERLESS_AI_ENABLED
|
|
||||||
value: "true"
|
|
||||||
- name: PAPERLESS_AI_LLM_BACKEND
|
|
||||||
value: openai-like
|
|
||||||
- name: PAPERLESS_AI_LLM_ENDPOINT
|
|
||||||
value: https://api.anthropic.com/v1/
|
|
||||||
- name: PAPERLESS_AI_LLM_MODEL
|
|
||||||
value: claude-haiku-5-5
|
|
||||||
- name: PAPERLESS_AI_LLM_API_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: paperless-ai
|
|
||||||
key: anthropic-api-key
|
|
||||||
# Haiku 5.5 only accepts temperature 1; llama-index defaults to 0.1
|
|
||||||
- name: PAPERLESS_AI_LLM_EXTRA_PARAMS
|
|
||||||
value: '{"temperature": 1}'
|
|
||||||
- name: PAPERLESS_AI_LLM_OUTPUT_LANGUAGE
|
|
||||||
value: Ukrainian
|
|
||||||
- name: PAPERLESS_AI_LLM_EMBEDDING_BACKEND
|
|
||||||
value: huggingface
|
|
||||||
- name: PAPERLESS_AI_LLM_EMBEDDING_MODEL
|
|
||||||
value: intfloat/multilingual-e5-small
|
|
||||||
# matches the embedding model's 512-token input limit
|
|
||||||
- name: PAPERLESS_AI_LLM_EMBEDDING_CHUNK_SIZE
|
|
||||||
value: "512"
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: data
|
- name: data
|
||||||
mountPath: /usr/src/paperless/data
|
mountPath: /usr/src/paperless/data
|
||||||
@@ -135,9 +110,9 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 1536Mi
|
memory: 512Mi
|
||||||
limits:
|
limits:
|
||||||
memory: 6Gi
|
memory: 5Gi
|
||||||
volumes:
|
volumes:
|
||||||
- name: data
|
- name: data
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/paperless/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/paperless/**"],
|
|
||||||
"semanticCommitScope": "k8s/paperless"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/paperless/**"],
|
|
||||||
"matchPackageNames": [
|
|
||||||
"ghcr.io/paperless-ngx/paperless-ngx",
|
|
||||||
"apache/tika",
|
|
||||||
"gotenberg/gotenberg"
|
|
||||||
],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/paperless/**"],
|
|
||||||
"matchPackageNames": [
|
|
||||||
"ghcr.io/paperless-ngx/paperless-ngx",
|
|
||||||
"apache/tika",
|
|
||||||
"gotenberg/gotenberg"
|
|
||||||
],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Ignore infrastructure images",
|
|
||||||
"matchFileNames": ["kubernetes/app/paperless/**"],
|
|
||||||
"matchPackageNames": ["postgres", "redis", "creativeprojects/resticprofile"],
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: paperless-ai
|
|
||||||
namespace: paperless
|
|
||||||
stringData:
|
|
||||||
anthropic-api-key: ENC[AES256_GCM,data:kTSTHIO771Zl8/kEyv1seKF1GyodZ4lxhjUSjsyIyCneC+aFdqrq/QYFnqtlQnjBOMq94LQxy0T4Ox2an2+0v2ywP+lIZzYDkE22JdXgbJgCW2aJTBqPtEFV7M2EP0LexDeD2aqebwicxA==,iv:IeO0+Y3jAL0iYM3UbpTtFU7TgqogUYt2gipYUJO2ABQ=,tag:qffHT+GkrNWFmJ1EffHEWg==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4Nzg2Zmc4ZVNvRzhzQmVp
|
|
||||||
Mlp6MXhRUExmOU1yWHRESmhBQWlsczZCZEQ0CmkvZDEzVTFwWmt6N3E5eXlsQ0d5
|
|
||||||
VDU1YWIvRDdocXFQNlhnK29CNDVtME0KLS0tIEMybTgzaGs4cVEyeTdEL1RPUmR3
|
|
||||||
S2VvK2FMZ0JnQWJUZG41MmIrRjkxVHcKzjclDColGY9ciQZPRodQrH8UkmsHTsTC
|
|
||||||
hExT/sbhwIznhryfzw/Wkgrm8bzH4NxEkjOWRXvEEJ7Fp5gkvfo0tQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-10-10T18:39:57Z"
|
|
||||||
mac: ENC[AES256_GCM,data:SG3jk09+cI2mYvovl8PvT5Ay8QrD/wWYVJAdJWhE83bI+MgwgoXvkdW9B+3epcIfvNWV4Z83w2vS89+bo5k81CEIu66yAQPDA+wSCReiRalZdHYGidmnW5ZccmfjTGTNRIIY8RbJlB2ZW6EJJnjjT8Bp4wZskIk5EhGhU2+5jg8=,iv:XeyO9yKzZv6qHwe3LfBqqeRJ3gnU1AmGmeVv3Zp/UyY=,tag:xCgbaWR4fd738hF2T/QVAw==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -27,7 +27,7 @@ spec:
|
|||||||
mountPath: /data
|
mountPath: /data
|
||||||
containers:
|
containers:
|
||||||
- name: pihole
|
- name: pihole
|
||||||
image: pihole/pihole:2026.07.2
|
image: pihole/pihole:2026.02.0
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: pihole-config
|
name: pihole-config
|
||||||
@@ -95,7 +95,7 @@ spec:
|
|||||||
mountPath: /data
|
mountPath: /data
|
||||||
|
|
||||||
- name: dnscrypt-proxy
|
- name: dnscrypt-proxy
|
||||||
image: klutchell/dnscrypt-proxy:v2.1.18
|
image: klutchell/dnscrypt-proxy:v2.1.15
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
|
|||||||
@@ -4,19 +4,19 @@ metadata:
|
|||||||
name: podsync-config
|
name: podsync-config
|
||||||
namespace: podsync
|
namespace: podsync
|
||||||
data:
|
data:
|
||||||
config.toml: ENC[AES256_GCM,data:MvMimo9Cn94BXQzCQqnlt3z0aSzoDwq5t2I9OHXATGuX2+q7lTksBMh3Vz5CHm5YY9xvXtPqO5kRPtoYuaDwvsM3vWe9zXclThJOQJqND/haV188yvoDw1jCWe7a2zGQ3SsgpJYBncZJ44/cMYn9mWj7wXdUegFOFfi/4g+xGBZ2c4aQmJAD5lHz3PJW9WrDYqlfBbX8Ipt1OQtZd1FKHSTmbifqvzoLv34qUKxz/LY9RiFOpBNXRhH53aDRpiMuHdtl4I9eFZi4B/EXqhdFZXLCTAKMi2bDT2xSHkefAfexvyHzV0Uv2z+ZWdzuUua/S17JHkA53sIxMk60bkE9VU8JDuStqRGj1kZy7dgGoKZceuK7O7SF9RMj6f/zsnmAYhye65T0EziK764TqEMibOL/tgfOMSmQcEae4+YzuD9KepTe0sLjowFRfb7fwCHMU/AO96u0HyWx67mrZwPMCyffCPIZDKPflQ+qPpmcSqGHJ7q7TBiPyPApv/Vp/91oULuwPLlgY7ovLvfV5xsjzKkeFHsYB2G+rgG2qGMvykAwtGaoD65/Cm4PG6rqy9pUKEy3yU+cX6ie2uX1aAKBsBSMgZsT9+fK7Eh/Oq/O9jwiCbDztEQ0CpSAVxwHDEwHa5ibCDFCSw92/JKEu/wy8Mt5xzeXbZt9t9tgB2jrZlYUfRNqlPPjYsLAd4WLSlovqKg7qkn6u96tXaMAagdSXu7P4Su4GjMljai4az5FQRUoIC6t6aPa9pIU+JHmI/UzX6dnrX7RygkfIFZyl2llpmtoICKOZkA58/3arzebkrcpASWn4g3gNIEFUa6Cxev9WAk557LLybJ4bc9meqyZfagsCATk2HfAaVMWvWu+Ul3w2DaXoklbOPlT1Mn+WtpHT1h6wj0h7JDz+WYA88Bk9f+aAxPPSv+JE6lEzrnCtPxFHpNmN6iSvX36S6ZKAJO/djDkHt/A2D52mme6j1GGfwZ3UtKACgDEV6fvw+Rcedu3O9IvyzOQZwxOODasIN4nhPzfyhXvHQT9sjZSMIYoKIlfVEylfEEHtlc3eHc18WUMpFJROUuteDmiAalD+swNBNZ6xEv2KTjkK3kSMvbdkC0ZyFZf43D72JCLwHK4Pcn3vFUeXQ3pZVjSTSnDntcs6HPJvBywxQqUmj02zks47TfOVcdWGSeZ2hmyTqrQfHD/n5ChO2yp0629CqlGtBfnQht+tUo7vnUNiY1+vbCHzAi3D4mBCQs4ftOvPqbWmN/s1NbPG9+TR/BricGoRTr5nNrlgtRBA8DEldpQjEyvrtIEoS/qgKeNFOVBqs8mHBr0fnk4ZQgMJx2KOPxcG210xfvQOOmhUHbdo1fF7K430TsI/PszN2QsI8MgmSoLp0CoeQWdVzWiGbOyww6vdYMgstELWE9YVrr+EXIp2lcwvIZFDApRx9PofArUNEGIiOQJ9BLR9QjFiicLXboz/l6XuQov4nnLJc9oL7Jfyv3zjbnCzzhwFN+bs0RjaBqEv7uA6BAnPre7tSwKqNjTwyPu9DSffGiZFQdjtGZgYyxxGiMAqE++vj5eU8YVkVO9BO7sMfa4pl0GH7g6Lu7MSMv5B4MU79RTjr5E5n/LCIIcWF8PE963NATScK+rh8BmEC6tm3VQ4FFAT+wwX8vGlBIFJ0Xr0hpgr6tnKD9vFMx+wHEvJEydQZgDDmmOyOWHe+eNWdJxSTZBSrteGx62HysjeA0Xivb9dH5qgF/UDNNNDFjrAqyEALfke+XTOX9PkvOwP7S+RcfkfNH2pIALYksSox8+CSUrEfSffFmywn7mrGP5moFHod3kHQumF+/HLAlP6AvU+J1WNrXggNn85mPcFuHhR8tW5JNpvUpDhVzM7Jzb+4ZM3y6ZE3Dk+cdrfBntdh6p6i3VIfX0/pmm8hgzbKn/V77SYEkUaX0n7pjyjYrRMoGOh7qOjKWgxla48LthD4JS8qxIMpmbMy6z1Fy5PY3/gFJ7ATmKgdj2UgB5Wy/48P18HQZ665gnInBLpY01f59XaCVCoPZ0oszzht4Xcyl7mW3a5voh4DTqtKcrPlVKC7Acjuobi16/gtUUOwsCR0AQa9XTqT+yvX0rZwG0TNeLWBOchWX1HGFrrGN/m2GY5LmSXmcIfTb0KVy7ufQWblnbLxmUSvhwtbu2hwc466B2NFijlqJd3fi4Tz9xRdX0JJj0BV4A75agqg==,iv:ArCBeoyoh0RvuQSQ9W6RNF83T5ukZzBUaMZ5QIX9Jmw=,tag:7FFKbTG3iWeADE5fWdo25w==,type:str]
|
config.toml: ENC[AES256_GCM,data:Rq80V/j8GZdpvxKrnVG+wc6EXbVDeD0y73yKLKMcBvPPGWlOM8XFEJXn2ObEzGj0k3NzFaimyfpM9nf3wigPZWIstyNoy/cvBiIPdojjfcB1cjsEKTR8opPfOu7G0gLyFNc8FST3Odug1Ja66BeDFAIEa2L7m+H0HMT0SxGYJ5avK0T12N8mQjeBd7C7WDqI4azKcTS49whfCJ4/GgGtKReb0X8dkCa3gxcmzx/EoD8aGlPvpcUvjVEu8NFWWEKDltI+vrC5qw6V1ICYFvhH8HmAu+FMWfE7jXi5RhYvq4j6VnT0n5ypdCDzIT2xrQv+HYdJ6fCI/HvI7kVnQRdEj+8Blu0A82HheoDhRlzY3AQofU2FYudNuRW4SV+al0/Iw8Hb+uyevg4qTQLnJ8m8paLnzkH7ajo/IPAw+o1Ag2yjcnEJLHFFMhPGQNuA8/OFQt5R0avmPsjPoLqVWIWe4XDscWhvd05UvTRDLeFvmnHtq+dvBbam2kPBPTr2TaSC0SAxfx2W+fpk7nXi77zMVyHQLkNsTCXR+OxdaQvrd+1/X9eYDI+PwFJL77QLfKYI4z2RCx580T33CHoxq799R6g8Pir9dBi/lx/Y/VmNuR8UoJbyhfr5QidlyDOai1c6slna3tg1MgSjplxl3nPCjaaae5TcM53J3FR4TUJ1qi/rdE2OvMEaY1yctix50Z7Bqzi1H7oH2BDgakOkE3oN6Zh6lNHuDEeF5cYxAf8WxgdypYe/4uoiSdkZ8UHTB7Rr6uQsqJLkc6P0EmOh/52/+eKtp+0Us3pxsbGkLdVZhuj5GahQZsdoiverU9eRJFhY7LTBDOVx3xYFKRWV8DmcmG5bWPuW48YTklrq61eVgnLfX964dyvTNNskLMCX7qMzs/FLfD+TsLiyAPnsxaypQAIkb3U1Ubr87QuQa1x5at0/m2HFC7Hw13b6lvzU2PbXTQjbLgjBBvGi82XpFx4LgO/+v+T5ICBqoH4whAn3FedfBZsShyThBkT+jg29EfrNyYdFbjYD0m3ga0nWHrILikjtMk2Fp423pejXcAuOiwVIOHJil3ODSTo+9iswKmiShxHPzCQNTJmfkH9nbFOD1HHA6qaEu3O32UjB7JoWxYWpKvnn/xXj2AUMS0ngvGeklKcREOIA5ubJoU89wBDBEh9NoTp2sPQ8REoFufR8SSSVh1cBPiUowT/dXGiUvufhtzuqGxvfE/KwAQLHys4xHhhKT9ulAd3nhCD49gojL515VlzQ15491HVk4vISm2YbDfdwnRxRfXsypKzghTZh1KcEbbYfowKobCC61V95YioGEF5jEiQH3Y+92iqTALayTWUjktqMbyNI6UKhQNEjsQTeRRNCcoTPQdB2nV44MFVF+AiWnhU+vpoteLqO84ccrvwHUneHIjVx3zw6GBpDU19CSsHAM1SPIzPVcgNn6hlqs+MSy+Teu3i3t/ByV3MQQJEkCANKsLoItthXzEaXy+52D85gxhpcOkyj97NFH9PiY9XVG3bXQpJlJTJOdnjG7ori3w7Rfedi1d0rzNGHCnmFJ2fjomb2zmwfDvIR+el6WBg0a8dAkPwkq4Myiu1TsQ==,iv:IBKFowkljRfrknG9K6Spq5clPqn/M3+W94h2vu7Er2o=,tag:9MO97fAJDDvYZmsIkIyj5Q==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- enc: |
|
- recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
||||||
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaVFQxWG40NEVzcVBVTmp0
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2QTBUbnNBcGFhYjNiNGRG
|
||||||
bXJrWlRmdW0vK0JaaytiamNrVGM0dG9lQkYwCldjSVQ3akhlbTNITUxvTEE1Z2pY
|
T3JqdFY0dTIzWDA3OGNVUkoreVhONXVDeFVVCkR0amlYMThyejlPaWlPSkdGL0xy
|
||||||
WGFjQTBoT2w0aXFreFdwcVlVWlBhRGcKLS0tIDBYRnZaK2FkL0YwRkZZb2loRmQx
|
YUN3VEhGajJoQjNiRVV5ckw0cE1JaTAKLS0tIDFSWnpWWVFxQ0VVY2U4bUFtTWVk
|
||||||
VkZOR2g4bWJQTlRudVoyU01KT3FVREkKgqZ3NJtwtWgYThwdOxrerzl0KlaS5Wve
|
bkg3K01kWFl4ZWZuK21KRTIxUEhDUEEKPGWzrJlyZGNOsvrVhWKw56y8iAwrqDQK
|
||||||
QxiwAtIrK+zXp/JL0q4UEVs5duO8VnrlS8kc1LvxR+uDt9iVpAWyeg==
|
OWJYIq0gt9NWfNBao8UpiuKJXU4SX01hW4fa1OEfGSDJAjNNxGpFVA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
lastmodified: "2026-04-05T14:05:23Z"
|
||||||
|
mac: ENC[AES256_GCM,data:JRyHvPgWIoGQHtVu6EbN1QKr+Cg9nCwQl4i88g75Pc85cyrjB7qCb4L7J7Oq34WfAMnXMEP/PP6RIK/i9s9tiJ4YH9ZO/K8HhIoLjCl5uMjFzjybTUwLmBL0RdSAkf6wfX/G4LNRpD39cb2eLz0lvQm9RzdICvM1MNuPEeohlUk=,iv:NVlJzKoKDIySCP3W0PJqheplPN3FdUEN07E03sbk1fE=,tag:nOZyzssD9jqT8oEhf6K+qQ==,type:str]
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
encrypted_regex: ^(data|stringData|email)$
|
||||||
lastmodified: "2026-09-16T20:20:54Z"
|
version: 3.12.2
|
||||||
mac: ENC[AES256_GCM,data:DY3u/NKp/be29EqpFoWE8B+b6t2rjJ4yy+3iONYgG0o04o8FfAr4IsToncdN9p1SZNqtEyxTmogzazRxqp2eTe4TBBg+Uqnpl2yEWhj9+ESIUJs+2YoWHpnB97+VOHy9hN6jDtUWSoIH7B1E4O54u5dISiw35v5O1bEl4Oxk8fk=,iv:9tUIfbmnjJ1D7nDIYoTxtmtA9Wah5wNwnzeZQkNh2U4=,tag:FNYW90bX5zxTBEb5aRBskg==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: podsync
|
- name: podsync
|
||||||
image: ghcr.io/mxpv/podsync:v2.8.0
|
image: ghcr.io/mxpv/podsync
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/podsync/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/podsync/**"],
|
|
||||||
"semanticCommitScope": "k8s/podsync"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/podsync/**"],
|
|
||||||
"matchPackageNames": ["ghcr.io/mxpv/podsync"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/podsync/**"],
|
|
||||||
"matchPackageNames": ["ghcr.io/mxpv/podsync"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: reitti-db-backup
|
|
||||||
namespace: reitti
|
|
||||||
labels:
|
|
||||||
app: reitti-backup
|
|
||||||
spec:
|
|
||||||
schedule: "30 2 * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
successfulJobsHistoryLimit: 3
|
|
||||||
failedJobsHistoryLimit: 3
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: reitti-backup
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
initContainers:
|
|
||||||
- name: pg-dump
|
|
||||||
image: postgis/postgis:17-3.5
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
env:
|
|
||||||
- name: PGHOST
|
|
||||||
value: reitti-db
|
|
||||||
- name: PGUSER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_USERNAME
|
|
||||||
- name: PGPASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_PASSWORD
|
|
||||||
- name: PGDATABASE
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_DATABASE_NAME
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- pg_dump --clean --if-exists > /backup/dump.sql
|
|
||||||
volumeMounts:
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
containers:
|
|
||||||
- name: resticprofile
|
|
||||||
image: creativeprojects/resticprofile:0.32.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n reitti-db backup
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n reitti-db copy
|
|
||||||
env:
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-backup-config
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-backup-config
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
volumeMounts:
|
|
||||||
- name: secrets
|
|
||||||
mountPath: /secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
volumes:
|
|
||||||
- name: secrets
|
|
||||||
secret:
|
|
||||||
secretName: reitti-backup-config
|
|
||||||
- name: backup-tmp
|
|
||||||
emptyDir: {}
|
|
||||||
---
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: reitti-files-backup
|
|
||||||
namespace: reitti
|
|
||||||
labels:
|
|
||||||
app: reitti-backup
|
|
||||||
spec:
|
|
||||||
schedule: "30 3 * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
successfulJobsHistoryLimit: 3
|
|
||||||
failedJobsHistoryLimit: 3
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: reitti-backup
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
containers:
|
|
||||||
- name: resticprofile
|
|
||||||
image: creativeprojects/resticprofile:0.32.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n reitti-files backup
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n reitti-files copy
|
|
||||||
env:
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-backup-config
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-backup-config
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
volumeMounts:
|
|
||||||
- name: secrets
|
|
||||||
mountPath: /secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: files
|
|
||||||
mountPath: /files
|
|
||||||
readOnly: true
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 256Mi
|
|
||||||
limits:
|
|
||||||
memory: 1Gi
|
|
||||||
volumes:
|
|
||||||
- name: secrets
|
|
||||||
secret:
|
|
||||||
secretName: reitti-backup-config
|
|
||||||
- name: files
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: reitti-data
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: reitti-redis
|
|
||||||
namespace: reitti
|
|
||||||
labels:
|
|
||||||
app: reitti-redis
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-redis
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: reitti-redis
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 999 # redis user in the alpine image
|
|
||||||
runAsGroup: 999
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: redis
|
|
||||||
image: redis:7.4.11-alpine
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
# Cache only — no persistence, so no PVC.
|
|
||||||
args: ["--save", "", "--appendonly", "no"]
|
|
||||||
ports:
|
|
||||||
- containerPort: 6379
|
|
||||||
name: redis
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /data
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 6379
|
|
||||||
periodSeconds: 30
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 6379
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 20m
|
|
||||||
memory: 32Mi
|
|
||||||
limits:
|
|
||||||
memory: 256Mi
|
|
||||||
volumes:
|
|
||||||
- name: data
|
|
||||||
emptyDir: {}
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: reitti-tile-cache
|
|
||||||
namespace: reitti
|
|
||||||
labels:
|
|
||||||
app: reitti-tile-cache
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-tile-cache
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: reitti-tile-cache
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
# nginx image starts as root (renders nginx.conf, binds :80) then drops workers to nginx
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: tile-cache
|
|
||||||
image: dedicatedcode/reitti-tile-cache:5.7.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
name: http
|
|
||||||
volumeMounts:
|
|
||||||
- name: cache
|
|
||||||
mountPath: /var/cache/nginx
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 80
|
|
||||||
path: /health
|
|
||||||
periodSeconds: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 80
|
|
||||||
path: /health
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 20m
|
|
||||||
memory: 64Mi
|
|
||||||
limits:
|
|
||||||
memory: 1Gi # keys_zone shared memory: 512m tiles + 128m panoramax
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: reitti-tile-cache
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: reitti
|
|
||||||
namespace: reitti
|
|
||||||
labels:
|
|
||||||
app: reitti
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: reitti
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
# The image starts as root only to remap UID/GID and chown /data, then drops to
|
|
||||||
# reitti (1000). Running as 1000 directly skips that; the NFS subdir provisioner
|
|
||||||
# creates directories 0777, so /data is writable without a chown.
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: reitti
|
|
||||||
image: dedicatedcode/reitti:5.7.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: http
|
|
||||||
protocol: TCP
|
|
||||||
env:
|
|
||||||
- name: ADVERTISE_URI
|
|
||||||
value: https://${REITTI_HOST}
|
|
||||||
- name: JAVA_OPTS
|
|
||||||
value: -XX:MaxRAMPercentage=75
|
|
||||||
- name: POSTGIS_HOST
|
|
||||||
value: reitti-db
|
|
||||||
- name: POSTGIS_USER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_USERNAME
|
|
||||||
- name: POSTGIS_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_PASSWORD
|
|
||||||
- name: POSTGIS_DB
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_DATABASE_NAME
|
|
||||||
- name: REDIS_HOST
|
|
||||||
value: reitti-redis
|
|
||||||
# Tiles are proxied server-side through /api/v1/tiles, so the in-cluster URL works.
|
|
||||||
- name: TILES_CACHE
|
|
||||||
value: http://reitti-tile-cache
|
|
||||||
# Authentication against Authelia over OIDC only (redirect URI /login/oauth2/code/oauth).
|
|
||||||
# Unknown Authelia users are auto-created as regular users. With local login disabled,
|
|
||||||
# the next SSO login clears the user's local password and syncs the username.
|
|
||||||
- name: OIDC_ENABLED
|
|
||||||
value: "true"
|
|
||||||
- name: OIDC_ISSUER_URI
|
|
||||||
value: https://auth.${AUTHELIA_DOMAIN}
|
|
||||||
- name: OIDC_CLIENT_ID
|
|
||||||
value: reitti
|
|
||||||
- name: OIDC_CLIENT_SECRET
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: OIDC_CLIENT_SECRET
|
|
||||||
- name: OIDC_SCOPE
|
|
||||||
value: openid,profile,email
|
|
||||||
- name: OIDC_AUTHENTICATION_METHOD
|
|
||||||
value: client_secret_basic
|
|
||||||
- name: OIDC_SIGN_UP_ENABLED
|
|
||||||
value: "true"
|
|
||||||
- name: DISABLE_LOCAL_LOGIN
|
|
||||||
value: "true"
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /data
|
|
||||||
startupProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 8080
|
|
||||||
path: /actuator/health
|
|
||||||
initialDelaySeconds: 20
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30 # DB migrations on first start / upgrades
|
|
||||||
# Generous timeouts: large imports (Google Timeline, ~500k points) keep the JVM busy
|
|
||||||
# for minutes and /actuator/health answers slowly; a 1s timeout got the pod killed.
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 8080
|
|
||||||
path: /actuator/health
|
|
||||||
periodSeconds: 30
|
|
||||||
timeoutSeconds: 10
|
|
||||||
failureThreshold: 6
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 8080
|
|
||||||
path: /actuator/health
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 5
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 1Gi
|
|
||||||
limits:
|
|
||||||
memory: 3Gi # heap = 75%; 1.5Gi ran out of heap processing a large import
|
|
||||||
volumes:
|
|
||||||
- name: data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: reitti-data
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: reitti
|
|
||||||
namespace: reitti
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
# No Authelia forward-auth middleware — Reitti authenticates against Authelia
|
|
||||||
# natively over OIDC. A middleware here would break the OIDC callback, the
|
|
||||||
# token-authenticated /api ingest endpoints (OwnTracks, GPSLogger, Overland)
|
|
||||||
# and magic share links.
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- ${REITTI_HOST}
|
|
||||||
secretName: reitti-tls
|
|
||||||
rules:
|
|
||||||
- host: ${REITTI_HOST}
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: reitti
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: reitti
|
|
||||||
@@ -1,133 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: default-deny-ingress
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector: {}
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-ingress-controller
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- namespaceSelector:
|
|
||||||
matchLabels:
|
|
||||||
kubernetes.io/metadata.name: traefik
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-app-to-db
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-db
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-to-db
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-db
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-backup
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-egress
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-backup
|
|
||||||
policyTypes:
|
|
||||||
- Egress
|
|
||||||
egress:
|
|
||||||
- ports:
|
|
||||||
- port: 53
|
|
||||||
protocol: UDP
|
|
||||||
- port: 53
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 8888
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 443
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 5432
|
|
||||||
protocol: TCP
|
|
||||||
to:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-db
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-app-to-redis
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-redis
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti
|
|
||||||
ports:
|
|
||||||
- port: 6379
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-app-to-tile-cache
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-tile-cache
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: reitti-data
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: nfs-synology-ssd
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
---
|
|
||||||
# Map tile cache — recreatable, not backed up. nginx caps it at 2g tiles + 1g Panoramax.
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: reitti-tile-cache
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: nfs-synology-ssd
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 5Gi
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/reitti/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/reitti/**"],
|
|
||||||
"semanticCommitScope": "k8s/reitti"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/reitti/**"],
|
|
||||||
"matchPackageNames": ["dedicatedcode/reitti", "dedicatedcode/reitti-tile-cache"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/reitti/**"],
|
|
||||||
"matchPackageNames": ["dedicatedcode/reitti", "dedicatedcode/reitti-tile-cache"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Ignore infrastructure images",
|
|
||||||
"matchFileNames": ["kubernetes/app/reitti/**"],
|
|
||||||
"matchPackageNames": ["postgis/postgis", "redis", "creativeprojects/resticprofile"],
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: reitti-backup-config
|
|
||||||
namespace: reitti
|
|
||||||
stringData:
|
|
||||||
profiles.yaml: ENC[AES256_GCM,data:aVuPPechcaGmXT0g6OTnISgGR2ZdBJvqrf6mpDJyIERXZiQC8aVq1RtkUeyVMs7Hed8OwuRfuo5xlG5206Bg8ynbBFEWsl+sbWRWOa9g+qSnO84Fhej+fbHITzC2BPk1q85CWJUpVcdHq1vgyKYluJpuYpS3HzrinsjTFpiziC7ft/lFjzebdlkFZgvq6cPFzYqP/8f54GOkYaR/cNr6ux6QLsbA3rfPOAfsMiaZFt3JfbTRNfqcM4eZw04N3bf4CVpyPjR69HZvlzHw0Gje+GX3vdez8bByUxo40aB9Aisvr/HeTM8L5njQDefN/zH1VGTSV2LfNk81soSowtxJ3RZ2hZYnx4dz0XUggvGqR5dhlGvT3pDK0v9lkRM1ahZw1x5q2zd3K7IcQLwYSckRdwC0j9vc8TUkHhyg+9x5TRrGy9hA4rCJtsGzTU/Sc4dcobueFXBGrIg9raTDknEo1D4Vq7H74Ce9RnemYlb1KJsjrtyqrpKkzIAChL1b6xhgOzg5YJ2UH6+laEsbC891OZp2PEdQY1lA8n36HXflsZnIQY8SOhToR6FoH3qzOB79a2I5jmJHI9O7S0L6NO2+fFDRgMbUNeIa9yJacN297Qui3paGQTcsGvSGQ7eAEH06VZXU/DX7TU0XiLfejIohm78QSmO7ZcTBxlQ1OTHc1Kiny1e0SomY7kxs1OL4SSBJirmymojuxogOGWblxt2AOz37eCFgp8L3sRPSHWGM982na6Ko7zUw1/bhukGoN445DsiuV59ilXSA0W5ci/PfrqzFOqZWKKDZfE89nCf+2P1thS3DmOpJnlG8tq5rde9QAqT0mgcvxo5Re+Bf/Ehavo0t79Gy35c6EEwPK8lEFXlSib84mfRiMnKBV60cQ4HS3xy78xLKPvjBpM4s8vbnMY4GJxCNAzOivhAfHAU3vTp/ZP8B0LJp7bNk7tre/gR+Q1DuqhwyCjo8sUZi4Cua3ILiKvcvU8ZXvjz+LfIymDocIxeFtRGHA2KceURa25v0hWrEI0Qzaz1m5XeYg76HhjcCU5WqT8CuFZNDlf+35uyKxhOZqr7kT2J/nZ/VYF2+sz9oBmeH/VW3OdgIc203e8wQIPBTd8OYpkabnwxDMlyiaG8MySZORS7kyD88Sy8bFJUN9IO7svav0WxZhJn4atAc2iqH81Y1s4WE1i87UqUDtwd5nOKXUFf8Fr6jXpB8G95hJCzgLFtrmX/6eg==,iv:Kp9nml6af8RmrVIIvAv8m647mMm5oe02T9TqkyIVY+U=,tag:WYbdlHbstN6XhcIP53VpqQ==,type:str]
|
|
||||||
restic-password-nas: ENC[AES256_GCM,data:FSRmDhSQHfHXomxPhefQ3WJNPVzSCNw/ML/mCiloViEkpVj92vcQbA==,iv:ijS0gKwp4dc/Oq346a/KLFnDBkPfhPzr4IUHbziGPxs=,tag:gE2wAuk+zWUJHgPlYQvwjw==,type:str]
|
|
||||||
restic-password-b2: ENC[AES256_GCM,data:4f0xRAKnWLsOFvu0GVu2FK7w8QS/w21AkCjSho7C1q8CV4aJSovvVA==,iv:WOru20OWYoN9jtW2iUdXpfuLd2SWiBXQ6Ncp5FUsRcE=,tag:vYa+obqI7gBHk9wY+tkIwg==,type:str]
|
|
||||||
B2_ACCOUNT_ID: ENC[AES256_GCM,data:52us2nMzoQ7p+I/+9+mJa+DK+MT8CdBDsg==,iv:E/ifDPwDyRJXOZBTPPwpLwCZzQ0n9IN+cdO/3O3u2e4=,tag:dFH0C7bZi4EcevoMJamzuQ==,type:str]
|
|
||||||
B2_ACCOUNT_KEY: ENC[AES256_GCM,data:jYDWYUj42GEtubZ5+RmYc+FT2FbJwg1PrzgtCb8I7Q==,iv:ZVvWw2aBv0iPAFzCn3L3MC3pwR/ru4zTDx0KsTiSQD8=,tag:PXLsKsT9ccSrZwUUONWnpQ==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCMDliMG1iNTVrNUZ2a0li
|
|
||||||
Tkc2WXFLbGhlbFYwdkovcjNZYXJBa0V1MFc0CnVEaEc1bzBCK0czSHh4dGE5Ky9Y
|
|
||||||
NjFWWGlScGdpODU3KzNmQzUzS3FkeVEKLS0tIDRXbHpST0RySVB1UEVRbWVYYytV
|
|
||||||
SzV4Q01MaGJGNmxqMm50OWh3S1RCbkEKaKPeVOU9Gvg+7RImg0BSLyl8DUNzCJDm
|
|
||||||
9gQd9z8IwciZE4St53kYSbQNCKMjz4yUc4mrbW04IXs5cTbnCLBspA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-10-03T20:31:00Z"
|
|
||||||
mac: ENC[AES256_GCM,data:Jg964qmIW9hSp4N+4stwmE24qi4sNQfUA0YM5rH1QHWbeZS1gAXszgQQPPrOw+hStgNWZbsgiMJVIvF3v13qgMh6ZVSAFMmf3fWJ+tN6Dhrj79Qx+klaI8qXpXQsLvHX0gJFYBAyPvtBPoDRnHK8X/twAKm03QtCLCMHv3LnQ6Y=,iv:2De8vyYSIMKTWUXB0k5VAojeTFXuCwiuduXeGcCMHmA=,tag:eZzK4MPeCJItfYbbwQXJZQ==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: reitti-credentials
|
|
||||||
namespace: reitti
|
|
||||||
stringData:
|
|
||||||
DB_USERNAME: ENC[AES256_GCM,data:s5+3cPVq,iv:xgQHj/ORXzDDsOoZZruGQrGTU+y+BRwkWC7Tk3CSAuI=,tag:6p6OdIL4CR0UDiiKOVsttA==,type:str]
|
|
||||||
DB_PASSWORD: ENC[AES256_GCM,data:GoWO3wMx2R7BAgkfb/GAk6vd7wIrbL8uqaCWf2TMwpgCr8yCY0mifw==,iv:KTkH59Woh/QBkx5lHWv/iV9LqrA1Q1NcpwtDkUKJAaY=,tag:HpHvG8kW2+RTDS0L1DjJQQ==,type:str]
|
|
||||||
DB_DATABASE_NAME: ENC[AES256_GCM,data:/Xrjy1quYwI=,iv:whj1qsDAKMqCeW8Ge+M0cZEjiSpYZizlXfBy3bhIbbg=,tag:8WrJv7bgFbbxIrz3uCZumA==,type:str]
|
|
||||||
OIDC_CLIENT_SECRET: ENC[AES256_GCM,data:WHk4EOUrYj7PnJiahEAy6yL7X155bj3s4wn7nzbeS8YHR5OOCIHa1b/atf1S7bktStkllIOg+EhmzGoHYFUgNg==,iv:zCsaEmx+9kvXGw8Lda+Qi7kIRl1kU7nWk9flFJzeZyA=,tag:eGD1noK0YBjVsIn23vnixQ==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBseDh0cGhIZkU0WHNJdThj
|
|
||||||
K1dWS29TSUhPWEFxdi9EOG1aZmlKcVJTTWxVCkM3RWtTOWl5Y0psU3BDNmFQSnFT
|
|
||||||
aGlURkFzOVVNd3FWclBYbEpIRXJ1QjQKLS0tIHQrRS9hRVVIYVBIazJFNGxhNWJm
|
|
||||||
dFFocWFxVkJIOVc5aUppQ2p3R2pNU28Kj2q+bIxGc14s8qs3Uc0/Dc9tymLMsT2o
|
|
||||||
x7dDpozVupQY/Pqo4RqWp6/OIOjVSTtqKV8A99KTyp9HBd2m9xjyWA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-10-03T20:19:54Z"
|
|
||||||
mac: ENC[AES256_GCM,data:lE6AHBDRhNiTXlQMNLIMqBEDpYWfYg8TI6Mpd2as4Q+O7WckTuDkrOrULA063OgjJzohld5x3yExnR2weDMaiz2jXn0kDoXYrYxIYL4J4Ht98t8yndhtDMzSaVyJVyfRN3JRxfpJfVBTcD/mrpvo5fmQRJv0k/l0F4/lZY/UYSk=,iv:WUQv2PyrHt3tdUKsyhzggQ/kYosXebehmeNDqZQ4Lac=,tag:ooVml9rbNwtYaZGYPFv30w==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: reitti-db
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
clusterIP: None
|
|
||||||
selector:
|
|
||||||
app: reitti-db
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
targetPort: 5432
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: reitti
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: reitti
|
|
||||||
ports:
|
|
||||||
- port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
name: http
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: reitti-redis
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: reitti-redis
|
|
||||||
ports:
|
|
||||||
- port: 6379
|
|
||||||
targetPort: 6379
|
|
||||||
name: redis
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: reitti-tile-cache
|
|
||||||
namespace: reitti
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: reitti-tile-cache
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: 80
|
|
||||||
name: http
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: reitti-db
|
|
||||||
namespace: reitti
|
|
||||||
labels:
|
|
||||||
app: reitti-db
|
|
||||||
spec:
|
|
||||||
serviceName: reitti-db
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: reitti-db
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: reitti-db
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 999
|
|
||||||
runAsGroup: 999
|
|
||||||
fsGroup: 999
|
|
||||||
containers:
|
|
||||||
- name: postgres
|
|
||||||
# Reitti requires PostGIS; the Debian variant keeps the postgres user at UID 999
|
|
||||||
# (the alpine variant uses 70). The image creates the postgis extension in POSTGRES_DB.
|
|
||||||
image: postgis/postgis:17-3.5
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
env:
|
|
||||||
- name: POSTGRES_USER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_USERNAME
|
|
||||||
- name: POSTGRES_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_PASSWORD
|
|
||||||
- name: POSTGRES_DB
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: reitti-credentials
|
|
||||||
key: DB_DATABASE_NAME
|
|
||||||
- name: PGDATA
|
|
||||||
value: /var/lib/postgresql/data/pgdata
|
|
||||||
ports:
|
|
||||||
- containerPort: 5432
|
|
||||||
startupProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 30
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
periodSeconds: 30
|
|
||||||
failureThreshold: 5
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
periodSeconds: 10
|
|
||||||
failureThreshold: 3
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 256Mi
|
|
||||||
limits:
|
|
||||||
memory: 1Gi
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /var/lib/postgresql/data
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- metadata:
|
|
||||||
name: data
|
|
||||||
spec:
|
|
||||||
accessModes: ["ReadWriteOnce"]
|
|
||||||
storageClassName: nfs-synology-ssd
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 5Gi
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: vikunja-db-backup
|
|
||||||
namespace: vikunja
|
|
||||||
labels:
|
|
||||||
app: vikunja-backup
|
|
||||||
spec:
|
|
||||||
schedule: "0 2 * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
successfulJobsHistoryLimit: 3
|
|
||||||
failedJobsHistoryLimit: 3
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: vikunja-backup
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
initContainers:
|
|
||||||
- name: pg-dump
|
|
||||||
image: postgres:18
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
env:
|
|
||||||
- name: PGHOST
|
|
||||||
value: vikunja-db
|
|
||||||
- name: PGUSER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: DB_USERNAME
|
|
||||||
- name: PGPASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: DB_PASSWORD
|
|
||||||
- name: PGDATABASE
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: DB_DATABASE_NAME
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- pg_dump --clean --if-exists > /backup/dump.sql
|
|
||||||
volumeMounts:
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
containers:
|
|
||||||
- name: resticprofile
|
|
||||||
image: creativeprojects/resticprofile:0.32.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n vikunja-db backup
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n vikunja-db copy
|
|
||||||
env:
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-backup-config
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-backup-config
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
volumeMounts:
|
|
||||||
- name: secrets
|
|
||||||
mountPath: /secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: backup-tmp
|
|
||||||
mountPath: /backup
|
|
||||||
volumes:
|
|
||||||
- name: secrets
|
|
||||||
secret:
|
|
||||||
secretName: vikunja-backup-config
|
|
||||||
- name: backup-tmp
|
|
||||||
emptyDir: {}
|
|
||||||
---
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: vikunja-files-backup
|
|
||||||
namespace: vikunja
|
|
||||||
labels:
|
|
||||||
app: vikunja-backup
|
|
||||||
spec:
|
|
||||||
schedule: "0 3 * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
successfulJobsHistoryLimit: 3
|
|
||||||
failedJobsHistoryLimit: 3
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: vikunja-backup
|
|
||||||
spec:
|
|
||||||
restartPolicy: OnFailure
|
|
||||||
containers:
|
|
||||||
- name: resticprofile
|
|
||||||
image: creativeprojects/resticprofile:0.32.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n vikunja-files backup
|
|
||||||
resticprofile -c /secrets/profiles.yaml -n vikunja-files copy
|
|
||||||
env:
|
|
||||||
- name: B2_ACCOUNT_ID
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-backup-config
|
|
||||||
key: B2_ACCOUNT_ID
|
|
||||||
- name: B2_ACCOUNT_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-backup-config
|
|
||||||
key: B2_ACCOUNT_KEY
|
|
||||||
volumeMounts:
|
|
||||||
- name: secrets
|
|
||||||
mountPath: /secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: files
|
|
||||||
mountPath: /files
|
|
||||||
readOnly: true
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 256Mi
|
|
||||||
limits:
|
|
||||||
memory: 1Gi
|
|
||||||
volumes:
|
|
||||||
- name: secrets
|
|
||||||
secret:
|
|
||||||
secretName: vikunja-backup-config
|
|
||||||
- name: files
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: vikunja-files
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: vikunja
|
|
||||||
namespace: vikunja
|
|
||||||
labels:
|
|
||||||
app: vikunja
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: vikunja
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsNonRoot: true
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
# No fsGroup — the NFS subdir provisioner creates directories 0777, and an
|
|
||||||
# fsGroup chown over NFS is slow and can fail against Synology's root squash.
|
|
||||||
seccompProfile:
|
|
||||||
type: RuntimeDefault
|
|
||||||
containers:
|
|
||||||
- name: vikunja
|
|
||||||
image: vikunja/vikunja:2.7.0
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
ports:
|
|
||||||
- containerPort: 3456
|
|
||||||
name: http
|
|
||||||
protocol: TCP
|
|
||||||
env:
|
|
||||||
- name: VIKUNJA_SERVICE_PUBLICURL
|
|
||||||
value: https://${VIKUNJA_HOST}/
|
|
||||||
- name: VIKUNJA_SERVICE_TIMEZONE
|
|
||||||
value: Europe/Kyiv
|
|
||||||
- name: VIKUNJA_SERVICE_ENABLEREGISTRATION
|
|
||||||
value: "false"
|
|
||||||
- name: VIKUNJA_SERVICE_SECRET
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: SERVICE_SECRET
|
|
||||||
- name: VIKUNJA_DATABASE_TYPE
|
|
||||||
value: postgres
|
|
||||||
- name: VIKUNJA_DATABASE_HOST
|
|
||||||
value: vikunja-db
|
|
||||||
- name: VIKUNJA_DATABASE_SSLMODE
|
|
||||||
value: disable
|
|
||||||
- name: VIKUNJA_DATABASE_USER
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: DB_USERNAME
|
|
||||||
- name: VIKUNJA_DATABASE_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: DB_PASSWORD
|
|
||||||
- name: VIKUNJA_DATABASE_DATABASE
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: DB_DATABASE_NAME
|
|
||||||
- name: VIKUNJA_FILES_BASEPATH
|
|
||||||
value: /app/vikunja/files
|
|
||||||
# Authentication is delegated to Authelia over OIDC — local accounts are off,
|
|
||||||
# so the login page redirects straight to Authelia (single provider).
|
|
||||||
- name: VIKUNJA_AUTH_LOCAL_ENABLED
|
|
||||||
value: "false"
|
|
||||||
- name: VIKUNJA_AUTH_OPENID_ENABLED
|
|
||||||
value: "true"
|
|
||||||
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_NAME
|
|
||||||
value: Authelia
|
|
||||||
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_AUTHURL
|
|
||||||
value: https://auth.${AUTHELIA_DOMAIN}
|
|
||||||
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_CLIENTID
|
|
||||||
value: vikunja
|
|
||||||
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_SCOPE
|
|
||||||
value: openid profile email
|
|
||||||
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_CLIENTSECRET
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: vikunja-credentials
|
|
||||||
key: OIDC_CLIENT_SECRET
|
|
||||||
volumeMounts:
|
|
||||||
- name: files
|
|
||||||
mountPath: /app/vikunja/files
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 3456
|
|
||||||
path: /health
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 30
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
port: 3456
|
|
||||||
path: /health
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 50m
|
|
||||||
memory: 128Mi
|
|
||||||
limits:
|
|
||||||
memory: 512Mi
|
|
||||||
volumes:
|
|
||||||
- name: files
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: vikunja-files
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: vikunja
|
|
||||||
namespace: vikunja
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
# No Authelia forward-auth middleware — Vikunja authenticates against Authelia
|
|
||||||
# natively over OIDC. A middleware here would break the OIDC callback and the API.
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- ${VIKUNJA_HOST}
|
|
||||||
secretName: vikunja-tls
|
|
||||||
rules:
|
|
||||||
- host: ${VIKUNJA_HOST}
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: vikunja
|
|
||||||
port:
|
|
||||||
number: 3456
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: vikunja
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: default-deny-ingress
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
podSelector: {}
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-ingress-controller
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- namespaceSelector:
|
|
||||||
matchLabels:
|
|
||||||
kubernetes.io/metadata.name: traefik
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-app-to-db
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja-db
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-to-db
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja-db
|
|
||||||
policyTypes:
|
|
||||||
- Ingress
|
|
||||||
ingress:
|
|
||||||
- from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja-backup
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: NetworkPolicy
|
|
||||||
metadata:
|
|
||||||
name: allow-backup-egress
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja-backup
|
|
||||||
policyTypes:
|
|
||||||
- Egress
|
|
||||||
egress:
|
|
||||||
- ports:
|
|
||||||
- port: 53
|
|
||||||
protocol: UDP
|
|
||||||
- port: 53
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 8888
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 443
|
|
||||||
protocol: TCP
|
|
||||||
- ports:
|
|
||||||
- port: 5432
|
|
||||||
protocol: TCP
|
|
||||||
to:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
app: vikunja-db
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
metadata:
|
|
||||||
name: vikunja-files
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
storageClassName: nfs-synology-ssd
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"kubernetes": {
|
|
||||||
"fileMatch": ["kubernetes/app/vikunja/.+\\.yaml$"]
|
|
||||||
},
|
|
||||||
"packageRules": [
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/vikunja/**"],
|
|
||||||
"semanticCommitScope": "k8s/vikunja"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/vikunja/**"],
|
|
||||||
"matchPackageNames": ["vikunja/vikunja"],
|
|
||||||
"matchUpdateTypes": ["patch", "minor"],
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchFileNames": ["kubernetes/app/vikunja/**"],
|
|
||||||
"matchPackageNames": ["vikunja/vikunja"],
|
|
||||||
"matchUpdateTypes": ["major"],
|
|
||||||
"automerge": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Ignore infrastructure images",
|
|
||||||
"matchFileNames": ["kubernetes/app/vikunja/**"],
|
|
||||||
"matchPackageNames": ["postgres", "creativeprojects/resticprofile"],
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: vikunja-backup-config
|
|
||||||
namespace: vikunja
|
|
||||||
stringData:
|
|
||||||
profiles.yaml: ENC[AES256_GCM,data:F1LINzN/Mg4Qk5J1nHRNSeOptMDMNrlFmJ1hLqYuuUpwfC8wDjMcz6ckpAkBFwqmN9i6Yl+w8q/rmFl1/hOU6cE1j5naFd3ElAoxYoftxho3bj41qBs74OwgrisPFKkB1/uUzzl6GTh4fg0jWpDoZSNDWgRzpb/g+mw9Duo+EePP396sF7t1g282NPd3LHqBNF4esE18xjtfLvyR/m7qHJGEjLd1+UyNECcofcoUoEx2Pf7BIGyTdHBoJjqou5djp/z8n9MKjNrw/9vGbr/jew398xqfDuJw+Xa8M5iudbFddnYfDoBv5HdRCRwDpUmNJuLEYFBp3TO72vaTGLG0j7TWxx4OjtxLx7arekk4s8NIybe92mRsXvEJuEfbyShJ5gDrvJZnwItQRTi/uI4Gncp6DHVU9YF7KN8qjUmMFh7YwutuakqLNg/hb5zk+KgDcvSyms9dBr1b7DPhZNjxLMTdila+s8tcA4l3VScEu/NAE4oMmAIbZU28S4Y2Y/IF0XbPZxU9KIVRRux0bysaeOPHlGYEJyx0008bKaTFWOzRHMgEyLZIqMmDr9h8avzciuuUr5aV3IrImwVHs2YJi/L0SESyuNutFwqalPCX3EUg/GYMdHFLgUuUmCeoFKgpmYHheQEofPt8X/uTXjsys3CrJpqvNUHnAFhoxl2cuI3MULP7bFOSbRenJ/0neftm/M2vfGSSOt9yVMOPlpK277yxg2OUZdHX9z0AyBsDZ4HVJRDXa6/n9N4sls18TUTo0Vj29SrOBRYHpYQ1Cw3V32N3krKjdqxjqeScOx4yJcyG6yu6UTJ3Q6UXnNpoZdCUj7qsqf72y8SIA7QhuJtSyXdw/aUHg4L5Aovi15e277WRm8UFz8dVYj0P9NIU6yp3+yCvEyIgnsyk8IIfIL0LLJIG8dnpJ+w/WdYNiggOfmCbszEkywmYrbuxt/KfavmWsWjYOI+s8pFjgOag8AxCHG/HNQun7qxMQMSwToye7IIjlsna8Wd1H1YbVH2EtnsoVxBU07DVCeyIS5n1qVv7D8DN91escW5aMCFMXkMkEM+CPjBwFZTpMeCggxRW3NHu3vi7pN7MwAGSKNnf6nkNZxYB1r6YUx67GAkkwcjPoMdZ5EW6CIYHSKcc8xJ2/yLR0Yffjjf0S/veIaj5RZW79qIE77WCgizjfA0qw0XlQjBpBkLd88rXe6O5lkfHlUxNcXOwh+GYDud2Hl4i5Lq3pmgWlC8+yGow/5SxRx3XEw==,iv:fnSZAS8b6UaHxfrXDK5U+DB2aeVP6bay8uMeAQcz0q8=,tag:XfJpr5JlwEV5vJsUBFBM1w==,type:str]
|
|
||||||
restic-password-nas: ENC[AES256_GCM,data:QBpRS2bHav6zYn509C5T0T3mlHPYW0H7KkxubzbPwDJcOE3spZYCzW0qbSOSc4yh1aeTcd71VyuUQfG3UjRAHw==,iv:tveOXU2g04wGLtxBuBzmYFywXmG3dUE+6jlrIFox62w=,tag:2ldefgyqtDV/8KR3ebzRHQ==,type:str]
|
|
||||||
restic-password-b2: ENC[AES256_GCM,data:MdaPu+NM/Xn9KK6gd3P7gc/vDi9cOwh4aJ24M5TZU/DAoUGeGkB1ztUzcpBd/rLJgATBSDkGQHjpMHvnwtThOO4=,iv:OgzNbdsjQoniBWa5+0bC3NoxyX8sCK/KuhIDqaPuhhw=,tag:GZYjJCpwIHIRBVlhxvpH0Q==,type:str]
|
|
||||||
B2_ACCOUNT_ID: ENC[AES256_GCM,data:It7pzn642LA3YlaUCsimXJQSEt76JhDNaA==,iv:ESTTD9OeE3KBcqz5N4M1dxGPKk/8RDu4EdQfjAbOWys=,tag:fml43DJboUNVvsE9t+af4A==,type:str]
|
|
||||||
B2_ACCOUNT_KEY: ENC[AES256_GCM,data:3avk03/e6oX6SakG0f2DNEjUC5qU5axOHjGLuxa/cg==,iv:+uTPW3qFocGtUvkf7V3/gaI0dif6AxuUfyGWlN+1zII=,tag:QtlBxGquvZnV6zejdiPDmA==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrdG84VTMyZUhaVkpEQnJS
|
|
||||||
anU0VEs0U0l2WFF6K2hQKzVWQy91dkdOMTFNClI0VjQ3WkhjN2FsTUxwbEVYRjUr
|
|
||||||
QkxIT0JOWWZaUTl5eWM1TFpBM2NRODQKLS0tIGZRNXVlcU1pU0h0N1p6UWdMRDhV
|
|
||||||
NHFaS3pkTzlQQllzR0ZzMFU0N2hQV28KvFlkIKTi6p2EnGtq3NDYr2OKiSuLV8pM
|
|
||||||
FpQ54FBj7Qe6AEn6vWAQegRyMWAnOBFLR3q4mf+I4N7uaNh7FyZwQw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-09-07T12:01:37Z"
|
|
||||||
mac: ENC[AES256_GCM,data:G57xdrKJAFULcdRxXYuDdlztZRRLJfByYsEn9QZ/QEklFu3HcqoR8jgBcDF4d33LuyUFjayAg9w/vheTHK5TChaUMMsDj9AVDt1cIK4ZAnuLgWhF2kloxQqGY2F0xSJvIXoDyC+lwV+m+fGyeLDdGbboeheKEZJdCkHU/Pu/bLo=,iv:MPCYY2lUIZqjhFYfcHHau7mMWvYh1d1CLyBkha96oyM=,tag:xoqE5txjs5aoWtqJKcFNWw==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: vikunja-credentials
|
|
||||||
namespace: vikunja
|
|
||||||
stringData:
|
|
||||||
DB_USERNAME: ENC[AES256_GCM,data:v5ZLlBBCYw==,iv:FEAQixJxjQESAm44z9AubpzSv6VPKSQxpGkoYIxfKbk=,tag:e97BlPYRhZg8UweFyeaf3w==,type:str]
|
|
||||||
DB_PASSWORD: ENC[AES256_GCM,data:J90Xco62vI8a1KFPBjJNJV1ybisNX+D4LfPebTiXO6c=,iv:j/XY/1K87lfKRCNUSBF0wUH8jx1qlYIHuVjDjh6ia00=,tag:g7yoGK6W3ACbMo/VqYWSuQ==,type:str]
|
|
||||||
DB_DATABASE_NAME: ENC[AES256_GCM,data:ySn5r6E0Lw==,iv:lkZUN87lavIFzn/4VMpxzQY813gEmqp5zppoiHWQIE0=,tag:roKDQsDlt8qdQ6LUcNH6oQ==,type:str]
|
|
||||||
SERVICE_SECRET: ENC[AES256_GCM,data:NMliN4ctgGzSUQZ1lxdlis+7oEuI9Wo7AgR/Arad+Rwo3IYnz1dHcfxfozwz4nwO/8NMxfx91KHHKgpKL732Rg==,iv:8RRsKOjWJBDPIbMaiqjSDt78z4uY7RmDW9M9s7vEGzk=,tag:8gEbiZI1SxSpliNf5IYnKg==,type:str]
|
|
||||||
OIDC_CLIENT_SECRET: ENC[AES256_GCM,data:qg950MtKcwfCbVBGimxgQBSv11jK0SwFsTQAJEbmeINsIDUGGaaSdNNAcB//ccSBSw5SVgJQ/JTq67ZVz/6KjQ==,iv:HriNEfVMiGTA/y6ItBORtQ1hs/G7bYteqtqtx3HWYR8=,tag:kOoLNgD+ZC+nlbOhIqvzsg==,type:str]
|
|
||||||
sops:
|
|
||||||
age:
|
|
||||||
- enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWTGtJSmo4eVBOU3pvdGZT
|
|
||||||
U1JwYjhaUm41NzBERzF6ek1TWStGSEZHK2pnCjU1RkdWVEVaeXhXc2tKVDlrRmgv
|
|
||||||
Kzd1N2dXTHRwdTlBNmdpMjdiTFRLSGsKLS0tIGp3cFh4a1YrRVBYamRNbGZxdXNP
|
|
||||||
c1ZMclQvcHpJR2N0MHNyVDc5VU13NjAKHLYo/UVPtAUydGDjk0cVyrN+m2rMg8AR
|
|
||||||
alZw1JdIch/Fgb9MPHmDDJwRU1aX8FEedz+pWE9p/UJjh0xIpgy2HQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
recipient: age1zffnskvuezntkk703a0pyxsd5m8vx2hm33dr47wdfy8mn4fdw4sqgw0jgc
|
|
||||||
encrypted_regex: ^(data|stringData|email)$
|
|
||||||
lastmodified: "2026-09-07T11:46:05Z"
|
|
||||||
mac: ENC[AES256_GCM,data:VSSzkGzEAfo3G6GcG28aQaxG/ZFB0SYILd9JRh8MRCGShWxFaQK/6lSV341xhFFQpOHr87lGC4pIFUVMBZ81Iu2C+QAVSQN9HFEN7R6o2cizNrIycaGaoHB7YenNpJ63EBeCd4E32hXXEXOs6nvRwVlAkaNitMhDXp+myjHU/Tc=,iv:cG2JXmcHsY7HA56FTHzrJj+5XpZW75ynSlNXtV4zHjg=,tag:XYqsGpBBFiInSk5CXEubuQ==,type:str]
|
|
||||||
version: 3.13.3
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: vikunja-db
|
|
||||||
namespace: vikunja
|
|
||||||
spec:
|
|
||||||
clusterIP: None
|
|
||||||
selector:
|
|
||||||
app: vikunja-db
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
targetPort: 5432
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user