【おぶざーばびりてぃ】

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

最終更新:
💡 外から質問を投げて、中のようすを読み解ける「見通しのよさ」

システムが外に出すログ・メトリクス・トレースなどの情報から、内部で何が起きているかを理解できる度合い。事前に想定していなかった問題も調べやすくすることが目的。

📌 このページのポイント
オブザーバビリティの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本柱
ひよこ ひよこ
オブザーバビリティってモニタリングと何が違うの?
ペンギン先生 ペンギン先生
モニタリングは、あらかじめ決めた指標を見張って異常に気づく仕組みだよ。オブザーバビリティは、システムの中身を知らなくても外に出るデータに質問して、想定していなかった問題まで調べられるかという性質なんだ。対立するものではなく、モニタリングはその土台の1つだね
ひよこ ひよこ
ログ・メトリクス・トレースって何が違うの?
ペンギン先生 ペンギン先生
ログは時刻付きの出来事の記録、メトリクスはCPU使用率やエラー率のような数値を期間ごとに集計したもの、トレースは1つのリクエストがどのサービスをどう通ったかの記録だよ。組み合わせると「いつ・どこで・何が起きたか」を絞り込みやすくなるんだ
ひよこ ひよこ
マイクロサービスだと特に大事ってよく聞くね
ペンギン先生 ペンギン先生
1つのリクエストが多くのサービスを通ると、どこで遅くなったか、どこでエラーが出たかを1つのログだけで追うのが難しくなるんだ。分散トレーシングでリクエストの経路をつなげておくと、問題の場所を探しやすくなるよ
ひよこ ひよこ
OpenTelemetryって何?ベンダーごとにライブラリが違うの?
ペンギン先生 ペンギン先生
以前は監視サービスごとに専用のライブラリを使うことが多かったんだ。OpenTelemetryは、トレース・メトリクス・ログを作って送る部分を共通化するためのオープンソースの仕組みだよ。対応するバックエンドなら、計装のコードを書き直さずに送り先を変えやすくなる。ただ、保存や可視化はOpenTelemetry自体の役割ではないから、別にツールを選ぶ必要があるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「オブザーバビリティ」って出てきたら「ログ・メトリクス・トレースから、システムの中で起きていることを外から理解できる度合い」と思えればだいたいOK!
📖 おまけ:英語の意味
「Observability」 = 観測可能性
💬 もとは制御工学の言葉で、外から観測できる出力だけで内部の状態を推定できるかを表すよ。ソフトウェアでも同じ考え方で使われるようになったんだ

参考資料

← 用語集にもどる