可観測性(オブザーバビリティ)の基本
「動いているかどうか」がわかる監視から一歩進んで、「なぜそうなっているか」を追える状態を作る可観測性の考え方を、ログ・メトリクス・トレースの3要素から解説します。
監視だけではわからないこと
システム監視の基本で扱った「監視」は、システムが正常か異常かを検知することが目的です。一方で、「レスポンスが遅い」「特定の処理だけ失敗する」といった、正常・異常の境界が曖昧な状態の原因を突き止めるには、監視のアラートだけでは情報が足りないことがあります。可観測性は、このような「なぜそうなっているか」を後から調査できる状態を指す考え方です。
可観測性を構成する3要素
ログ :いつ・何が・どう処理されたかを記録したテキスト情報です。個々の出来事を詳細に追うのに向いています。
メトリクス :CPU使用率やレスポンスタイムなど、時系列で変化する数値データです。全体の傾向や異常な変化を把握するのに向いています。
トレース :1つの処理が、複数のシステムやサービスをまたいでどう流れたかを追跡した記録です。特に複数のサービスが連携するシステムで、どこで処理が遅くなっているかを特定するのに役立ちます。
なぜ3つを組み合わせる必要があるのか
メトリクスで「レスポンスが遅くなっている」という異常の兆候をつかみ、トレースでどの処理・どのサービスで遅延が起きているかを絞り込み、ログでその処理の詳細な内容を確認する、というように、3つの情報を組み合わせることで初めて原因にたどり着けます。どれか1つだけでは、異常に気づけても原因の特定に時間がかかります。
AWSやCloudflareの標準機能で揃えられること
主要なクラウドサービスには、可観測性の3要素をカバーする標準機能がすでに用意されています。
AWSの場合 :CloudWatch Logsでアプリケーションのログを収集し、CloudWatch Metrics・Alarmsでメトリクスの収集と異常検知を行えます。複数のサービスをまたぐ処理のトレースには、X-Rayが使えます。
Cloudflareの場合 :Workers上で動くアプリケーションのログは、Workers LogsやWrangler CLIのtailコマンドでリアルタイムに確認できます。アクセス状況や実行回数などのメトリクスはAnalytics Engineで収集・集計でき、ダッシュボードから稼働状況を把握できます。
いずれも、専用の可観測性プラットフォームを別途契約しなくても、使っているクラウドサービスの標準機能だけである程度の可観測性を確保できます。まずはこうした標準機能を使い切ることから始めるのが現実的です。
中小規模のシステムでどこまで必要か
大規模なシステムでなければ、専用の可観測性プラットフォームを導入するほどの必要はないケースも多くあります。まずは前述のような標準機能でログとメトリクスを揃えることから始め、複数のサービスが連携する構成に発展してきた段階でトレースの導入を検討する、という段階的な進め方が現実的です。