diff --git a/apps/k8s01/mastodon/kustomization.yaml b/apps/k8s01/mastodon/kustomization.yaml
index 7ef6ec96dbf4ad989ef7126e10afc3c4aba41abd..8a51612ed696ba0becbc79b27796289fa62d55c6 100644
--- a/apps/k8s01/mastodon/kustomization.yaml
+++ b/apps/k8s01/mastodon/kustomization.yaml
@@ -5,5 +5,6 @@ resources:
   - ../../base/mastodon
   - certificate.yaml
   - mastodon-values.yaml
+  - slo.yaml
 patchesStrategicMerge:
   - database-override.yaml
diff --git a/apps/k8s01/mastodon/slo.yaml b/apps/k8s01/mastodon/slo.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5bd0a96343e574bbdf8f27f87160faf0198a392c
--- /dev/null
+++ b/apps/k8s01/mastodon/slo.yaml
@@ -0,0 +1,21 @@
+apiVersion: sloth.slok.dev/v1
+kind: PrometheusServiceLevel
+metadata:
+  name: requests-mastodon
+  namespace: mastodon
+spec:
+  service: "mastodon"
+  slos:
+    - name: "requests-availability"
+      objective: 98
+      description: "Mastodon SLO based on availability for HTTP request responses."
+      sli:
+        events:
+          errorQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="mastodon",ingress="nextcmastodonloud",status=~"(5..|429)"}[{{.window}}]))
+          totalQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="mastodon",ingress="mastodon"}[{{.window}}]))
+      alerting:
+        name: MastodonHighErrorRate
+        labels:
+          category: "availability"
+        annotations:
+          summary: "High error rate on 'mastodon' requests responses"