オブザーバビリティ おぶざーばびりてぃ
可観測性メトリクスログトレーシングOpenTelemetrySRE
オブザーバビリティって何?モニタリングと何が違うの?
簡単に言うとこんな感じ!
モニタリングは「あらかじめ決めた指標を見張る」こと。でもオブザーバビリティは「知らなかった問題も外から観察して原因を突き止められる」性質だよ。複雑なシステムで「なぜ遅いのか?」「どこが壊れたのか?」を追跡できるように、十分なデータが取れているかどうかって感じかな!
オブザーバビリティとは
オブザーバビリティ(Observability:可観測性)とは、システムの外部出力(ログ・メトリクス・トレース)からシステム内部の状態を把握・推論できる性質のことです。制御工学の概念に由来します。ソフトウェアの文脈では「どんな未知の問題でも、出力データを分析すれば原因を特定できる能力」を指します。
オブザーバビリティは3本柱(Three Pillars)と呼ばれる3種類のデータで支えられます。①ログ(Logs):時刻付きのイベント記録。エラーの詳細や特定リクエストの挙動を把握できます。②メトリクス(Metrics):時系列の数値データ(CPU使用率・リクエスト数・エラー率など)。傾向把握やアラートに使います。③トレース(Traces):マイクロサービスをまたぐリクエストの経路を追跡する分散トレーシング。どのサービスで遅延が起きたかを特定します。
従来のモニタリングは「あらかじめ想定した問題を検知する(Known Unknowns)」アプローチでした。オブザーバビリティは「想定外の問題も追跡できる(Unknown Unknowns)」ことを目標とします。マイクロサービスや分散システムの複雑化に伴い、オブザーバビリティの重要性が急速に高まっています。
3本柱の比較
| 種類 | 何を記録するか | 強み | 主なツール |
|---|---|---|---|
| ログ | 時刻付きのイベント文字列 | 原因の詳細把握・デバッグ | ELK Stack・Loki・Cloud Logging |
| メトリクス | 時系列の数値(カウンター・ゲージ) | トレンド把握・アラート設定 | Prometheus・Datadog・CloudWatch |
| トレース | サービスをまたぐリクエストの経路・時間 | 分散システムのボトルネック特定 | Jaeger・Zipkin・AWS X-Ray |
歴史と背景
- 2013年:Caitie McCaffreyがTwitterでの分散システム監視の知見を公開。オブザーバビリティへの注目が高まる
- 2017年:Charity Majorsらがオブザーバビリティをソフトウェアエンジニアリングのコアコンセプトとして体系化
- 2019年:OpenTelemetry(OpenTracingとOpenCensusの統合)がCNCFで発足。テレメトリの標準化が進む
- 2021年:OpenTelemetry 1.0(Tracing)リリース。主要言語のSDKが安定版に
- 2022年〜:ログ・メトリクス・トレースをひとつのプラットフォームで扱う「統合オブザーバビリティ」(Datadog・Grafana等)が主流に
- 2023年〜:eBPFを使ったエージェントレスな自動計装(Auto-instrumentation)が台頭
3本柱の関係と役割分担
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| OpenTelemetry v1.x | ログ・メトリクス・トレースのベンダー中立な計装・収集APIの標準仕様 |
| W3C Trace Context | 分散トレースのコンテキスト伝播の標準(TraceID・SpanID) |
関連用語
- 分散トレーシング — マイクロサービスをまたぐリクエストの経路を追跡する技術
- ログ集約 — 複数サービスのログを一箇所に集めて検索・分析する仕組み
- メトリクス・SLO — サービスの数値指標とサービスレベル目標を管理する手法
- サービスメッシュ — サービスメッシュがメトリクス・トレース・ログを自動収集する
- カオスエンジニアリング — 障害を意図的に起こしてオブザーバビリティで挙動を観察する実践
- SRE — SREがオブザーバビリティの設計・整備を主導し、信頼性向上に活用する
- CI/CDパイプライン — デプロイ後のオブザーバビリティでリリースの影響を監視する