ポータルでログ記録を追加し、Azure 関数を監視する

完了

Azure Functions Maven 原型を使用した最初のサーバーレス Web 関数が正常にデプロイされたので、会社は、Azure Application Insights を使用してアプリケーションの使用状況を分析する方法をあなたに調査してほしいと考えています。

このユニットでは、基本的なトラブルシューティング ツールとしてのログ ストリーミング、そして Azure Functions と Application Insights 間の統合について学習します。

Azure CLI を使用してリアルタイムでログをストリーム配信する

関数アプリがデプロイされ、実行されました。 次の Azure CLI コマンドを使用すると、基本的なトラブルシューティングのためにアプリからリアルタイムのログ ストリーミングを取得できます。

az webapp log tail -n <function app name> -g <resource group name>

関数アプリへのトラフィックによって、次の例のようなストリーミング ログが生成される場合があります。

Image showing Log Streaming from Azure CLI.

より複雑なトラブルシューティングと監視のシナリオには、Application Insights の方が適しています。

Application Insights とは何か?

Azure Application Insights は、Azure Monitor に含まれるアプリケーション パフォーマンス管理 (APM) サービスであり、Azure Functions と統合されています。 Application Insights を使用すると、開発者は、顧客が使用しているアプリケーションに関するライブ データを表示および分析できます。 Application Insights には、アプリケーションに影響を与える可能性のある問題を分析して対応するための包括的なツール セットが用意されています。

Application Insights では、Node.js、Java、.NET のいずれかで開発されたアプリケーションがサポートされています。 これにより、開発チームは会社のアプリケーションをどのように構築およびビルドするかについて、より柔軟に選択できるようになります。

Application Insights によって、失敗した要求、サーバーの応答時間、サーバーの要求、可用性に関する重要な情報が提供されます。 Application Insights は、Azure Functions に対して既定で有効になっています。 コードにテレメトリ追跡ポイントを含めると、Application Insights でアプリケーションから送信されたテレメトリ データを使用することもできます。

Java プロジェクトにインストルメンテーションを追加する

Application Insights を最大限に活用するには、関数プロジェクトを更新する必要があります。 次の 2 種類の変更を行う必要があります。

  • 最初の変更セットは、Application Insights とログ記録のサポートを追加するための構成の更新です。

    • プロジェクトの pom ファイルを更新して、Application Insights ライブラリの依存関係を追加します。

    • プロジェクトの host.json ファイルを更新して、アプリケーションのログと Application Insights の動作を定義するパラメーターを追加します。

  • 2 番目の変更セットは、アプリケーションのコードへの変更です。これにより、アプリケーションのレポートを微調整する機会が得られます。

    • Application Insight にイベント追跡を実装するには、コードに "トラッカー" を追加する必要があります。

    • トラッカーは、コードの実行の重要なポイントに追加されます。たとえば、新しいページが選択された場合や、アプリケーションに特定のデータが保存された場合などです。

ログ記録と監視のオプションについて

関数アプリケーションで Application Insights を使用する方法としては、アプリケーションの監視とレポートを微調整することをお勧めします。 ただし、Azure で提供される組み込みのログから、アプリケーションの操作に関するデータを取得することもできます。

たとえば、ログ ストリーミングを入手するには、[関数アプリ] メニューの [ログ ストリーム] を選びます。 次に、[ファイルシステム ログ] または [App Insights ログ] を選びます。

Image showing where to find Log Streaming.