SLOs · 01 of 04 · From values file to burn rate

From a values file to a burn rate

An SLO is declared once, in an application's environment values. Crossplane composes it into a Sloth resource, Sloth generates the burn-rate rules, and the same series feed both what Tower shows and what the poller announces.

From a values file to a burn rate Left to right across the top: an slos entry in an environment values file is rendered by the airframe-application chart into an SLO XR in the catalog.hangar.io group, which a go-templating composition turns into a Sloth PrometheusServiceLevel and a Grafana dashboard ConfigMap. Sloth generates slo recording rules in Prometheus. Below, Prometheus is read by the Backstage poller, which sends notifications on transitions, and by Tower, which shows the SLOs tab and the fleet dashboards. DECLARE · APP REPO AND CHARTRENDER · CROSSPLANEOBSERVE · PROMETHEUS AND ITS READERSslos: entryplatform/envs/<env>.yamlairframe-applicationattached/slos.yamlSLO XRslos.catalog.hangar.ioCompositionfunction-go-templatingPrometheusServiceLevelsloth.slok.dev/v1 · SlothGrafana dashboardConfigMap · sidecar-loadedPrometheusslo:* recording rulesBackstage pollernotifies on transitionsTowerSLOs tab · fleet dashboardsYou write an objective and an indicator. Sloth writes the rules, and everything downstream reads them.LEGENDDeclared in gitThe SLO APIRendered or runningMetricsRules flow

Declared

One slos: entry per SLO: a service, an objective such as 99.9, and an indicator (availability or latency). There is no window and no burn-rate list; Sloth owns both.

Rendered

The XR is composed into a PrometheusServiceLevel and a Grafana dashboard. Sloth then generates the recording rules and the multi-window alerts for it.

Read

Tower and the poller read the same series, among them slo:period_burn_rate:ratio, selected by sloth_service and by sloth_slo, which is <name>_<namespace>.

Hangar · SLOs