Azure Monitor ログを使用した Azure Functions の監視

Azure Functions は Azure Monitor ログと統合されており、関数を監視することができます。 この記事では、システム生成ログとユーザー生成ログを Azure Monitor ログに送信するように Azure Functions を構成する方法について説明します。

Azure Monitor Logs を使うと、同じワークスペース内の異なるリソースのログを統合できます。また、それをクエリを使って分析し、収集したデータをすばやく取得、統合、分析できます。 Azure portal で Log Analytics を使用してクエリを作成およびテストした後、これらのツールを使用してデータを直接分析できるほか、クエリを保存して視覚化またはアラート ルールに利用することができます。

Azure Monitor では、Azure Data Explorer で使用される Kusto クエリ言語のバージョンを使用します。それは、単純なログ検索に適していますが、集計、結合、スマート分析などの高度な機能も備えています。 さまざまなレッスンを利用すれば、クエリ言語はすぐに覚えることができます。

注意

Azure Monitor ログとの統合は現在、パブリック プレビュー段階です。 バージョン 1.x で実行されている関数アプリではサポートされません。

設定

  1. Azure portal で関数アプリの [監視] セクションから [診断設定] を選択し、 [診断設定を追加する] をクリックします。

    Select diagnostic settings

  2. [診断設定] ページの [カテゴリの詳細][ログ] で、FunctionAppLogs を選択します。

    [FunctionAppLogs] テーブルには、目的のログが含まれています。

  3. [宛先の詳細] で、 [Log Analytics への送信] を選択して、Log Analytics ワークスペースを選択します。

  4. 診断設定名を入力して、 [保存] を選択します。

    Add a diagnostic setting

ユーザー生成ログ

カスタム ログを生成するには、お使いの言語に固有のログ記録ステートメントを使用します。 サンプル コード スニペットを次に示します。

log.LogInformation("My app logs here.");

ログのクエリ

生成されたログをクエリするには、次の操作を行います。

  1. 関数アプリから、 [診断設定] を選択します。

  2. [診断設定] から、関数ログの送信先として構成した Log Analytics ワークスペースを選択します。

  3. [Log Analytics ワークスペース] ページで、 [ログ] を選択します。

    Azure Functions によって、すべてのログは、 [LogManagement]FunctionAppLogs テーブルに書き込まれます。

    Query window in Log Analytics workspace

いくつかのサンプル クエリを次に示します。

すべてのログ


FunctionAppLogs
| order by TimeGenerated desc

特定の関数のログ


FunctionAppLogs
| where FunctionName == "<Function name>" 

例外


FunctionAppLogs
| where ExceptionDetails != ""  
| order by TimeGenerated asc

次のステップ