この記事では、Microsoft Foundry リソースの診断ログを有効にする手順について説明します。 これらのログは、問題の識別とデバッグに使用できるリソースの操作に関する豊富で頻繁なデータを提供します。 続行する前に、少なくとも 1 つの Microsoft Foundry リソースへのサブスクリプションを持つAzure アカウントが必要です。
前提条件
診断ログを有効にするには、ログ データを格納する場所を選択する必要があります。 このチュートリアルでは、Azure Storage と Log Analytics を使用します。
- Azure Storage - ポリシー監査、静的解析、またはバックアップの診断ログを保持します。 ストレージ アカウントは、設定を構成するユーザーが両方のサブスクリプションに対する適切なAzureロールベースのアクセス制御 (RBAC) アクセス権を持っている限り、ログを出力するリソースと同じサブスクリプションに存在する必要はありません。
- Log Analytics - Azure リソースによって生成された生ログを分析するために使用できる柔軟なログ検索および分析ツール。
Note
- 他の構成オプションも使用できます。 詳細については、Azure リソースからのログ データの収集と使用に関するページを参照してください。
- 診断ログの [トレース] オプションは、 カスタム質問の回答にのみ使用できます。
診断ログの収集を有効にする
まず、Azure ポータルを使用して診断ログを有効にします。
Note
PowerShell またはAzure CLIを使用してこの機能を有効にするには、Azure リソースからのログ データの収集と使用に関する記事を参照してください。
- Azure ポータルにアクセスします。 次に、Microsoft Foundry リソースを見つけて選択します。
- 次に、左側のナビゲーション メニューで [監視] を見つけて、[診断設定] を選択します。 この画面には、このリソースに対して前に作成したすべての診断設定が含まれています。
- 以前に作成した診断設定を使用する場合は、ここで選択します。 それ以外の場合は、 [+ Add diagnostic setting] (+ 診断設定の追加) を選択します。
- 設定の名前を入力します。 次に、 [ストレージ アカウントへのアーカイブ] および [Log Analytics への送信] を選択します。
- 構成を求められたら、診断ログの格納に使用するストレージ アカウントと OMS ワークスペースを選択します。
Note
ストレージ アカウントまたは OMS ワークスペースがない場合は、プロンプトに従って作成します。
- 監査ログ、要求ログと応答ログ、Azure OpenAI の要求使用状況、および AllMetrics を選択します。 使用可能な各ログ カテゴリの詳細については、OpenAI 監視データ リファレンスAzure参照してください。
- 保存を選びます。
ログ データがクエリや分析に使用できるようになるまでに最大 2 時間かかることがあるため、すぐに何も表示されなくても心配しないでください。
Azure Storageでログを表示する
診断ログをストレージ アカウントにルーティングすると、出力されたログ レコードAzure Monitor JSON BLOB として書き込まれます。 各ログ カテゴリは、 insights-logs-<category> という名前の独自のコンテナー ( insights-logs-audit や insights-logs-requestresponseなど) に格納されます。
- Azure ポータルで、診断設定を有効にしたときに選択したAzure Storage リソースを見つけます。
- 左側のナビゲーション メニューで、 データ ストレージ を見つけて、[コンテナー] を選択 します。
-
insights-logs-<category>など、確認するログ カテゴリのinsights-logs-requestresponseコンテナーを選択します。 - BLOB パスをドリルダウンして、リソースと時間枠のログを見つけます。 BLOB は、リソース ID とタイムスタンプによって整理されます (例:
resourceId=/SUBSCRIPTIONS/.../PROVIDERS/MICROSOFT.COGNITIVESERVICES/ACCOUNTS/<resource-name>/y=<year>/m=<month>/d=<day>/h=<hour>/m=00/PT1H.json)。 -
PT1H.jsonBLOB を選択し、[ダウンロード] を選択して保存します。 各 BLOB には行区切りの JSON が含まれています。各行は 1 つのログ レコードです。
診断ログの格納方法の詳細については、リソース ログAzure参照してください。 Azure Storageの BLOB データでできることについては、Azure Storageを参照してください。
Log Analytics ログを表示する
リソースに対するログ分析データを調査するには、次の手順に従います。
- Azure portal で、左側のナビゲーション メニューから [Log Analytics] を見つけて選択します。
- 診断を有効にするときに作成したリソースを見つけて選択します。
- [全般] で、 [ログ] を見つけて選択します。 このページから、ログに対してクエリを実行できます。
サンプル クエリ
ログ データを調査するために使用できるいくつかの基本的な Kusto クエリを次に示します。
指定した期間、Microsoft Foundry リソースからのすべての診断ログに対して、次のクエリを実行します。
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.COGNITIVESERVICES"
このクエリを実行して、P50、P90、P95、P99 パーセンタイルなど、応答コードによって要求の待機時間を測定します。
AzureDiagnostics
| where TimeGenerated between (todatetime('<StartDateTime>') .. todatetime('<EndDateTime>'))
| where ResourceId has "<YourResourceID>"
| where Category == "RequestResponse"
| project TimeGenerated, ResponseCode = ResultSignature, DurationMs, OperationName
| summarize
RequestCount = count(),
P50 = percentile(DurationMs, 50),
P90 = percentile(DurationMs, 90),
P95 = percentile(DurationMs, 95),
P99 = percentile(DurationMs, 99)
by ResponseCode, OperationName
| order by RequestCount desc
応答コードで要求数を測定するには、次のクエリを実行します。
AzureDiagnostics
| where TimeGenerated between (todatetime('<StartDateTime>') .. todatetime('<EndDateTime>'))
| where ResourceId has "<YourResourceID>"
| where Category == "RequestResponse"
| project TimeGenerated, ResponseCode = ResultSignature
| summarize RequestCount = count() by ResponseCode
| order by RequestCount desc
出力されたすべてのメトリックを確認するには、次のクエリを実行します。
AzureMetrics
| where TimeGenerated between (todatetime('<StartDateTime>') .. todatetime('<EndDateTime>'))
| project MetricName, Total, Count, Maximum, Minimum, Average, TimeGrain, UnitName
次のステップ
- 使用可能なリソース ログ カテゴリ、関連するLog Analytics テーブル、およびログ スキーマについては、OpenAI 監視データのリファレンスAzure参照してください。
- ログを有効にする方法、および各種の Azure サービスでサポートされているメトリックやログのカテゴリを理解するには、Microsoft Azure のメトリックの概要と Azure 診断ログの概要を参照してください。
- 「Azure Monitor ログでのログ検索について」をお読みください。