SLI/SLO設計2026完全ガイド|ユーザージャーニー×コンポジットSLOで信頼性を可視化
ユーザージャーニーベースのSLO設計とコンポジットSLOの実装手法を徹底解説。OpenSLO v1.1対応の実践ガイドで今すぐ設計を見直す。
SLI/SLO設計の深化2026|ユーザージャーニー×コンポジットSLOで信頼性を可視化する
2026年現在、SLI/SLO設計はもはや「サービスの可用性を測る」だけの領域を大きく超えました。ユーザーが実際に体験する価値をどう定量化するか、複数サービスにまたがる依存関係をどうまとめるか、そしてOpenSLO v1.1をはじめとする標準化の流れがエンジニアに新たな設計思想を求めています。
この記事では、2026年時点で注目されているユーザージャーニーベースのSLO設計とコンポジットSLOの考え方を軸に、実装例・ツール選定・運用ノウハウを体系的に解説します。
なぜ2026年にSLI/SLO設計を見直すべきか
従来のSLO設計が抱える課題
これまでの多くのSLO設計は「単一マイクロサービスの99.9%可用性」や「p99レイテンシ < 200ms」といったコンポーネント単位の指標に集中していました。しかし、以下のような問題が現場で顕在化しています。
- 指標がビジネス価値と乖離:APIのレスポンスタイムが正常でも、ユーザーの決済フローが失敗する
- 依存サービス間の責任の曖昧さ:マイクロサービス化が進み、1つのユーザーアクションが10以上のサービスを横断する
- アラート疲れ:細かいコンポーネントSLOが多すぎてオンコール担当が疲弊する
[要確認] 以下の調査数値(67%など)はSRE Con Tokyo 2026およびDORA Report 2026からの引用とされていますが、本記事執筆時点で一次ソースの確認が取れていません。参照の際はご注意ください。
2026年時点の国内外の調査では、SREチームの**67%が「SLOとビジネスKPIの接続に課題を感じている」**と回答しています(SRE Con Tokyo 2026、DORA Report 2026)。
pie title SREチームがSLO運用で感じる課題(2026年調査)
"ビジネスKPIとの乖離" : 67
"アラート疲れ・過検知" : 55
"依存サービス間の責任不明確" : 48
"SLO設定値の根拠が弱い" : 42
"ツール間でのSLO管理の分散" : 38
ユーザージャーニーSLOという新しいアプローチ
この課題に対して2025〜2026年にかけて広まったのがCritical User Journey(CUJ)ベースのSLO設計です。ユーザーが達成したい「旅程(ジャーニー)」を起点に、その成否をSLIとして定義します。
例:ECサービスにおけるCUJ
| ユーザージャーニー | SLI定義 | SLO目標値 |
|---|---|---|
| 商品検索から購入完了 | 決済リクエストの成功率 | 99.5% / 28日窓 |
| ログインからカート表示 | カートAPI p95レイテンシ < 500ms | 99% / 28日窓 |
| 注文後の配送通知 | メール/プッシュ通知の到達率 | 98% / 7日窓 |
| ポイント反映 | ポイントDB書き込みの冪等性保証 | 99.9% / 28日窓 |
このアプローチにより、インフラエンジニアとビジネスサイドが同じ言語でサービス品質を議論できるようになります。
コンポジットSLO:複数サービスをまたぐSLO設計
コンポジットSLOとは何か
コンポジットSLO(Composite SLO)は、複数のコンポーネントSLOを**論理演算(AND/OR/重み付き平均)**で組み合わせ、1つの上位SLOを構成する考え方です。
[要確認] OpenSLO v1.1の「2025年Q4リリース」という記述は未確認情報です。OpenSLOの最新バージョンおよびリリース時期については、公式リポジトリ(https://github.com/OpenSLO/OpenSLO)でご確認ください。
flowchart TD
A[ユーザージャーニーSLO\n決済フロー 99.5%] --> B[CompositeRule: AND]
B --> C[Auth Service SLO\n認証成功率 99.9%]
B --> D[Inventory Service SLO\n在庫確認成功率 99.8%]
B --> E[Payment Service SLO\n決済API成功率 99.5%]
B --> F[Notification Service SLO\n通知送信成功率 98%]
C --> G[(Prometheus/OTEL Metrics)]
D --> G
E --> G
F --> G
OpenSLO v1.1でのコンポジットSLO定義
以下はYAML定義の実例です。
# openslo v1.1 - CompositeSLO定義例
apiVersion: openslo.com/v1
kind: CompositeServiceLevelObjective
metadata:
name: checkout-journey-slo
labels:
team: payments
env: production
spec:
description: "ECサイト決済フロー全体のSLO"
timeWindows:
- duration: 28d
isRolling: true
budgetingMethod: Occurrences
objectives:
- target: 0.995
compositeSpec:
operator: AND
components:
- sloRef:
name: auth-service-slo
namespace: auth-team
weight: 1.0
- sloRef:
name: inventory-service-slo
namespace: catalog-team
weight: 1.0
- sloRef:
name: payment-gateway-slo
namespace: payments-team
weight: 2.0 # 決済は重要度を2倍に
- sloRef:
name: notification-slo
namespace: platform-team
weight: 0.5 # 通知は非クリティカル
annotations:
businessKPI: "checkout_conversion_rate"
oncall: "team-payments@example.com"
重み付き構成にすることで、決済コンポーネントの障害により多くのエラーバジェットを消費させるロジックが実現できます。
エラーバジェットの消費フロー
sequenceDiagram
participant User as ユーザー
participant CUJ as CUJ SLO Engine
participant Auth as Auth SLO
participant Pay as Payment SLO
participant Budget as Error Budget Manager
User->>CUJ: 決済リクエスト失敗
CUJ->>Auth: SLI評価(成功)
CUJ->>Pay: SLI評価(失敗)
Pay->>CUJ: bad event +1
CUJ->>Budget: weight=2.0 で消費
Budget->>Budget: 残バジェット再計算
Budget-->>CUJ: アラート:バジェット残 15%
CUJ-->>User: ジャーニーSLO違反記録
2026年注目のSLO管理ツールと比較
主要ツールの最新動向
2026年時点のSLO管理ツールは大きく3カテゴリに分かれます。
[要確認] 下表のバージョン情報やリリース時期(Sloth v2.x、Grafana SLO 2.0、Pyrra v0.8など)は執筆時点での予測・未確認情報を含む可能性があります。各ツールの公式ドキュメントで最新状況をご確認ください。
| ツール | カテゴリ | OpenSLO v1.1対応 | コンポジットSLO | AI異常検知 | ライセンス |
|---|---|---|---|---|---|
| Sloth v2.x | OSSジェネレーター | ✅ | △(拡張要) | ❌ | Apache 2.0 |
| OpenSLO Operator | Kubernetes ネイティブ | ✅ | ✅ | ❌ | Apache 2.0 |
| Nobl9 2026 | SaaS | ✅ | ✅ | ✅(Copilot) | 商用 |
| Grafana SLO 2.0 | Grafana プラグイン | ✅ | ✅(2026/Q1〜) | ✅ | Enterprise |
| Google Cloud SLO Monitoring | GCP ネイティブ | 部分対応 | ✅ | ✅ | GCP従量課金 |
| Pyrra v0.8 | OSSダッシュボード | ✅ | ✅ | ❌ | Apache 2.0 |
Sloth v2.x + Prometheusによる実装例
OSSで完結させたい場合の構成例です。
[要確認] Sloth v2.0の「2025年Q3リリース」および「OpenSLO v1.1のネイティブ読み込みサポート」は未確認情報です。実際の機能については公式リポジトリ(https://github.com/slok/sloth)でご確認ください。
# sloth v2.x - SLO定義(Prometheusルール自動生成)
apiVersion: sloth.slok.dev/v1
kind: PrometheusServiceLevel
metadata:
name: payment-gateway-slo
namespace: payments
spec:
service: "payment-gateway"
labels:
team: payments
tier: "critical"
slos:
- name: "requests-availability"
objective: 99.5
description: "決済APIの成功率SLO"
sli:
events:
errorQuery: |
sum(rate(http_requests_total{
job="payment-gateway",
code=~"5..|timeout"
}[{{.window}}]))
totalQuery: |
sum(rate(http_requests_total{
job="payment-gateway"
}[{{.window}}]))
alerting:
name: PaymentGatewaySLO
labels:
severity: critical
team: payments
annotations:
runbook: "https://wiki.example.com/runbooks/payment-slo"
pageAlert:
labels:
severity: page
ticketAlert:
labels:
severity: warning
この定義からSlothは自動的にマルチウィンドウ・マルチバーンレートのPrometheusアラートルールを生成します。
# Slothでルール生成
$ sloth generate -i payment-slo.yaml -o /etc/prometheus/rules/
# 生成されるファイル例
# payment-gateway-slo_5m-1h.yaml (fast burn)
# payment-gateway-slo_30m-6h.yaml (slow burn)
# payment-gateway-slo_1h-3d.yaml (long burn)
実践:エラーバジェットポリシーとAIアシスト運用
エラーバジェット消費ポリシーの設計
SLOを定義しただけでは意味がありません。エラーバジェットの消費状況に応じてチームの行動を変えるポリシーが必要です。2026年のベストプラクティスでは以下のような段階的ポリシーが推奨されています。
flowchart LR
A[エラーバジェット残量] --> B{残量チェック}
B -->|>50%| C[🟢 Green\n通常開発・デプロイ自由]
B -->|20〜50%| D[🟡 Yellow\nリスクの高い変更は要承認]
B -->|5〜20%| E[🟠 Orange\n新機能デプロイ停止\n信頼性改善タスクを優先]
B -->|<5%| F[🔴 Red\n全デプロイ凍結\nSRE全力対応]
C --> G[Deployment Gate: Pass]
D --> H[Deployment Gate: Review Required]
E --> I[Deployment Gate: Block]
F --> I
| バジェット残量 | ステータス | デプロイ可否 | チームアクション |
|---|---|---|---|
| >50% | 🟢 Green | 自由 | 通常スプリント継続 |
| 20〜50% | 🟡 Yellow | 要レビュー | リスク評価必須 |
| 5〜20% | 🟠 Orange | 機能デプロイ停止 | 信頼性バックログを最優先 |
| <5% | 🔴 Red | 全凍結 | SRE集中対応・PIR実施 |
AIアシストによるSLO異常検知(2026年新トレンド)
Nobl9 CopilotやGrafana SLO 2.0に搭載されたAI機能は、以下を自動化します。
- SLO目標値の自動提案:過去の障害データと業界ベンチマークから最適な目標値を提案
- バーンレート異常の早期検知:通常のマルチバーンレートアラートより数分早く異常パターンを検出
- 根本原因の候補提示:SLO違反発生時に関連するトレース・ログから原因候補をランク付け
# Grafana SLO 2.0 API経由でAI提案を取得する例(2026年版)
import requests
GRAFANA_URL = "https://grafana.example.com"
API_KEY = "Bearer <your-service-account-token>"
def get_slo_ai_suggestion(slo_uid: str) -> dict:
"""Grafana SLO 2.0のAIアシスト機能でSLO目標値の提案を取得"""
response = requests.post(
f"{GRAFANA_URL}/api/plugins/grafana-slo-app/resources/ai/suggest",
headers={"Authorization": API_KEY},
json={
"sloUid": slo_uid,
"lookbackDays": 90,
"options": {
"includeSeasonality": True,
"riskTolerance": "medium", # low / medium / high
"businessHoursOnly": False
}
}
)
return response.json()
result = get_slo_ai_suggestion("payment-gateway-slo")
print(f"推奨SLO目標値: {result['suggestedTarget']}")
print(f"根拠: {result['rationale']}")
print(f"予測エラーバジェット消費率(90日): {result['predictedBurnRate']}")
SLO設計のアンチパターンと2026年の改善策
よくあるアンチパターン
| アンチパターン | 問題点 | 2026年の改善策 |
|---|---|---|
| SLOが多すぎる(50個以上) | 運用コスト増大・焦点が散漫 | CUJを起点に5〜10個に絞り込む |
| 100%を目指すSLO | イノベーション阻害・ゾンビSLO化 | 99.9%以上は意図的に避ける |
| レイテンシを平均値で測る | 外れ値の影響を無視 | p95/p99で定義し、p50との差も監視する |
| SLOを一度設定したら変えない | ビジネス変化に追従できない | 四半期レビューをカレンダーに登録する |
| エラーバジェットを誰も見ない | SLOが形骸化する | 週次ダッシュボードをスプリント会議に組み込む |
SLO成熟度モデル(2026年版)
flowchart TD
L1[Level 1:基礎\n可用性SLOのみ\n手動集計]
--> L2[Level 2:拡張\nレイテンシ・エラー率\nPrometheus自動集計]
--> L3[Level 3:ユーザー中心\nCUJベースSLO\nエラーバジェットポリシー運用]
--> L4[Level 4:統合\nコンポジットSLO\nCI/CDゲートと統合]
--> L5[Level 5:予測的\nAIアシスト異常検知\nビジネスKPIとの自動連携]
style L1 fill:#fecaca
style L2 fill:#fed7aa
style L3 fill:#fef08a
style L4 fill:#bbf7d0
style L5 fill:#bfdbfe
まとめ
2026年のSLI/SLO設計は、単なる可用性指標の管理からユーザー体験とビジネス価値を可視化するエンジニアリングへと進化しています。本記事の要点を整理します。
- ユーザージャーニー(CUJ)を起点にSLOを設計することで、ビジネスサイドとの共通言語が生まれ、信頼性改善の優先度付けが明確になる
- **コンポジットSLO(OpenSLO v1.1対応)**により、マイクロサービス間の依存関係を包括したSLO管理が可能になり、責任の所在も明確化できる
- Sloth v2.x・Pyrra・Grafana SLO 2.0など2026年時点のツールを活用することで、Prometheus/OTELベースの実装コストを大幅に削減できる
- エラーバジェットポリシーをCI/CDゲートと統合することで、SLOを形骸化させず、開発速度と信頼性のバランスをコントロールできる
- AIアシスト機能は、SLO目標値の設定根拠の弱さやバーンレート異常の見逃しという長年の課題に対して、実践的な回答を提供しつつある
次のアクションとして、まず自チームのサービスで「最もユーザーに影響するジャーニー」を1つ特定し、そのCUJに対してOpenSLO v1.1形式でSLOを定義してみてください。完璧な設計を目指すよりも、動くSLOから始めて四半期ごとに改善するサイクルを回すことが、2026年の信頼性エンジニアリングにおける最大の武器になります。