次の方法で共有


Azure Spring Apps ランディング ゾーン アクセラレータの運用の監視

この記事では、Azure Spring Apps にデプロイされた Spring Boot アプリケーションの監視の考慮事項とレコメンデーションについて説明します。

組織は、すべてのワークロードで共有される一元的な監視を提供する場合や、ワークロードごとに専用の Azure Monitor Log Analytics ワークスペースを提供する場合があります。 一元化されたリソースに依存する場合は、アプリケーション チーム メンバーが Azure ロールベースのアクセス制御 (RBAC) ロールによってログへのアクセス権を持つようにします。

プラットフォーム設計について、詳しくは「ワークロードの管理と監視」をご覧ください。

独自の監視リソースをプロビジョニングすることもできます。 このアプローチにより、アプリケーション チームの自律性が高くなり、アプリケーションの全体的な管理が簡素化されます。 トレードオフとして、管理オーバーヘッドが増加する可能性があります。 Azure Spring Apps ランディング ゾーン アクセラレータと次のガイダンスは、このアプローチに基づいています。

設計上の考慮事項

  • ログとメトリック。 アプリケーションとリソースから出力されるログとメトリックを収集します。 ログは、ワークロードの運用に関する分析情報を提供します。 メトリックは定期的に収集され、ほぼリアルタイムの分析情報を提供します。 ログとメトリックは、リソースの正常性と使用率に関連する調査に役立ちます。

    メトリックは、"スケーリングの決定" に重要です。 メトリックのしきい値に基づいてアプリをスケーリングしたり、特定の時間枠中にアプリをスケーリングしたりできます。

    "今後の分析のために、このデータを保存" することを検討する必要があります。 傾向をすばやく特定できるように、データを視覚化する機能を維持します。

  • インストルメンテーション。 アプリケーションから追加の監視データ を生成するインストルメンテーションを用意します。 インストルメンテーション情報を収集するには、Azure Application Insights Java エージェントなどのアプリケーション パフォーマンス管理 (APM) ツールを使用します。 プラットフォーム 診断とこの情報を組み合わせて、強化された監視機能を提供します。

  • 分散トレース。 分散トレースを実装して、Azure Spring Apps エコシステム内の "さまざまなサービスにまたがる監視" を可能にします。

  • アラート。 アプリケーション チームは、ワークロードにとって重要なイベントに関する "通知を受け取る" 必要があります。 ストレージ、要求の割合、データ使用状況などのメトリックに基づいてリソースを監視するアラートを設定できます。

  • 正常性プローブ。 正常性プローブを設定して、"バックエンド サービスの正常性" を検出できます。 正常性プローブがどのように設定されているかをレビューして、要求が正常なインスタンスにルーティングされ、バックエンド サービスが利用できない場合はアプリケーションが適切に終了するようにします。

設計の推奨事項

  • Azure Monitor メトリックを使用して、監視対象のリソースから出力されたメトリックを時系列データベースに収集します。

    Azure Spring Apps の場合は、各アプリケーションの [概要] ページと [共通メトリック] ページで "グラフを表示" します。

  • Azure Spring Apps 内の [診断設定] ページを使用して、アプリの診断設定の組み合わせを目的どおりに構成します。

    注意

    ストレージ アカウント、イベント ハブ、または Log Analytics にログが表示されるまでに遅延があります。 Spring アプリ インスタンスがその間に削除または移動された場合は、同じリソース ID を持つ別のアプリが同じ診断設定を再利用しないように、診断設定を削除する必要があります。

  • すべてのアプリケーション コンポーネントにわたって一貫性があるアプリケーション パフォーマンス監視 (APM) ツールである Application Insights を使用して、"アプリケーション ログ、メトリック、トレースを収集" してください。 すべての依存関係とトレースからデータを収集でき、エンドツーエンドのトランザクションを視覚化する機能があります。

    Azure Spring Apps を使用すると、Spring Cloud Resilience4J メトリックを Application Insights に収集できます。 Java インプロセス エージェントを有効にし、ディメンション コレクションを構成してこの機能を有効にします。

    Azure Spring Apps は Application Insights を使用して、Spring Cloud Sleuth と Zipkin を統合します。

  • "アプリ インスタンスをすばやく検出して登録" できるようにするサービス検出メカニズムを選択します。 オプションは、Azure Spring Apps レベルにより異なります。

  • 異常なアプリ インスタンスがサービス検出機能から排除されるように、readiness probe と liveness probe を一緒に使用します。

  • アプリケーションの起動時間が長い場合は、アプリケーションの開始時間よりも長い値に合計タイムアウト initialDelaySeconds + periodSeconds * failureThreshold を調整します。 この調整は、プローブの失敗を回避し、アプリケーションを強制的に再起動するのに役立ちます。

  • アプリケーション固有のコマンド、TCP ソケット接続、または HTTP 要求に基づいてアクションを実行するように正常性プローブを構成します。

  • Spring Boot アプリについては、Spring Boot アクチュエータの正常性インジケーターを活用して、正常性プローブを構成します。

次のステップ

Azure Spring Apps ランディング ゾーン アクセラレータ