【おぶざーばびりてぃ】

オブザーバビリティ とは?

💡 「何が起きても内部の状態を外から読み解ける」システムの透明度
📌 このページのポイント
オブザーバビリティの3本柱 ログ (Logs) INFO 2024-01-15 req OK WARN timeout 3.2s ERROR DB conn failed INFO retry success イベントの詳細記録 メトリクス (Metrics) 閾値 CPU / メモリ / レイテンシ 数値の時系列データ トレース (Traces) Gateway 45ms Auth 20ms API 35ms DB 28ms リクエスト経路の追跡 ダッシュボード & アラート Grafana / Datadog → 障害の検知・原因特定・デバッグ
オブザーバビリティの3本柱
ひよこ ひよこ

オブザーバビリティってモニタリングと何が違うの?

ペンギン先生 ペンギン先生

モニタリングは「あらかじめ決めた指標がおかしくなったら知る」仕組みで、言うなれば既知の問題を見つけるためのものだよ。オブザーバビリティは「何が起きても内部で何が起きていたかを追跡できる」能力のことで、想定外の問題にも対応できることが目標なんだ。

ひよこ ひよこ

ログ・メトリクス・トレースって何が違うの?

ペンギン先生 ペンギン先生

ログは「何時に何が起きた」という出来事の記録、メトリクスは「CPUが80%・エラーが3件」という数値の集計、トレースは「このリクエストがどのサービスをどの順番で通ったか」という処理の追跡だよ。3つを組み合わせることで「何が・いつ・なぜ起きたか」を多角的に分析できるんだ。

ひよこ ひよこ

マイクロサービスだとオブザーバビリティが特に大事ってよく聞くね。

ペンギン先生 ペンギン先生

サービスが1つなら原因を探しやすいけど、10個・20個のサービスが連携していると1つのリクエストがどのサービスで遅くなったか・エラーが出たかを追うのがとても難しくなるんだ。分散トレーシングがないとどこに問題があるかすら分からないことがあるよ。

ひよこ ひよこ

OpenTelemetryって何?ベンダーごとにライブラリが違うの?

ペンギン先生 ペンギン先生

そこが以前は問題で、DatadogSDK・New RelicのSDKJaegerSDKとバラバラだったんだ。OpenTelemetryはログ・メトリクス・トレースの計装(テレメトリデータの収集)を標準化したフレームワークで、これを使えばデータの収集コードを書き換えずにバックエンドのツールを変更できるようになるんだ。ただし「収集」は標準化されても「可視化・分析」は各ツールが異なるから、どのツールを使うかは別途選定が必要なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「オブザーバビリティ」って出てきたら「ログ・メトリクス・トレースでシステムの内部状態を外から把握できる仕組みと能力だな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Observability」 = 観測可能性
💬 制御工学の概念で「外部から観測した情報だけで内部状態を推定できるか」を指す言葉。IT分野ではGoogleのSRE文化から広まったよ
← 用語集にもどる