適用対象: すべての API Management レベル
Azure Monitor を使用すると、Azure API Management サービスのメトリックまたはログを視覚化、クエリ、ルーティング、アーカイブし、メトリックとログに対してアクションを実行できます。 Azure Monitor for API Management の概要については、「API Management の監視」を参照してください。
ヒント
API チームは、ワークスペースでこの機能を使用できます。 ワークスペースは、API と独自の API ランタイム環境への分離された管理アクセスを提供します。
このチュートリアルでは、次の作業を行う方法について説明します。
- API のメトリックを表示する
- アラート ルールを設定する
- アクティビティ ログを表示する
- リソース ログを有効にして表示する
注
API Management では、組み込みの分析や Application Insights との統合などの、API を監視するためのさまざまな追加ツールがサポートされています。 詳細情報
前提条件
- Azure API Management の用語について学習します。
- 次のクイック スタートを完了すること:Azure API Management インスタンスを作成する。
- また、次のチュートリアルを完了すること: 最初の API のインポートと発行。
API のメトリックを表示する
API Management はメトリックを 1 分ごとに出力するので、API の状態と正常性をほぼリアルタイムで把握できます。 最も頻繁に使われるメトリックを次に示します。 使用可能なすべてのメトリックの一覧については、「メトリック」をご覧ください。
容量 - API Management サービスのアップグレードとダウングレードの判断に役立ちます。 このメトリックは 1 分ごとに出力され、報告時の見積もりゲートウェイの容量を反映しています。 メトリックの範囲は 0 から 100 で、CPU やメモリの使用率などのゲートウェイ リソースおよび他の要因に基づいて計算されます。
ヒント
v2 サービス レベルとワークスペース ゲートウェイでは、API Management によってゲートウェイ容量メトリックが個別の CPU とメモリ使用率のメトリックに置き換えられました。 これらのメトリックは、スケーリングに関する決定とトラブルシューティングにも使用できます。 詳細情報
要求 - 対象の API Management サービスを通過する API トラフィックを分析する際に役立ちます。 メトリックは 1 分ごとに出力され、ゲートウェイ要求の数をディメンションと共に報告します。 応答コード、場所、ホスト名、エラーで要求をフィルター処理します。
注
要求メトリックはワークスペースでは使用できません。
重要
次のメトリックは廃止されました: 合計ゲートウェイ要求数、成功したゲートウェイ要求数、未承認ゲートウェイ要求数、失敗したゲートウェイ要求数、その他のゲートウェイ要求数。 同等の機能を提供する要求メトリックに移行してください。
メトリックにアクセスするには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。 [概要] ページの [モニター] タブで、API の主要メトリックを確認します。
メトリックを詳細に調査するには、左側のメニューから [監視]>[メトリック] の順に選択します。
ヒント
ワークスペースでは、ワークスペース ゲートウェイを対象とした容量メトリックを表示できます。 ワークスペース ゲートウェイの左側のメニューにある [監視>メトリック ] に移動します。
ドロップダウン リストで、関心のあるメトリックを選択します。 Requestsなど。
グラフには、API 呼び出しの合計数が表示されます。 対象期間に集中するように時間範囲を調整します。
[Requests](要求数) メトリックのディメンションを使用してグラフをフィルター処理できます。 たとえば、[フィルターの追加] を選択し、[Backend Response Code Category] (バックエンド応答コード カテゴリ) を選択して、値として「
500
」を入力します。 API バックエンドで失敗した要求の数がグラフに表示されます。
アラート ルールを設定する
メトリックとアクティビティ ログに基づいて、アラートを受け取ることができます。 Azure Monitor で、トリガー時にアクションを実行するようにアラート ルールを構成します。 一般的なアクションには、次のようなものがあります。
- 電子メール通知を送信する
- Webhook を呼び出す
- Azure Logic App を呼び出す
要求メトリックに基づいてサンプル アラート ルールを構成するには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。
左側のメニューから [監視]>[アラート] の順に選択します。
[+ 作成]>[アラート ルール] を選択します。
[条件] タブで:
- [シグナル名] で [要求] を選択します。
- [アラート ロジック] で、アラートの既定値を確認または変更します。 たとえば、静的な[しきい値] を更新します。これは、アラートをトリガーする必要がある発生回数です。
- [Split by dimensions](ディメンションによる分割) の [ディメンション名] で、 [Gateway Response Code Category](ゲートウェイ応答コード カテゴリ) を選択します。
- [ディメンション値] で、承認されていない要求や無効な要求などのクライアント エラーに対応する、 [4xx] を選択します。 ディメンション値が表示されない場合は、[カスタム値を追加] を選択し、「4xx」と入力します。
- [評価するタイミング] で、既定の設定をそのまま使用するか、他の設定を選択してルールを実行する頻度を構成します。 [次へ] を選択します。
[アクション] タブで、1 つ以上の "アクション グループ" を選択または作成して、アラートについてユーザーに通知し、アクションを実行します。 たとえば、通知メールを
admin@contoso.com
に送信する新しいアクション グループを作成します。 詳細については、「Azure portal でのアクション グループの作成および管理」をご覧ください。[アラート ルールの作成] の [詳細] タブで、アラート ルールの名前と説明を入力し、重大度レベルを選択します。
オプションで残りの設定を構成します。 次に、[確認と作成] タブで、[作成] を選択します。
必要に応じて、アラート ルールをテストします。このためには、HTTP クライアントを使用して、アラートをトリガーする要求をシミュレートします。 たとえば、ターミナルで次のコマンドを実行します。API Management のホスト名を実際の API Management インスタンスのホスト名に置き換えてください。
curl GET https://contoso.azure-api.net/non-existent-endpoint HTTP/1.1
アラートは評価期間に基づいてトリガーされ、電子メールを admin@contoso.com に送信します。
アラートは、API Management インスタンスの [アラート] ページにも表示されます。
アクティビティ ログ
アクティビティ ログからは、API Management サービスで実行された操作に関する分析情報が提供されます。 アクティビティ ログを使用すると、API Management サービスで発生した書き込み操作 (PUT、POST、DELETE) について、"いつ誰が何を" 行ったのかを確認できます。
注
アクティビティ ログには、読み取り (GET) 操作と Azure portal で実行された操作は含まれません。
アクティビティ ログには API Management サービスでアクセスするか、Azure Monitor ですべての Azure リソースのログにアクセスできます。
アクティビティ ログを表示するには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。
[アクティビティ ログ] を選択します。
目的のフィルター処理の範囲を選択し、 [適用] を選択します。
リソース ログ
リソース ログ (Azure Monitor ログ) からは、監査とトラブルシューティングを行うために重要な、API Management の操作とエラーについての豊富な情報が提供されます。 診断設定を通じて有効にすると、ログは、API Management ゲートウェイによって受信および処理された API 要求に関する情報を収集します。
注
従量課金レベルでは、リソース ログの収集はサポートされていません。
ヒント
ワークスペースを含む API Management インスタンスでは、API Management サービス全体のフェデレーション ログに API プラットフォーム チームがアクセスして一元化された API 監視を行うことができますが、ワークスペース チームはワークスペースの API に固有のログにアクセスできます。 ワークスペースを使用した Azure Monitor のログ記録の詳細
リソース ログの収集の診断設定を構成するには:
Azure portal で、API Management インスタンスに移動します。
左側のメニューの [監視] で、[診断設定]>[+ 診断設定を追加する] を選択します。
[診断設定] ページで、設定の詳細を次のように入力または選択します。
- [診断設定名]: わかりやすい名前を入力します。
- [カテゴリ グループ]: 必要に応じて、シナリオを選択します。
- [ カテゴリ]: 1 つ以上のカテゴリを選択します。 たとえば、 ApiManagement ゲートウェイに関連するログを 選択して、API Management ゲートウェイに対するほとんどの要求のログを収集します。
- [宛先の詳細]: 1 つ以上のオプションを選択し、宛先の詳細を指定します。 たとえば、Azure Log Analytics ワークスペースにログを送信したり、ログをストレージ アカウントにアーカイブしたり、イベント ハブにストリーミングしたりできます。 詳しくは、「Azure Monitor の診断設定」をご覧ください。
- [保存] を選択します。
ヒント
Log Analytics ワークスペースを選択した場合は、リソース固有のテーブル (ApiManagementGatewayLogs テーブルなど) にデータを格納するか、一般的な AzureDiagnostics テーブルに格納することができます。 リソース固有のテーブルをサポートするログの宛先には、それを使用することをお勧めします。 詳細情報
ログの宛先の詳細を構成したら、[保存] を選択します。
注
API Management サービスの MinApiVersion プロパティが、2022-09-01-preview より高い API バージョンに設定されている場合、診断設定オブジェクトを追加するとエラーが発生する可能性があります。
注
API Management ワークスペースの診断設定を有効にするには、「ワークスペースの 作成と管理」を参照してください。
Azure Log Analytics でログとメトリックを表示する
Log Analytics ワークスペースでログまたはメトリックの収集を有効にした場合、データが Azure Monitor に表示されるまでに数分かかることがあります。
データを表示するには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。
左側のメニューの [ 監視] で、[ ログ] を選択します。
クエリを実行してデータを表示します。 サンプル クエリがいくつか用意されています。自分で用意したものを実行してもかまいません。 たとえば、次のクエリでは、ApiManagementGatewayLogs テーブルから直近の 24 時間のデータを取得します。
ApiManagementGatewayLogs | where TimeGenerated > ago(1d)
API Management にリソース ログを使用する方法の詳細については、以下を参照してください。
API ログ設定を変更する
ポータルを使用して、API Management ゲートウェイまたは生成 AI ゲートウェイ (LLM) ログの収集を有効にする診断設定を作成すると、既定の設定でログ記録が有効になります。 既定の設定には、要求や応答本文などの要求または応答の詳細は含まれません。 すべての API に対するログ設定を調整することも、それらをオーバーライドして個々の API を対象にすることもできます。 たとえば、ゲートウェイ ログ データのサンプリング レートや詳細度を調整したり、LLM 要求または応答メッセージのログ記録を有効にしたり、一部の API のログ記録を無効にしたりできます。
ログ設定の詳細については、「 診断 - 作成または更新 」および 「API 診断 - REST API の作成または更新 」のリファレンス ページを参照してください。
すべての API に対してログ設定を構成するには:
- API Management インスタンスの左側のメニューで [API]>[API]>[すべての API] の順に選択します。
- 上部のバーの [設定] タブを選択します。
- [診断ログ] セクションまで下にスクロールし、[Azure Monitor] タブを選択します。
- 設定を確認し、必要に応じて変更します。 [保存] を選択します。
特定の API に対してログ設定を構成するには:
- API Management インスタンスの左側のメニューで、[API]>[API] の順に選択し、API の名前を選びます。
- 上部のバーの [設定] タブを選択します。
- [診断ログ] セクションまで下にスクロールし、[Azure Monitor] タブを選択します。
- 設定を確認し、必要に応じて変更します。 [保存] を選択します。
重要
API Management では、Azure Monitor に送信されるログ エントリのサイズに 32 KB の制限が適用されます。 ログ エントリが制限を超えた場合の動作は、ログ カテゴリとログに記録されるデータ属性によって異なります。
- API Management ゲートウェイ ログ - ログ エントリに記録された要求または応答ペイロード (収集された場合) は、それぞれ最大 8,192 バイトにすることができます。 エントリ内の属性の合計サイズが 32 KB を超える場合、API Management は、すべての本文とトレースコンテンツを削除することでエントリをトリミングします。
- 生成 AI ゲートウェイ ログ - 収集された場合、最大 32 KB のサイズの LLM 要求または応答メッセージが 1 つのエントリで送信されます。 32 KB を超えるメッセージは分割され、後で再構築するためにシーケンス番号を含む 32 KB のチャンクに記録されます。 要求メッセージと応答メッセージは、それぞれ 2 MB を超えることはできません。
次のステップ
このチュートリアルでは、以下の内容を学習しました。
- API のメトリックを表示する
- アラート ルールを設定する
- アクティビティ ログを表示する
- リソース ログを有効にして表示する
次のチュートリアルに進みます。