observability-designer について
本番環境の可観測性を設計するエンジニアや SRE 向けのスキルです。Grafana ダッシュボードの仕様生成やアラート設定の分析に加え、メトリクス、ログ、トレース、SLO の指針を提供します。
主な機能
- 01Grafana ダッシュボード仕様の生成
- 02アラートノイズと重複の分析
- 03アラート対象範囲の不足検出
- 04メトリクス・ログ・トレースの指針
- 05SLI/SLO フレームワークの初期案
活用シーン
- 01サービスのダッシュボード仕様作成
- 02アラートルールのノイズ確認
- 03監視範囲の不足箇所の特定
- 04SLI/SLO フレームワークの初期案作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill observability-designerインストール後、Claude Code で/observability-designerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdassets/sample_alerts.jsonsample_service_api.jsonsample_service_web.jsonexpected_outputs/sample_dashboard.jsonsample_slo_framework.jsonreferences/alert_design_patterns.mddashboard_best_practices.mdslo_cookbook.mdscripts/alert_optimizer.pydashboard_generator.pyslo_designer.py詳細
オブザーバビリティ設計者(POWERFUL)
カテゴリ: エンジニアリング
ティア: POWERFUL
説明: SLI/SLO フレームワーク、アラートの最適化、ダッシュボードの生成など、本番システム向けの包括的なオブザーバビリティ戦略を設計します。
概要
オブザーバビリティ設計者は、3 つの柱(メトリクス、ログ、トレース)にわたって、本番環境ですぐに使えるダッシュボード、アラート設定、監視戦略を作成します。
使用しない場合 → slo-architect。 エラーバジェットの計算、複数ウィンドウのバーンレートアラート閾値、SLO レビューゲートを含む SLO/SLI の設計には、該当領域の権威あるスキルである slo-architect に依頼してください。このスキルの slo_designer.py が生成するのは、簡易的なひな形のみです。このスキルの担当領域は、ダッシュボード(dashboard_generator.py)とアラートノイズの低減(alert_optimizer.py)です。
クイックスタート
# Dashboard spec (Grafana JSON + docs) for a service
python3 scripts/dashboard_generator.py --service-type api --name payments --criticality critical --role sre --format grafana -o dashboard.json --doc-output dashboard.md
# Analyze an existing alert config for noise, duplicates, and coverage gaps
python3 scripts/alert_optimizer.py --input alerts.json --analyze-only --report alert_report.json
# ...then emit the optimized config once the report is reviewed:
python3 scripts/alert_optimizer.py --input alerts.json --output alerts_optimized.json
# Quick SLO scaffold (hand off to slo-architect for the real error-budget work)
python3 scripts/slo_designer.py --service-type api --criticality high --user-facing true --service-name payments -o slo_scaffold.json
検証ループ: 最適化したアラートのデプロイ後、オンコールの 1 ローテーションにわたってレポートのノイズ指標を追跡します。アクション可能なアラートの割合が改善しなかった場合は、稼働中の設定に対して --analyze-only を再実行し、繰り返し改善してください。生成したダッシュボードを Grafana にインポートし、タスクを完了する前に、すべてのゴールデンシグナルパネルにライブデータが表示されることを確認します。
主な専門分野
SLI/SLO/SLA フレームワークの設計
- サービスレベル指標(SLI): サービスの健全性を示す、測定可能なシグナルを定義します
- サービスレベル目標(SLO): ユーザー体験に基づいて信頼性の目標を設定します
- サービスレベル契約(SLA): 不履行時の措置を伴う、顧客向けの約束を定めます
- エラーバジェット管理: エラーバジェットの消費量を計算し、追跡します
- バーンレートアラート: SLO を予防的に保護するため、複数ウィンドウのバーンレートアラートを設定します
オブザーバビリティの 3 つの柱
メトリクス
- ゴールデンシグナル: レイテンシ、トラフィック、エラー、飽和度を監視します
- RED メソッド: リクエスト駆動型サービスのレート、エラー、継続時間を計測します
- USE メソッド: リソース監視のため、使用率、飽和度、エラーを計測します
- ビジネスメトリクス: 収益、ユーザーエンゲージメント、機能の利用状況を追跡します
- インフラストラクチャメトリクス: CPU、メモリ、ディスク、ネットワーク、カスタムリソースのメトリクスを計測します
ログ
- 構造化ロギング: 一貫したフィールドを持つ JSON ベースのログ形式を使用します
- ログ集約: ログの一元収集とインデックス作成の戦略を策定します
- ログレベル: DEBUG、INFO、WARN、ERROR、FATAL の各レベルを適切に使用します
- 相関 ID: 分散システム全体でリクエストを追跡します
- ログサンプリング: 高スループットシステムでログ量を管理します
トレース
- 分散トレーシング: エンドツーエンドのリクエストフローを可視化します
- スパン設計: 意味のあるスパン境界とメタデータを定義します
- トレースサンプリング: パフォーマンスとコストを考慮した、効率的なサンプリング戦略を策定します
- サービスマップ: トレースを通じて依存関係を自動検出します
- 根本原因分析: トレースを活用したデバッグワークフローを構築します
ダッシュボード設計の原則
情報アーキテクチャ
- 階層: 概要 → サービス → コンポーネント → インスタンスの順に掘り下げられる構成にします
- 黄金比: 運用メトリクスを 80%、探索用メトリクスを 20%にします
- 認知負荷: ダッシュボードの画面あたりのパネル数を 7±2 個以内にします
- ユーザージャーニー: 役割に応じたダッシュボードの利用者像(SRE、開発者、経営幹部)を設定します
可視化のベストプラクティス
- グラフの選択: 傾向には時系列グラフ、分布にはヒートマップ、状態にはゲージを使用します
- 色彩理論: 重大な状態には赤、警告にはアンバー、正常な状態には緑を使用します
- 基準線: SLO 目標、容量の閾値、過去のベースラインを示します
- 時間範囲: 意味のある期間をデフォルトに設定します(インシデントには 4h、傾向には 7d)
パネル設計
- メトリクスクエリ: 適切な集約を用い、Prometheus/InfluxDB のクエリを効率化します
- アラート連携: 関連するパネルにアラート状態を視覚的に表示します
- インタラクティブ要素: テンプレート変数、掘り下げリンク、注釈オーバーレイを活用します
- パフォーマンス: クエリを最適化して、レンダリング時間を 1 秒未満にします
アラートの設計と最適化
アラートの分類
- 重大度レベル:
- 重大: サービス停止、SLO のバーンレートが高い
- 警告: しきい値に接近、ユーザーに影響しない問題
- 情報: デプロイ通知、キャパシティ計画のアラート
- 対応可能性: すべてのアラートに明確な対応アクションが必要です
- アラートのルーティング: 重大度とチームの担当範囲に基づくエスカレーションポリシー
アラート疲れの防止
- シグナルとノイズ: 再現率の高さより、適合率の高さ(誤検知の少なさ)を優先します
- ヒステリシス: アラートの発報と解消で異なるしきい値を設定します
- 抑制: 既知の障害中は、依存するアラートを抑制します
- グループ化: 関連するアラートをまとめて単一の通知にします
アラートルールの設計
- しきい値の選定: しきい値の決定に統計的手法を用います
- ウィンドウ関数: 適切な平均化ウィンドウとパーセンタイル計算を設定します
- アラートのライフサイクル: 明確な発報条件と自動解消の基準を定めます
- テスト: 過去のデータを用いてアラートルールを検証します
ランブックの生成とインシデント対応
ランブックの構成
- アラートのコンテキスト: アラートの意味と発報理由
- 影響評価: ユーザー向けの影響と内部への影響を評価します
- 調査手順: 所要時間の見積もりを含む、順序立てたトラブルシューティング手順
- 解決アクション: 一般的な修正方法とエスカレーション手順
- インシデント後: フォローアップタスクと再発防止策
インシデント検出パターン
- 異常検出: 通常と異なるパターンを検出する統計的手法
- 複合アラート: 複雑な障害モードに対応する複数シグナルのアラート
- 予測アラート: キャパシティと傾向に基づく先行アラート
- カナリア監視: 段階的なデプロイの監視による早期検出
ゴールデンシグナルのフレームワーク
レイテンシの監視
- リクエストレイテンシ: P50、P95、P99 の応答時間を追跡します
- キューレイテンシ: 処理キューでの待ち時間
- ネットワークレイテンシ: サービス間通信の遅延
- データベースレイテンシ: クエリ実行と接続プールのメトリクス
トラフィックの監視
- リクエストレート: バースト検出を含む、1 秒あたりのリクエスト数
- 帯域幅の使用状況: ネットワークスループットとキャパシティ使用率
- ユーザーセッション: アクティブユーザーの追跡とセッション時間
- 機能の使用状況: API エンドポイントと機能の利用状況に関するメトリクス
エラーの監視
- エラー率: 4xx および 5xx の HTTP 応答コードを追跡します
- エラーバジェット: SLO に基づくエラー率の目標値と消費量
- エラーの分布: エラータイプの分類と傾向
- サイレント障害: HTTP エラーを伴わない処理障害を検出します
飽和状態の監視
- リソース使用率: CPU、メモリ、ディスク、ネットワークの使用状況
- キューの深さ: 処理キューの長さと待ち時間
- 接続プール: データベースとサービスの接続飽和状態
- レート制限: API のスロットリングとクォータ超過を追跡します
分散トレーシング戦略
トレースアーキテクチャ
- サンプリング戦略: ヘッドベース、テールベース、適応型サンプリング
- トレースの伝搬: サービス境界を越えたコンテキストの伝搬
- スパンの相関付け: 親子関係のモデル化
- トレースの保存: 保持ポリシーとストレージの最適化
サービスのインストルメンテーション
- 自動インストルメンテーション: フレームワークベースの自動トレース生成
- 手動インストルメンテーション: ビジネスロジック用のカスタムスパンの作成
- バゲージの処理: 横断的関心事の伝搬
- パフォーマンスへの影響: インストルメンテーションのオーバーヘッドを測定し、最適化します
ログ集約パターン
収集アーキテクチャ
- エージェントのデプロイ: ログ転送エージェントの戦略(プッシュ型とプル型)
- ログのルーティング: トピックベースのルーティングとフィルタリング
- 解析戦略: 構造化ログと非構造化ログの処理
- スキーマの進化: ログ形式のバージョン管理と移行
ストレージとインデックス作成
- インデックス設計: 一般的なクエリパターンに合わせてフィールドのインデックスを最適化します
- 保持ポリシー: 時間と容量に基づくログの保持
- 圧縮: ログデータの圧縮とアーカイブの戦略
- 検索パフォーマンス: クエリの最適化と結果のキャッシュ
オブザーバビリティのコスト最適化
データ管理
- メトリクスの保持: メトリクスの重要度に基づく階層型の保持
- ログのサンプリング: 取り込みコストを削減するインテリジェントなサンプリング
- トレースのサンプリング: 費用対効果の高いトレース収集戦略
- データのアーカイブ: 過去のオブザーバビリティデータ向けのコールドストレージ
リソースの最適化
- クエリ効率: メトリクスとログのクエリを最適化します
- ストレージコスト: データの種類に応じた適切なストレージ階層
- 取り込みレートの制限: コスト管理のためのデータ取り込み制御
- カーディナリティ管理: カーディナリティの高いメトリクスの検出と軽減
スクリプトの概要
このスキルには、包括的なオブザーバビリティ設計を実現する、強力な Python スクリプトが 3 つ含まれています。
1. SLO Designer (slo_designer.py)
サービスの特性に基づいて、SLI/SLO フレームワーク一式を生成します。
- 入力: サービスの説明 JSON(種類、重要度、依存関係)
- 出力: SLI 定義、SLO 目標、エラーバジェット、バーンレートアラート、SLA の推奨事項
- 機能: 複数ウィンドウでのバーンレート計算、エラーバジェットポリシー、アラートルールの生成
2. Alert Optimizer (alert_optimizer.py)
既存のアラート設定を分析し、最適化します。
- 入力: ルール、しきい値、ルーティングを含むアラート設定 JSON
- 出力: 最適化レポートと改善されたアラート設定
- 機能: ノイズの検出、カバレッジのギャップ、重複の特定、しきい値の最適化
3. Dashboard Generator (dashboard_generator.py)
包括的なダッシュボード仕様を作成します。
- 入力: サービス/システムの説明 JSON
- 出力: Grafana 対応のダッシュボード JSON とドキュメント
- 機能: ゴールデンシグナルの網羅、RED/USE メソッド、ドリルダウンパス、ロールベースのビュー
統合パターン
監視スタックとの統合
- Prometheus: メトリクスの収集とアラートルールの生成
- Grafana: ダッシュボードの作成と可視化設定
- Elasticsearch/Kibana: ログ分析とダッシュボード統合
- Jaeger/Zipkin: 分散トレーシングの設定と分析
CI/CD との統合
- パイプライン監視: ビルド、テスト、デプロイのオブザーバビリティ
- デプロイの相関分析: リリースの影響追跡とロールバックのトリガー
- フィーチャーフラグの監視: A/B テストと機能展開のオブザーバビリティ
- パフォーマンスのリグレッション: パイプラインでの自動パフォーマンス監視
インシデント管理との統合
- PagerDuty/VictorOps: アラートのルーティングとエスカレーションポリシー
- Slack/Teams: 通知とコラボレーションの統合
- JIRA/ServiceNow: インシデント追跡と解決のワークフロー
- ポストモーテム: インシデント分析と改善状況の追跡を自動化します
高度なパターン
マルチクラウドのオブザーバビリティ
- クラウド横断メトリクス: AWS、GCP、Azure にまたがるメトリクスの統合
- ネットワークのオブザーバビリティ: クラウド間接続の監視
- コストの帰属: クラウドリソースのコスト追跡と最適化
- コンプライアンス監視: セキュリティとコンプライアンスの状態の追跡
マイクロサービスのオブザーバビリティ
- サービスメッシュとの統合: Istio/Linkerd のオブザーバビリティ設定
- API ゲートウェイの監視: リクエストルーティングとレート制限のオブザーバビリティ
- コンテナオーケストレーション: Kubernetes クラスターとワークロードの監視
- サービスディスカバリー: 動的なサービス監視とヘルスチェック
機械学習のオブザーバビリティ
- モデルパフォーマンス: 精度、ドリフト、バイアスの監視
- フィーチャーストアの監視: 特徴量の品質と鮮度の追跡
- パイプラインのオブザーバビリティ: ML パイプラインの実行とパフォーマンスの監視
- A/B テスト分析: 統計的有意性とビジネスへの影響の測定
ベストプラクティス
組織との連携
- SLO の設定: プロダクトチームとエンジニアリングチームが協力して目標を設定します
- アラートの担当: 明確なエスカレーション経路とチームの責任を定めます
- ダッシュボードのガバナンス: ダッシュボードの管理と標準を一元化します
- トレーニングプログラム: チームにオブザーバビリティツールと実践方法を教育します
技術的な卓越性
- Infrastructure as Code: オブザーバビリティの設定をバージョン管理します
- テスト戦略: アラートルールのテストとダッシュボードの検証を行います
- パフォーマンス監視: オブザーバビリティシステムのパフォーマンスを追跡します
- セキュリティ上の考慮事項: オブザーバビリティにおけるアクセス制御とデータプライバシーを考慮します
継続的な改善
- メトリクスのレビュー: SLI/SLO の有効性を定期的に評価します
- アラートの調整: アラートのしきい値とルーティングを継続的に最適化します
- ダッシュボードの進化: ユーザーのフィードバックに基づいてダッシュボードを改善します
- ツールの評価: オブザーバビリティツールの有効性を定期的に評価します