監視とは
アプリケーションが運用環境にデプロイされると、監視によってアプリケーションのパフォーマンスと使用パターンに関する情報が提供されるため、問題を特定、軽減、解決できます。
モニタリングの目的
モニタリングの 1 つの目標は、時間の観点から測定される主要なメトリックを最小限に抑えることで高可用性を実現することです。
- 検出までの時間 (TTD): パフォーマンスやその他の問題が発生すると、問題に関する豊富な診断データが自動監視を通じて開発チームにフィードバックされます。
- 軽減する時間 (TTM): DevOps チームは情報に基づいて行動し、ユーザーが影響を受けないようできるだけ早く問題を軽減します。
- 修復までの時間 (TTR): 解決にかかる時間が測定され、チームは時間の経過とともに改善に取り組みます。 軽減後、チームは問題が再発しないように根本原因から問題を修復する方法に取り組みます。
モニタリングの 2 番目の目標は、使用状況を追跡することで検証された学習 を可能にすることです。 検証済み学習の中心的な概念は、すべての展開が、展開に至った仮説を支持または軽減する実験結果を追跡する機会であるということです。 使用状況とバージョン間の違いを追跡することで、チームは変更の影響を測定し、ビジネス上の意思決定を推進できます。 仮説が薄れた場合、チームはすぐに失敗するか、方向転換することができます。 仮説が支持される場合、チームは力を合わせるか粘り強くすることができます。 これらのデータに基づいた意思決定は、新しい仮説とバックログの優先順位付けにつながります。
主要な概念
テレメトリは、監視からデータを収集するためのメカニズムです。 テレメトリでは、展開環境にインストールされたエージェント、ソース コードに挿入されたマーカーに依存する SDK、サーバー ログ、またはこれらの組み合わせを使用できます。 通常、テレメトリは、リアルタイムのアラートとダッシュボード用に最適化されたデータ パイプラインと、トラブルシューティングや使用状況分析に必要な大量のデータを区別します。
合成モニタリングは、一貫したトランザクションのセットを使用してパフォーマンスと可用性を評価します。 合成トランザクションは、予測可能なテストであり、リリースごとに予測可能な方法で比較できるという利点があります。 一方、リアル ユーザー モニタリング (RUM) は、ユーザーのブラウザ、モバイル デバイス、またはデスクトップからのエクスペリエンスを測定します。 携帯電話ネットワーク、インターネット ルーティング、キャッシュなどのラスト マイル条件を考慮します。 合成物質とは異なり、RUM は通常、長期間にわたる再現性のある測定を提供しません。
モニタリングは、本番環境でのテストによく使用されます。 適切に監視された展開では、その健全性とパフォーマンスに関するデータがストリーミングされるため、本番環境のインシデントをすぐに特定できます。 継続的な展開リリース パイプラインと組み合わせることで、監視によって新しい異常が検出され、迅速な緩和が可能になります。 これにより、運用前環境では予測できないアプリケーション動作の未知の要素を発見できます。
DevOps チームが迅速にサービスを提供し、運用環境からフィードバックを得て、顧客満足度、顧客獲得、維持率を向上させるには、効果的なモニタリングが不可欠です。
次のステップ
Azure Monitor の監視機能の詳細を参照してください。
監視のための Application Insights を設定して使用する方法を学習します。