Automated deployments of SLOs Using Sloth and Prometheusの意訳
Qiita Advent Calendar 2025の海外SRE関連セッション意訳の7日目です。ひとりアドベントカレンダーですが、完走できるように頑張ります。
このアドベントカレンダーでは、海外のSRE関連のセッションを翻訳しながら、私の意見や疑問や補足を追加したものです。私の誤解から誤った説明になっている箇所は、コメントでご指摘お願いします。
前回は、SLO Basics - a conversation about reliabilityの意訳でした。SREを語る際によく話題になるSLOの基礎についてのセッションでした。特にSLOはSLAなどと違い、内部指標なので柔軟に変更していくものである、ということが強調されていました。
このアドベントカレンダーでは、私の意見やコメントは可能な限り、下記の記法で要約と区別します。ただ、そこまで厳密にできないため、要約文中に私の思想が混じってしまうことはご容赦ください。(気がついたらご指摘ください)
紹介するセッションについて
セッション詳細: Automated deployments of SLOs Using Sloth and Prometheus | SLOconf 2022
今回のセッションは、前回の記事で説明されていた柔軟なSLOを達成するための変更容易なツールチェーンの紹介です。具体的なツールや例が数多く出てきます。
要約
このセッションの前提
このセッションでは、SLIとSLOの概念についての説明は省略する。これらをまだ聞いたことがない人は、他の素晴らしいセッションがたくさんあるので、そちらをご覧いただきたい。
ゴール
このセッションでは、以下の4点を柔軟なSLOのゴールに設定する。
- SLIとSLOをなるべく簡単な方法で定義し、プロダクト開発者が自分たちで管理できるようにすること
- 設定には、開発者が普段から使い慣れているフォーマットとシンタックスを使うこと
- 自動化が重要
- デプロイがシンプルで、既存のCI/CDパターンにフィットすること
ツール
先ほどのゴールを達成するために3つのツールが登場する。
-
Sloth
Slothは、様々なフォーマットからPrometheusのAlert rule形式のYAMLを生成するツール。
ここではOpenSLOというベンダーニュートラルなSLO定義フォーマットを前提にする。
-
Cortex tool
Cortex toolは、Prometheus/Cortex/MimirなどのAPIと対話するためのCLIツール。
RecordingRuleやAlertingRuleをAPI経由でPrometheus互換ソフトウェアにアップロードできる。 -
Prometheus(または互換バックエンド)
メトリクス収集とルールの評価などを行う時系列DB。
プロセス
この仕組みでは、すべてのSLIとSLOをコードとして管理する。
- OpenSLO定義のYAMLファイルにSLOを定義
- それをアプリケーションリポジトリなど、開発者が認知しやすい場所に置く
CI/CDパイプラインの流れは下記のようになる。
- 開発者がOpenSLO形式のYAMLでSLOを定義し、配置する
- プルリクエストレビューを経てマージされる
- CI/CDパイプライン内のSlothの
generateにより、PrometheusのAlertRule/RecodingRule形式のYAMLを生成 - Cortex toolが生成されたYAMLを検証
- 検証が通ったら、Cortex toolを使ってPrometheusにアップロード
- AlertManagerでアラートが有効化される
- Grafanaでは、SLOダッシュボードが自動的に更新され、エラーバジェットやバーンレートを可視化できる

結果
OpenSLO形式のYAML:
Slothが生成したAlertRule/RecodingRule形式のYAML:
Grafanaの概要ダッシュボード:
Grafanaの詳細ダッシュボード:
生成されたPrometheusのクエリ:
このクエリを手動で管理するのは大変だから、OpenSLOフォーマットで記載して変換させるのが良い。
全体を通してコメント
今回は、プラクティスや理由などではなく、純粋にSLOツールチェーンのモデルケースの1つを紹介するセッションを選んでみました。SLOは柔軟に変えやすいものである必要があり、かつ変更した時の議論が重要なものですので、いわゆるas Codeというものと非常に相性が良いプラクティスですね。
次回は、Corporate Open Source Anti-Patterns: A Decade Laterの意訳です。OSSを持つ企業が陥りがちなアンチパターンを社会契約という側面で整理したお話です。





Discussion