CTS-KB

オブザーバビリティ

おぶざーばびりてぃ

Observability O11y 可観測性 オブザーバビリティ・エンジニアリング
#SRE #DevOps #監視 #インフラ #運用

システムの内部状態を、外部からの観測(ログ・メトリクス・トレース)だけでどれだけ把握できるかを示す性質。 「未知の未知(Unknown Unknowns)」の障害まで追跡できる設計能力 で、AI 駆動開発で量産されるコードの本番運用を支える基盤。

O11y は observability の「o」と「y」の間に 11 文字あることに由来する省略表記。

概要

従来の モニタリング は「事前に決めた指標を監視」する受動的アプローチ。これに対しオブザーバビリティは、 「想定外の異常が起きたときに、ログ・メトリクス・トレースから原因を特定できる」 能動的アプローチです。

観点モニタリングオブザーバビリティ
対象既知の障害パターン未知の障害も含む
目的「いつ壊れたか」を検出「なぜ壊れたか」を解明
必要条件事前にダッシュボード設計データの粒度・関連性が確保されている
質問形式「CPU 80% 超過?」(Yes/No)「なぜ顧客 X の注文が遅延した?」(自由形式)

3 本柱(Three Pillars)

オブザーバビリティの古典的な構成要素。

内容代表ツール
Logs(ログ)時系列のイベント記録。文脈情報を含むLoki / Elasticsearch / Datadog Logs
Metrics(メトリクス)集計された数値時系列(CPU・レイテンシ等)Prometheus / Datadog Metrics
Traces(トレース)リクエストがサービスを跨ぐ流れJaeger / Tempo / Datadog APM

3 本柱の役割分担

What happened?  → Metrics    (何が起きたか — 集計)
When?           → Logs       (いつ起きたか — タイムスタンプ)
Where?          → Traces     (どこで起きたか — 経路)
Why?            → 全部組み合わせて分析

5 本柱への進化(2025 年)

近年は 3 本柱に加えて ProfilingEvents を含む 5 本柱 が標準化されつつあります。

追加柱内容効用
Profiling(継続的プロファイリング)CPU / メモリの使用箇所を時系列で記録性能ボトルネックを本番から自動特定
Events(ビジネスイベント)デプロイ・機能フラグ切替・キャンペーン開始など「なぜこの瞬間から異常?」の原因絞り込み

イベントソーシング と組み合わせると、 ビジネスイベントとシステムイベントが統合された 強力な観測基盤になります。

OpenTelemetry — 業界標準

OpenTelemetry(OTel) は CNCF が標準化する、オブザーバビリティデータの仕様 + SDK + 収集エージェント。 2025 年現在のデファクトスタンダード

提供物内容
仕様OTLP(OpenTelemetry Protocol)でログ・メトリクス・トレースを統一表現
SDK各言語(Go / Java / Python / Node.js / .NET 等)のライブラリ
Collectorデータ収集・変換・転送のミドルウェア
ベンダー非依存Datadog / New Relic / Grafana など主要バックエンドが対応

OTel を使えば 計装は 1 度、バックエンドは後から差し替え が可能。ベンダーロックイン回避の最強の手段。

代表的なツール構成

商用 SaaS

ツール強み
DatadogAll-in-One、UI が秀逸、価格は高め
New RelicAPM の歴史、フリーミアムあり
Honeycombハイカーディナリティ(高次元データ)に強い
Sentryエラー追跡が中心、開発者体験◎
Axiomログ・イベント中心、コスト効率良い

OSS スタック(Grafana Stack)

Loki        ← ログ
Prometheus  ← メトリクス
Tempo       ← トレース
Pyroscope   ← プロファイル

    Grafana (統合 UI)

セルフホスト可能で、 コスト管理しやすい 構成。一人 SaaS でも採用しやすい。

AI 駆動開発との関係

AI が生成するコードの本番運用には、 オブザーバビリティが不可欠 。理由は 3 つ。

1. AI 生成コードの「想定外」を検知

AI は「動くコード」を出すが、 本番特有の負荷・データ偏り・並行性 を完璧には予測できません。オブザーバビリティがあれば、想定外の挙動を 本番投入後に発見・修正 できます。

2. AI に異常分析を任せる素材になる

素材AI に任せられる作業
ログ「このエラーログから根本原因を特定」
トレース「遅延が発生したスパンを特定」
メトリクス異常「異常時刻に何が変わったかを Events と突合」
プロファイル「CPU を食っている関数を特定し、最適化提案」

ログが構造化されていれば(JSON など)、 AI が即座に分析できる素材 になります。

3. 自動復旧(Self-Healing)の判定材料

AI 駆動開発の発展形として、 異常検知 → AI が原因仮説を立てる → 自動修正 PR を作成 という自動復旧パイプラインが現実化しています。これにはオブザーバビリティの 3 本柱が前提。

CLAUDE.md に書いておくべきこと

## オブザーバビリティ要件

- ログは構造化(JSON)で出力すること
- 全リクエストに traceId / requestId を付与
- 重要な業務イベント(注文確定・決済・キャンセル)は必ずログに記録
- 例外発生時は Sentry に送信
- メトリクスは Prometheus 形式で公開
- 個人情報・パスワード・カード番号はログに出さない

これを明示すると、AI が生成するコードに 最初からオブザーバビリティが組み込まれます 。後付けより圧倒的に安い。

アンチパターン

失敗是正
構造化されていない console.log の羅列必ず JSON ログ + 構造化フィールド(user_id, trace_id 等)
traceId が伝播していないOpenTelemetry SDK で自動伝播、手動でも propagation を必須化
ログに個人情報が混入redaction(マスキング)を共通ミドルウェアで強制
ログ・メトリクス・トレースがバラバラのツールOpenTelemetry で統合、または Grafana Stack で一元化
アラートが鳴りすぎてオオカミ少年化SLO ベースのアラート設計、alert fatigue を避ける
高カーディナリティをそのまま捨てるHoneycomb / Axiom など対応バックエンドを採用

関連記事

関連用語

参考資料