複雑なシステムやアプリケーションの状態や動きの全容をリアルタイムに把握できること、およびそのための取り組みを指す。日本語では「可観測性」と訳される。

 マイクロサービスアーキテクチャー(MSA)、コンテナ、クラウドなど新しい技術を用いたサービスが普及したことで、システムが複雑になり障害時のビジネスへの影響も以前より推測しづらくなっている。そうした情報システムを巡る環境変化に伴い、システム監視の新たな考え方として近年関心を集めている。

 従来はWebサーバー/アプリケーションサーバー/データベースのWeb3層システムを採用することが主流だった。構成がシンプルだったので、障害が起きた場合も原因の推測や特定が比較的容易だった。従来のモニタリングは想定内の障害に対して監視し、異常時にアラートを出す仕組みである。

 しかし近年は多数のサブシステムやコンポーネントを組み合わせて1つのサービスを運用する場面が増えつつある。大規模システムのどこでどのような障害が起きるのか想定し切れなくなり、従来のモニタリングだけでは障害対応が困難になりつつあった。そこで複雑なシステムを横断的に見る監視の考え方としてオブザーバビリティーが生まれた。

 オブザーバビリティーを備えたシステムでは、想定外の障害も見据えてシステム全体がどう動いているのかを詳細に把握する。つまり「何が起きたか」を知るモニタリングに対し、オブザーバビリティーは「なぜ起きたか」まで把握できるようにする違いがある。

3種類のデータでシステム内部を可視化

 オブザーバビリティーを実現するには、メトリクス、ログ、トレースという3種類のデータをそろえる必要がある。この3種類のデータを総称してテレメトリーと呼ぶ。

 メトリクスは定期的に収集した測定値の集合だ。従来はCPUの使用率、メモリーの使用量などを取得していたが、近年は外形監視と呼ばれるリクエストに対する応答時間などが加わった。ログは特定のコードを実行したときに生成するテキストデータだ。いつ、何をしたかなど、システム全体の動きを確認できる。

 トレースは独立したコンポーネント同士のデータ送受信を可視化したものだ。例えばユーザーが特定のWebサイトにアクセスする場合、アクセス要求がどのコンポーネントに届いたか、どのコンポーネントからデータを集めてWebページの画面を生成しているか、などをトレースにより把握できる。情報システムのオブザーバビリティーを高めるには各コンポーネントからテレメトリーを出力させる設計と実装が必要だ。

 主要各社の監視ツールでは近年、各コンポーネントから集約したテレメトリーをチャートなどにまとめたダッシュボードを備えている。大規模で複雑なシステムでも状態を一元管理でき、異状も把握しやすい。さらに従来のしきい値によるアラート機能に加え、機械学習を利用してシステムの異常を自動検知するアラート機能も備える。