From 9f053c0fb409c9c4730a72294c233a32e55b69d4 Mon Sep 17 00:00:00 2001 From: Sheogorath <sheogorath@shivering-isles.com> Date: Mon, 30 Oct 2023 03:02:58 +0100 Subject: [PATCH] feat(jellyfin): Add SLO for jellyfin --- apps/k8s01/jellyfin/kustomization.yaml | 1 + apps/k8s01/jellyfin/slo.yaml | 41 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 apps/k8s01/jellyfin/slo.yaml diff --git a/apps/k8s01/jellyfin/kustomization.yaml b/apps/k8s01/jellyfin/kustomization.yaml index d43f3676d..86e9a63d1 100644 --- a/apps/k8s01/jellyfin/kustomization.yaml +++ b/apps/k8s01/jellyfin/kustomization.yaml @@ -9,6 +9,7 @@ resources: - service.yaml - certificate.yaml - ingress.yaml + - slo.yaml - ../../../shared/networkpolicies/allow-from-ingress.yaml - ../../../shared/resourcequotas/default.yaml patchesStrategicMerge: diff --git a/apps/k8s01/jellyfin/slo.yaml b/apps/k8s01/jellyfin/slo.yaml new file mode 100644 index 000000000..0d3529636 --- /dev/null +++ b/apps/k8s01/jellyfin/slo.yaml @@ -0,0 +1,41 @@ +apiVersion: sloth.slok.dev/v1 +kind: PrometheusServiceLevel +metadata: + name: requests-jellyfin + namespace: jellyfin +spec: + service: "jellyfin" + slos: + - name: "requests-availability" + objective: 98 + description: "Jellyfin: SLO based on availability for HTTP request responses." + sli: + events: + errorQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="jellyfin",ingress="jellyfin",status=~"(5..|429)"}[{{.window}}])) + totalQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="jellyfin",ingress="jellyfin"}[{{.window}}])) > 0 OR vector(1) + alerting: + name: JellyfinHighErrorRate + labels: + category: "availability" + annotations: + summary: "High error rate on 'jellyfin' requests responses" + - name: "requests-latency" + objective: 95 + description: "Jellyfin: SLO based on latency for HTTP request responses. Warns if requests take longer than 250ms. When responses are slower than 200ms they become noticable slow." + labels: + category: latency + sli: + events: + errorQuery: | + ( + sum(rate(nginx_ingress_controller_request_duration_seconds_count{exported_namespace="jellyfin",ingress="jellyfin",method!="WATCH"}[{{.window}}])) + - + sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{exported_namespace="jellyfin",ingress="jellyfin",le="0.25",verb!="WATCH"}[{{.window}}])) + ) + totalQuery: sum(rate(nginx_ingress_controller_request_duration_seconds_count{exported_namespace="jellyfin",ingress="jellyfin",method!="WATCH"}[{{.window}}])) > 0 OR vector(1) + alerting: + name: JellyfinLatencyAlert + labels: + category: "latency" + annotations: + summary: "Slow responses on 'jellyfin' requests responses. More than 1% take more than 250ms." \ No newline at end of file -- GitLab