diff --git a/apps/k8s01/blog/kustomization.yaml b/apps/k8s01/blog/kustomization.yaml index edf59a4db7cc4a33dd1caadcbf02ccefffc01833..4497d900a78139943cbb9be0528f7fdd0b7b2b5b 100644 --- a/apps/k8s01/blog/kustomization.yaml +++ b/apps/k8s01/blog/kustomization.yaml @@ -6,6 +6,7 @@ resources: - certificate.yaml - blog.yaml - ingress.yaml + - slo.yaml - ../../../shared/networkpolicies/allow-from-ingress.yaml - ../../../shared/resourcequotas/default.yaml patchesStrategicMerge: diff --git a/apps/k8s01/blog/slo.yaml b/apps/k8s01/blog/slo.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cc6f5d05ce331fe4d3a766f9fd10ad8c89390ebe --- /dev/null +++ b/apps/k8s01/blog/slo.yaml @@ -0,0 +1,41 @@ +apiVersion: sloth.slok.dev/v1 +kind: PrometheusServiceLevel +metadata: + name: requests-blog + namespace: mastblogodon +spec: + service: "blog" + slos: + - name: "requests-availability" + objective: 99 + description: "blog SLO based on availability for HTTP request responses." + sli: + events: + errorQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="blog",ingress="blog",status=~"(5..|429)"}[{{.window}}])) + totalQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="blog",ingress="blog"}[{{.window}}])) + alerting: + name: blogHighErrorRate + labels: + category: "availability" + annotations: + summary: "High error rate on 'blog' requests responses" + - name: "requests-latency" + objective: 99 + description: "Warn that we apiserver responses are being slow and this will affect the clients (kubectl users, controllers...)." + labels: + category: latency + sli: + events: + error_query: | + ( + sum(rate(nginx_ingress_controller_request_duration_seconds_count{exported_namespace="blog",ingress="blog",method!="WATCH"}[{{.window}}])) + - + sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{exported_namespace="blog",ingress="blog",le="0.25",verb!="WATCH"}[{{.window}}])) + ) + total_query: sum(rate(nginx_ingress_controller_request_duration_seconds_count{exported_namespace="blog",ingress="blog",method!="WATCH"}[{{.window}}])) + alerting: + name: blogLatencyAlert + labels: + category: "latency" + annotations: + summary: "Slow responses on 'blog' requests responses. More than 1% take more than 250ms."