// the find
slok/sloth
🦥 Easy and simple Prometheus SLO (service level objectives) generator
Sloth takes a simple YAML spec and generates the full set of Prometheus recording rules, metadata rules, and multi-window multi-burn-rate alert rules that Google's SRE book prescribes. It runs as a CLI for GitOps pipelines, a Kubernetes operator with CRDs, or an HTTP server with a UI. If you're on Prometheus and want proper SLOs without hand-rolling 20 alert rules per service, this is the right tool.
1. The MWMB alert generation is correct and complete — it produces both page and ticket alerts across the standard short/long window pairs, which most teams get wrong when doing this by hand. 2. Plugin architecture for SLI definitions is genuinely useful: you write a Go plugin once for your HTTP framework's error-rate query shape and reuse it across all services. 3. The `validate` command makes CI enforcement of SLO spec correctness trivial — diff-friendly output, exits non-zero on bad specs. 4. OpenSLO support means you're not locked into Sloth's own YAML dialect if you want portability.
1. The plugin system requires shipping Go binaries and is loaded at runtime via a custom plugin engine — the directory of generated binding files (e.g. `github_com-prometheus-prometheus-promql-parser.go`) signals this is fragile and version-sensitive. Updating a dep in the plugin's go.mod vs. Sloth's go.mod is a footgun. 2. No native Thanos/Mimir support for recording rules — VictoriaMetrics has a contrib plugin, but if you're running Thanos ruler you'll need to adapt manually. 3. The web UI and MCP server feel grafted on rather than core to the tool's purpose; unclear maintenance commitment for those surfaces compared to the CLI path. 4. The Helm chart is bundled in-repo and the CRDs are manual YAML files, not managed through a proper CRD install mechanism — upgrading CRDs in a cluster requires manual steps that the chart won't handle safely.