はじめに

完了

このユニットでは、Java アプリケーションの監視の概念について見ていきます。

監視する理由

どのような環境でも、ユーザーによるシステムの使用方法を追跡し、リソース使用率をトレースし、システムの正常性とパフォーマンスを全般的に監視することが重要です。 ここに記載する情報を診断に使用して、問題の検出と修正を行うことができます。さらに、潜在的な問題を見つけてその発生を防止するために役立てることもできます。

監視の形式

監視には一般的に 4 つの形式があります。

  • ログ: 完全なデータベースではないとしても、一貫性のある表形式で永続的に保存されているイベントの不変の記録。 "イベント" とは、次のようなさまざまな状況を示すことがあります。

    • 監視されているコンポーネントの状態の変化 (たとえば、"busy (使用中)" が "available (使用可能)" になる)。
    • タスクまたは一連の命令の完了。
    • ネットワークを介したデータの進行におけるマイルストーン、またはネットワークにおけるユニットの可用性。
    • エラー (ここでは、処理または軽減するようにシステムまたはアプリケーションがプログラムされていない動作)。
  • メトリック : サービスまたはアプリケーション、あるいはそれをホストするインフラストラクチャの相対的な正常性、安定性、可用性を表す値。

  • トレース : プログラムやサービスの実行パスの記録。(特に、高度に分散されたシステムにおいて) 直接または間接的にイベントをトリガーさせた可能性がある一連の指示を示す。

  • アラート: アラートは、インフラストラクチャまたはアプリケーションで問題が見つかった場合に事前に通知する。 管理者は、その通知を見て、システムのユーザーが問題に気付く前に問題を識別して対処できます。

Azure Monitoring プラットフォーム

Azure では Azure Monitor を提供しています。これには、開発者と管理者が、アプリケーションのパフォーマンスとそれらをホストするインフラストラクチャに関するテレメトリを収集、分析、および操作するために使用できる一連のサービスが含まれています。

Log Analytics は、Azure Monitor ログによって収集されたデータからログ クエリを編集して実行し、その結果を対話形式で分析する Azure portal のツールです。 Log Analytics クエリを使用すると、特定の条件に一致するレコードの取得、傾向の特定、パターンの分析を行って、データに関するさまざまな分析情報を入手できます。

Application Insights とは、Azure Monitor の機能であり、開発者や DevOps の専門家を対象とした拡張可能なアプリケーション パフォーマンス管理 (APM) サービスです。 パフォーマンスの異常を自動的に検出し、組み込まれている分析ツールを使用して、問題を診断し、ユーザーがアプリを使用して実行している操作を把握できます。

Azure Monitor アラート: 特定のシナリオに対応するために監視データは他の場所に送信されることがあるほか、一部のリソースについては、他の場所に書き込まれた後で、ログやメトリックに収集されることもあります。

  • メトリック アラートでは、指定したしきい値を超えた場合にアラートのトリガーが提供されます。 たとえば、メトリック アラートでは、CPU 使用率が 95% を超えた場合に通知できます。
  • ログ アラートは、ログ ファイルに書き込まれたデータに基づいています。 たとえば、ログ アラートにより、Web サーバーから 404 または 500 応答が多数返されたときに、通知を受け取ることができます。

Elastic Stack、Splunk、New Relic、Dynatrace、App Dynamics など、任意の監視システムを使用して、Azure アプリケーション、サービス、インフラストラクチャを監視できます。 このモジュールでは、Azure Monitor、Log Analytics、Application Insights を重点的に取り上げます。