観測可能システムは、以下のようなタスクを達成するためのツールを提供します:
システム内で発生するイベント情報を記録する
システムのパフォーマンスに関する指標を、単一時点および一定期間にわたって取得する
システム内のリクエストをトレースする
システム オペレーターにシステムの状態を把握させる
システムの将来のパフォーマンスを予測する
システムで観測された問題の根本原因を突き止める
テレメトリー ソリューションでは、ログ、指標、トレースが可能になります。 監視ソリューションは、事前に定義された閾値を超えてシステムが動作している場合に、ダッシュボードを提供して管理者に警告することで、テレメトリー データの認識を向上させます。 完全に観測できるシステムを使用すると、テレメトリーや監視ソリューションを拡張し、予測や根本原因を解析することができます。
予測とは、システムの過去および現在のパフォーマンスに関する情報を使用して、その将来のパフォーマンスを見極めることです。 予測は、システム変更に関する意思決定に役立ちます。 たとえば、マッピング サービスへのリクエスト数が大幅に増加すると予測した場合は、ユーザーは、リソースの制約によるパフォーマンス低下が認められる前に、ArcGIS Server サイトにコンピューターを追加することを判断できます。
テレメトリー データのパターンや傾向を観測することで、予測が可能になります。 たとえば、指標の周期的なパターンは、その指標のピークと谷がいつ訪れるかを予測するのに役立ちます。 上昇または下降の傾向が強い場合、傾向が今後も続くと仮定すると、将来の値を予測することができます。
予測解析は管理者が行うこともできますが、ますます高度になる人工知能 (AI) の能力により、システムが自己を解析し適切に対応できる可能性が生まれます。 テレメトリーへのアクセス権限、システム変更の許可権限、適切な行動を決定するための堅牢なトレーニング モデルを持つ AI エージェントは、人間の直接介入を最小限にしながらシステムの安定を維持できる可能性があります。 いずれのタイプの AI も、自動応答システムの導入を検討する際には、確実に自分の優先事項や価値観に沿うよう細心の注意を払います。
システムに異常がある場合は、適切な解決策を実行するために、問題の根本原因を把握する必要があります。 たとえば、サービスの遅延が増加した場合、高額なインフラストラクチャーのアップグレードが必要になることも、サービスの単純な再構成で解決することもあります。
根本原因の解析には、6 つのステップがあります。
問題を検出します。 たとえば、監視ソリューションが、サービスの応答時間が事前に決められた閾値を超えたことを警告する場合があります。 監視ソリューションが予期しなかった問題については、その代わりに、システムが期待どおりに動作していないという報告をユーザーから受ける可能性があります。
問題をトリアージします。 問題が、単一のサービスに限定されているのか、それとも複数のサービスに影響するシステム的な問題なのかを判断します。 ダッシュボード、サービス マップ、ヘルス チェックなどの監視ツールは、この段階で問題の範囲を把握するのに役立ちます。
テレメトリー データを使用して問題を調査します。
指標は、500 エラーの急増やスループットの低下などの異常や閾値違反の特定に役立ちます。
ログで error メッセージ、スタック トレース、警告を検索します。 構造化ログは、ログ エントリーを特定のリクエスト ID やタイムスタンプと関連付けることで、関連するログ メッセージの検索範囲を絞り込むのに役立ちます。
トレースは、リクエストが遅延したりエラーが発生した箇所を特定できます。 たとえば、トレースは、データベース クエリーの遅延や API 呼び出しエラーを示すことがあります。
データを相関させ、文脈化します。 指標、ログ、トレースを組み合わせて、観測されたイベントのタイムラインを作成します。 たとえば、トレースが示したデータベース クエリーの遅延は、おそらくデータベース コンピューターの CPU 使用率指標の急上昇と同時に発生しています。 OpenTelemetry、Jaeger、Datadog APM などのサードパーティー ツールは、さまざまなデータ ソースの相関を見つけるのに役立ちます。
根本原因を特定します。 観測した相関を説明できる、システム内の変更を探します。 一般的な原因を次にいくつか挙げます:
最近のデプロイメントや構成の変更
メモリー リークなどのリソース枯渇
サードパーティーの API からの応答エラーなど、外部への依存関係によるエラー
ファイアウォール ルールの変更などのネットワーク問題
問題を解決します。 根本原因の特定に基づいて適切な修正を行います。 たとえば、最近の構成変更をロールバックする、ソフトウェアにパッチを適用する、サービスを拡大するなどの対応が必要になることが考えられます。 ただし、単に現在の問題を解決するだけでは不十分です。 問題、解析、ソリューションをドキュメント化し、今後他のユーザーが同様の問題に容易に対応できるようにします。 問題の再発を防ぐために、警告、ダッシュボード、自動テストを追加します。