運用・監視

オブザーバビリティ おぶざーばびりてぃ

可観測性メトリクスログトレーシング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本柱の関係と役割分担

オブザーバビリティの3本柱 ログ (Logs) イベントの詳細記録 「何が起きたか」 2024-04-11 12:00:01 ERROR: DB timeout user_id=12345 query=SELECT... メトリクス (Metrics) 時系列の数値データ 「どのくらい起きたか」 error_rate: 0.5% p99_latency: 520ms req/sec: 1,240 cpu_usage: 78% トレース (Traces) リクエストの経路追跡 「どこで遅いか」 API GW: 5ms UserSvc: 12ms DB: 480ms ← ここ! Cache: 3ms 3本柱を組み合わせて「何が・どのくらい・どこで」起きたか把握する

関連する規格・RFC

規格・RFC番号内容
OpenTelemetry v1.xログ・メトリクス・トレースのベンダー中立な計装・収集APIの標準仕様
W3C Trace Context分散トレースのコンテキスト伝播の標準(TraceID・SpanID)

関連用語