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 で実行されている関数アプリではサポートされません。
設定
Azure portal で関数アプリの [監視] セクションから [診断設定] を選択し、 [診断設定を追加する] をクリックします。
[診断設定] ページの [カテゴリの詳細] と [ログ] で、FunctionAppLogs を選択します。
[FunctionAppLogs] テーブルには、目的のログが含まれています。
[宛先の詳細] で、 [Log Analytics への送信] を選択して、Log Analytics ワークスペースを選択します。
診断設定名を入力して、 [保存] を選択します。
ユーザー生成ログ
カスタム ログを生成するには、お使いの言語に固有のログ記録ステートメントを使用します。 サンプル コード スニペットを次に示します。
log.LogInformation("My app logs here.");
ログのクエリ
生成されたログをクエリするには、次の操作を行います。
関数アプリから、 [診断設定] を選択します。
[診断設定] から、関数ログの送信先として構成した Log Analytics ワークスペースを選択します。
[Log Analytics ワークスペース] ページで、 [ログ] を選択します。
Azure Functions によって、すべてのログは、 [LogManagement] の FunctionAppLogs テーブルに書き込まれます。
いくつかのサンプル クエリを次に示します。
すべてのログ
FunctionAppLogs
| order by TimeGenerated desc
特定の関数のログ
FunctionAppLogs
| where FunctionName == "<Function name>"
例外
FunctionAppLogs
| where ExceptionDetails != ""
| order by TimeGenerated asc
次のステップ
- 「Azure Functions の概要」を確認してください。
- Azure Monitor ログの詳細について学習します。
- クエリ言語の詳細について学習します。