チュートリアル:発行された API を監視する
適用対象: すべての API Management レベル
Azure Monitor を使用すると、Azure API Management サービスのメトリックまたはログを視覚化、クエリ、ルーティング、アーカイブし、メトリックとログに対してアクションを実行できます。
Note
現在、この機能はワークスペースでは使用できません。
このチュートリアルでは、次の作業を行う方法について説明します。
- API のメトリックを表示する
- アラート ルールを設定する
- アクティビティ ログを表示する
- リソース ログを有効にして表示する
Note
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 インスタンスに移動します。
左側のメニューから [アラート] を選択します。
[+ 作成]>[アラート ルール] を選択します。
[条件] タブの [Select a signal] (シグナルの選択) ウィンドウで、次の手順を実行します。
- [シグナルの種類] で [メトリック] を選択します。
- [シグナル名] で [要求] を選択します。
- [アラート ロジック] で、超えるとアラートをトリガーする発生数の [しきい値] を指定します。
- [Split by dimensions](ディメンションによる分割) の [ディメンション名] で、 [Gateway Response Code Category](ゲートウェイ応答コード カテゴリ) を選択します。
- [ディメンション値] で、承認されていない要求や無効な要求などのクライアント エラーに対応する、 [4xx] を選択します。 ディメンション値が表示されない場合は、[カスタム値を追加] を選択し、「4xx」と入力します。
- [評価するタイミング] で、既定の設定をそのまま使用するか、他の設定を選択してルールを実行する頻度を構成します。 [次へ] を選択します。
[アクション] タブで、1 つ以上の "アクション グループ" を選択または作成して、アラートについてユーザーに通知し、アクションを実行します。 たとえば、通知メールを
admin@contoso.com
に送信する新しいアクション グループを作成します。 詳細については、「Azure portal でのアクション グループの作成および管理」をご覧ください。[アラート ルールの作成] の [詳細] タブで、アラート ルールの名前と説明を入力し、重大度レベルを選択します。
オプションで残りの設定を構成します。 次に、[確認と作成] タブで、[作成] を選択します。
次に、API キーなしで Conference API を呼び出してアラート ルールをテストします。 次に例を示します。
curl GET https://apim-hello-world.azure-api.net/conference/speakers HTTP/1.1
アラートは評価期間に基づいてトリガーされ、電子メールを admin@contoso.com に送信します。
アラートは、API Management インスタンスの [アラート] ページにも表示されます。
アクティビティ ログ
アクティビティ ログからは、API Management サービスで実行された操作に関する分析情報が提供されます。 アクティビティ ログを使用すると、API Management サービスで発生した書き込み操作 (PUT、POST、DELETE) について、"いつ誰が何を" 行ったのかを確認できます。
Note
アクティビティ ログには、読み取り (GET) 操作、Azure Portal で実行された操作、または元の管理 API の使用に関する情報は含まれません。
アクティビティ ログには API Management サービスでアクセスするか、Azure Monitor ですべての Azure リソースのログにアクセスできます。
アクティビティ ログを表示するには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。
[アクティビティ ログ] を選択します。
目的のフィルター処理の範囲を選択し、 [適用] を選択します。
リソース ログ
リソース ログ (Azure Monitor ログ) からは、監査とトラブルシューティングを行うために重要な、API Management の操作とエラーについての豊富な情報が提供されます。 診断設定を通じて有効にすると、ログは、API Management ゲートウェイによって受信および処理された API 要求に関する情報を収集します。
Note
従量課金レベルでは、リソース ログの収集はサポートされていません。
リソース ログを構成するには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。
[診断設定] を選択します。
[+ 診断設定の追加] を選択します。
収集するログまたはメトリックを選択します。
ログとメトリックを送信する場所については、いくつかのオプションがあります。 たとえば、リソース ログをメトリックとともにストレージ アカウントにアーカイブし、それらをイベント ハブにストリーム配信したり、Log Analytics ワークスペースに送信したりするなどです。
ヒント
Log Analytics ワークスペースを選択した場合は、リソース固有の ApiManagementGatewayLogs テーブルにデータを格納するか、一般的な AzureDiagnostics テーブルに格納するかを選択できます。 リソース固有のテーブルをサポートするログの宛先には、それを使用することをお勧めします。 詳細情報
ログの宛先の詳細を構成したら、[保存] を選択します。
Note
API Management サービスの MinApiVersion プロパティが、2022-09-01-preview より高い API バージョンに設定されている場合、診断設定オブジェクトを追加するとエラーが発生する可能性があります。
詳細については、「プラットフォーム ログとメトリックを異なる宛先に送信するための診断設定を作成する」を参照してください。
Azure Monitor で診断データを表示する
Log Analytics ワークスペースでログまたはメトリックの収集を有効にした場合、データが Azure Monitor に表示されるまでに数分かかることがあります。
データを表示するには、次の手順に従います。
Azure portal で、API Management インスタンスに移動します。
左のメニューから [ログ] を選択します。
クエリを実行してデータを表示します。 サンプル クエリがいくつか用意されています。自分で用意したものを実行してもかまいません。 たとえば、次のクエリでは、ApiManagementGatewayLogs テーブルから直近の 24 時間のデータを取得します。
ApiManagementGatewayLogs | where TimeGenerated > ago(1d)
API Management にリソース ログを使用する方法の詳細については、以下を参照してください。
Log Analytics チュートリアル、または Log Analytics デモ環境をお試しください。
API ログ設定を変更する
既定では、リソース ログの収集を有効にする診断設定を作成すると、既定の設定ですべての API に対してログ記録が有効になります。 すべての API に対するログ設定を調整することも、それらをオーバーライドして個々の API を対象にすることもできます。 たとえば、サンプリング レートやデータの詳細度を調整したり、ヘッダーや要求または応答のペイロードのログを有効にしたり、一部の API のログを無効にしたりできます。
ログ設定の詳細については、「診断ログ設定のリファレンス」を参照してください。
すべての API に対してログ設定を構成するには:
- API Management インスタンスの左のメニューで [API]>[すべての API] を選択します。
- 上部のバーの [設定] タブを選択します。
- [診断ログ] セクションまで下にスクロールし、[Azure Monitor] タブを選択します。
- 設定を確認し、必要に応じて変更します。 [保存] を選択します。
特定の API に対してログ設定を構成するには:
- API Management インスタンスの左のメニューで、[API] を、次に API の名前を選択します。
- 上部のバーの [設定] タブを選択します。
- [診断ログ] セクションまで下にスクロールし、[Azure Monitor] タブを選択します。
- 設定を確認し、必要に応じて変更します。 [保存] を選択します。
重要
有効にすると、ログされる要求または応答のペイロードは最大 8,192 バイトになります。 API Management では、Azure Monitor に送信される診断ログ エントリに対して 32 KB の制限も適用されます。これには、ペイロードと、状態コード、ヘッダー、タイムスタンプなどのその他の属性が含まれます。 属性の合計サイズが 32 KB を超える場合、API Management はすべての本文とトレースのコンテンツを削除してエントリをトリミングします。
次のステップ
このチュートリアルでは、以下の内容を学習しました。
- API のメトリックを表示する
- アラート ルールを設定する
- アクティビティ ログを表示する
- リソース ログを有効にして表示する
次のチュートリアルに進みます。