可観測性とは、外部から認識可能な要素を使用して、システムの動作を理解するために使用される技術用語です。
システムの現在の状態を測定 (テレメトリー) するために、ログ、メトリックス、およびトレースなど、システムによって生成されるデータを使用するのが一般的です。
ログは、システムの動作を理解するのに役立つテキストメッセージです。特定の時間に発生したイベントについて記録され、サービスまたはコンポーネントによって発行されます。
メトリックスは、特定の期間に計算または追加されることが多い再集計、数値データまたは測定値です。
インフラストラクチャ、ホスト、サービス、クラウド内のプラットフォーム、および外部ソースなど、さまざまなソースから発生する場合があります。
メトリックスの例として、システムのエラー率や特定のサービスに対する要求率などがあります。
トレースは分散トレースとしても知られており、要求がアプリケーションを通過するときのルートを示します。
トレース表示の例:
出典:
https://opentelemetry.io/docs/concepts/observability-primer/
ログ、メトリック、およびトレースにより、次の評価が可能になります:
- サービスの機能
- 実行される場所
- 過去の動作およびインタラクション
このように、システムを観測可能にするのに役立ちます。
可観測性の目的は、問題を検出して解決し、システムの効率および信頼性を維持するために、何が起こっているかを理解することです。このため、可観測性のレベルが高ければ高いほど、問題の診断から原因の特定や解決策の定義までが容易になります。
可観測性は、現代のアプリケーションで発生する未知の側面を含む問題を対象としています (拡張性や複雑性が常に変化する動的アプリケーションは、監視では見つけることができない未知の問題を生み出す可能性がある)。これにより、発生した問題を継続的かつ自動的に把握し、ユーザーに影響が及ぶ前に積極的に解決することも可能になります。
そのほかにも、次のような理由があります:
- 問題解決にかかる時間を短縮する
- 繰り返される問題を克服するための予測機能の開発を可能にする
- ユーザーの満足度を向上させる
- 運用効率を上げる
- より高品質なソフトウェアの開発を可能にする