From beb7a986e339accf47f8f64cdf301f80005b08d2 Mon Sep 17 00:00:00 2001
From: Sheogorath <sheogorath@shivering-isles.com>
Date: Sat, 21 May 2022 00:18:49 +0200
Subject: [PATCH] feat(matrix): Define SLO for matrix-synapse

This patch implements a first SLO using sloth for the matrix-synapse
deployment. First tests with sloth for SLO overview.

While this should be neccesary, but it could be useful to build some
nice dashboards and compare to other solutions.
---
 apps/k8s01/matrix/kustomization.yaml |  1 +
 apps/k8s01/matrix/slo.yaml           | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)
 create mode 100644 apps/k8s01/matrix/slo.yaml

diff --git a/apps/k8s01/matrix/kustomization.yaml b/apps/k8s01/matrix/kustomization.yaml
index 4c33e6ed5..ad6b85fdb 100644
--- a/apps/k8s01/matrix/kustomization.yaml
+++ b/apps/k8s01/matrix/kustomization.yaml
@@ -5,6 +5,7 @@ resources:
   - ../../base/matrix
   - certificate.yaml
   - signing-key.yaml
+  - slo.yaml
   - ../../../shared/resourcequotas/default.yaml
 patchesStrategicMerge:
   - database-override.yaml
diff --git a/apps/k8s01/matrix/slo.yaml b/apps/k8s01/matrix/slo.yaml
new file mode 100644
index 000000000..b4e299074
--- /dev/null
+++ b/apps/k8s01/matrix/slo.yaml
@@ -0,0 +1,21 @@
+apiVersion: sloth.slok.dev/v1
+kind: PrometheusServiceLevel
+metadata:
+  name: requests-matrix-synapse
+  namespace: matrix
+spec:
+  service: "matrix-synapse"
+  slos:
+    - name: "requests-availability"
+      objective: 95
+      description: "Matrix SLO based on availability for HTTP request responses."
+      sli:
+        events:
+          errorQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="matrix",ingress="matrix-synapse",status=~"(5..|429)"}[{{.window}}]))
+          totalQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="matrix",ingress="matrix-synapse"}[{{.window}}]))
+      alerting:
+        name: MatrixHighErrorRate
+        labels:
+          category: "availability"
+        annotations:
+          summary: "High error rate on 'matrix-synapse' requests responses"
-- 
GitLab