次の方法で共有


オンライン エンドポイントを監視する

Azure Machine Learning は、Azure Monitor との統合を使用して、オンライン エンドポイントのメトリックとログを追跡および監視します。 メトリックをグラフで表示したり、エンドポイントとデプロイの間でメトリックを比較したり、Azure portal ダッシュボードにメトリックをピン留めしたり、アラートを構成したり、ログ テーブルをクエリしたり、サポートされているターゲットにログをプッシュしたりできます。 Application Insights を使用して、ユーザー コンテナーからのイベントを分析することもできます。

  • メトリック: 要求の待機時間、1 分あたりの要求数、1 秒あたりの新しい接続数、ネットワーク バイト数などのエンドポイント レベルのメトリックについてドリルダウンして、デプロイ レベルまたは状態レベルで詳細情報を確認できます。 CPU/GPU の使用率、メモリやディスクの使用率など、デプロイレベルのメトリックをインスタンス レベルにドリルダウンすることもできます。 Monitor では、これらのメトリックをグラフで追跡し、ダッシュボードとアラートを設定して、さらに分析することができます。

  • ログ: メトリックを Log Analytics ワークスペースに送信し、そこで Kusto クエリ構文を使用してログをクエリできます。 メトリックを Azure Storage アカウントや Azure Event Hubs に送信して、さらに処理を行うこともできます。 トラフィック、コンソール (コンテナー) ログ、オンライン エンドポイントに関連するイベントについては、専用のログ テーブルを使用できます。 Kusto クエリは、複雑な分析機能と複数テーブルの結合をサポートしています。

  • Application Insights: キュレーションされた環境には、Application Insights との統合が含まれます。 オンライン デプロイを作成するときに、この統合を有効または無効にすることができます。 有効にすると、組み込みのメトリックとログが Application Insights に送信されます。 その後、Application Insights の組み込み機能を使用して、さらに分析を行うことができます。 これらの機能の例としては、ライブ メトリック、トランザクション検索、エラー ビュー、パフォーマンス ビューなどがあります。

この記事では、次の方法について説明します。

  • メトリックとログを表示および追跡するための適切な方法を選択します。
  • オンライン エンドポイントのメトリックを表示します。
  • メトリックのダッシュボードを作成します。
  • メトリック アラートを作成します。
  • オンライン エンドポイントのログを表示します。
  • Application Insights を使用してメトリックとログを追跡します。

前提条件

  • Azure Machine Learning オンライン エンドポイント
  • 少なくともエンドポイントに対する閲覧者アクセス権

メトリックを使用する

Azure portal では、オンライン エンドポイントとデプロイのメトリック ページを表示できます。

Azure Machine Learning スタジオからメトリックにアクセスする

メトリック ページにアクセスする簡単な方法は、Azure Machine Learning スタジオのユーザー インターフェイスで利用可能なリンクを使用することです。 これらのリンクは、エンドポイントのページの [詳細] タブにあります。 これらのリンクをクリックすると、Azure portal のエンドポイントまたはデプロイのメトリック ページに移動します。

スタジオで利用可能なリンクを使用してメトリック ページにアクセスするには、次の手順を実行します。

  1. Azure Machine Learning スタジオで、ワークスペースに移動します。

  2. [資産] で、[エンドポイント] を選択します。

  3. エンドポイントの名前を選択します。

  4. [エンドポイント属性] で、[メトリックの表示] を選択します。

    エンドポイント属性が表示されているスタジオのエンドポイント ページのスクリーンショット。[資産]、[エンドポイント]、[エンドポイント属性]、[メトリックの表示] が強調表示されています。

    Azure portal でエンドポイントのメトリック ページが開きます。

  5. Azure Machine Learning スタジオのエンドポイント ページで、デプロイのセクションに移動し、[メトリックの表示] を選択します。

    デプロイ情報が表示されているスタジオのエンドポイント ページのスクリーンショット。[デプロイ] が青色で表示されており、[メトリックの表示] が強調表示されています。

    Azure portal でデプロイのメトリック ページが開きます。

Azure Portal からメトリックにアクセスする

エンドポイントまたはデプロイのメトリック ページを表示する別の方法は、Azure portal に直接移動することです。

  1. Azure ポータルにアクセスします。

  2. オンライン エンドポイントまたはデプロイのリソースに移動します。

    オンライン エンドポイントとデプロイは、Azure Resource Manager リソースです。 これらは、リソース グループに移動して、Machine Learning オンライン エンドポイントMachine Learning オンライン デプロイというリソースの種類を探すことで、見つけることができます。

  3. リソース ページの [監視] で、[メトリック] を選択します。

    デプロイのメトリック ページが表示されている Azure portal のスクリーンショット。[監視] と [メトリック] が強調表示されています。

使用可能なメトリック

表示されるメトリックは、選択したリソースによって異なります。 オンライン エンドポイントとオンライン デプロイでは、メトリックのスコープが異なります。

エンドポイント スコープのメトリック

オンライン エンドポイント スコープで使用できるメトリックの情報については、「Microsoft.MachineLearningServices/workspaces/onlineEndpoints でサポートされているメトリック」を参照してください。

帯域幅調整

マネージド オンライン エンドポイントのクォータ制限を超えると、帯域幅が調整されます。 オンライン エンドポイントの制限の詳細については、Azure Machine Learning のクォータと制限に関する記事の「Azure Machine Learning オンライン エンドポイントとバッチ エンドポイント」を参照してください。 要求が調整されているかどうかを確認するには:

  • "ネットワーク バイト数" メトリックを監視します。
  • 応答トレーラーで次のフィールドを確認します: ms-azureml-bandwidth-request-delay-msms-azureml-bandwidth-response-delay-ms。 フィールドの値は帯域幅調整の遅延 (ミリ秒単位) です。

詳細については、「帯域幅制限の問題」を参照してください。

デプロイ スコープのメトリック

デプロイ スコープで使用できるメトリックに関する情報については、「Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments でサポートされているメトリック」を参照してください。

ダッシュボードとアラートを作成する

Monitor では、メトリックに基づいたダッシュボードとアラートを作成できます。

ダッシュボードを作成してクエリを視覚化する

カスタム ダッシュボードを作成して、オンライン エンドポイントのメトリックを含む、Azure portal の複数のソースからのメトリックを視覚化できます。 ダッシュボードの作成とクエリの視覚化の詳細については、「Log Analytics データのダッシュボードを作成して共有する」および「Application Insights を使用してカスタム KPI ダッシュボードを作成する」を参照してください。

アラートを作成する

カスタム アラートを作成して、オンライン エンドポイントに対する重要な状態の更新に関する通知を受け取ることもできます。

  1. Azure portal でメトリック ページに移動し、[新しいアラート ルール] を選択します。

    デプロイのメトリック ページが表示されている Azure portal のスクリーンショット。新しいアラート ルールが強調表示されています。

  2. [シグナルの選択] ウィンドウで、アラートを作成するシグナルを選択し、[適用] を選択します。

  3. [アラート ルールの作成] ページで、しきい値を入力し、調整するその他の設定を編集します。 アラート ルールの設定の詳細については、「アラート ルールの条件を構成する」を参照してください。 [次へ: アクション] を選択します。

    Azure portal の [アラート ルールの作成] ページのスクリーンショット。[しきい値] ボックスと [次のアクション] が強調表示されています。

  4. [アクション グループの選択] ウィンドウで、アクション グループを作成または選択して、アラートがトリガーされたときの動作を指定します。 詳細については、「アラート ルールの詳細を構成する」を参照してください。

  5. [確認と作成] を選択し、アラートの作成を完了します。

メトリックに基づいて自動的にスケーリングする

メトリックに基づいて自動的にスケーリングするようにデプロイを構成できます。 自動スケーリング機能を有効にするには、UI またはコードを使用します。

コードのオプションには、Azure Machine Learning CLI と Azure Machine Learning SDK for Python があります。 コードを使用する場合は、メトリックの REST API 名を指定して、自動スケーリングをトリガーする条件を構成します。

  • コードで使用するエンドポイント メトリックの名前については、「Microsoft.MachineLearningServices/workspaces/onlineEndpoints でサポートされているメトリック」の表の [REST API の名前] 列の値を参照してください。
  • コードで使用するデプロイ メトリックの名前については、「Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments でサポートされているメトリック」の表の [REST API の名前] 列の値を参照してください。

詳細については、「Azure Machine Learning でのオンライン エンドポイントの自動スケーリング」を参照してください。

ログを使用する

オンライン エンドポイントに対して有効にできるログは 3 つあります。

  • AmlOnlineEndpointTrafficLog: このトラフィック ログは、エンドポイントへの要求の情報を確認する手段を提供します。 このログは、次の場合に役立ちます。

    • 要求の応答が 200 ではなく、さらに詳しい情報が必要な場合。 ログの ResponseCodeReason 列に理由が一覧表示されます。 状態コードと理由の説明については、オンライン エンドポイントのトラブルシューティングに関する記事の「HTTPS 状態コード」を参照してください。
    • 要求に対するモデルの応答コードと応答の理由を確認したい場合があります。 その情報は ModelStatusCode 列と ModelStatusReason 列に表示されます。
    • 要求の継続時間を知りたい場合があります。 ログに待機時間の内訳が表示されます。 この内訳には、合計継続時間、要求時間、応答時間、ネットワーク調整によって発生した遅延が表示されます。
    • 最近の成功した要求と失敗した要求の数を確認したい場合があります。 その情報はログに記録されています。
  • AmlOnlineEndpointConsoleLog: このログには、コンテナーがコンソールに出力として書き込むステートメントが含まれています。 このログは、次の場合に役立ちます。

    • コンテナーが起動に失敗する場合。 コンソール ログがデバッグに役立ちます。
    • コンテナーの動作を監視し、すべての要求が正しく処理されていることを確認したい場合があります。
    • オンライン エンドポイントのネットワーク エントリ ポイントからコンテナーへの要求をトレースしたい場合があります。 要求 ID と AmlOnlineEndpointConsoleLog ログおよび AmlOnlineEndpointTrafficLog ログの情報を結合する Log Analytics クエリを使用できます。
    • たとえば、モデルが各要求の処理に要する時間を測定するために、パフォーマンス分析を実行したい場合があります。
  • AmlOnlineEndpointEventLog: このログには、コンテナーのライフ サイクルに関するイベント情報が含まれています。 現在、このログは次の種類のイベントに関する情報を提供しています。

    名前 メッセージ
    バックオフ Back-off restarting failed container (失敗したコンテナーの再起動をバックオフしました)
    プルされました Container image "<IMAGE_NAME>" already present on machine (コンテナー イメージ "<IMAGE_NAME>" がマシンに既に存在しています)
    強制終了しています Container inference-server failed liveness probe, will be restarted (コンテナー inference-server の liveness probe が失敗し、再起動されます)
    作成済み Created container image-fetcher (コンテナー image-fetcher を作成しました)
    作成済み Created container inference-server (コンテナー inference-server を作成しました)
    作成済み Created container model-mount (コンテナー model-mount を作成しました)
    ライブネスプローブ失敗 Liveness probe failed: <FAILURE_CONTENT> (liveness probe が失敗しました: <FAILURE_CONTENT>)
    レディネスプローブ失敗 Readiness probe failed: <FAILURE_CONTENT> (readiness probe が失敗しました: <FAILURE_CONTENT>)
    開始済み Started container image-fetcher (コンテナー image-fetcher を開始しました)
    開始済み Started container inference-server (コンテナー inference-server を開始しました)
    開始済み Started container model-mount (コンテナー model-mount を開始しました)
    強制終了しています Stopping container inference-server (コンテナー inference-server を停止しています)
    強制終了しています Stopping container model-mount (コンテナー model-mount を停止しています)

ログの有効化

重要

ログ記録では、Monitor の Log Analytics 機能を使用します。 現在 Log Analytics ワークスペースがない場合は、「ワークスペースの作成」の手順に従って作成できます。

  1. Azure portal で、エンドポイントを含むリソース グループに移動し、エンドポイントを選択します。

  2. [監視] で、[診断設定] を選択し、[診断設定を追加する] を選択します。

  3. [診断設定] ウィンドウで、次の情報を入力します。

    • [診断設定の名前] の横に設定の名前を入力します。
    • [ログ] で、有効にするログ カテゴリを選択します。
    • [送信先の詳細] で、[Log Analytics ワークスペースに送信する] を選択し、使用するサブスクリプション と Log Analytics ワークスペースを選択します。

    [診断設定] ウィンドウのスクリーンショット。すべてのログと [Log Analytics ワークスペースに送信する] が選択されています。サブスクリプションとワークスペースが表示されています。

  4. [保存] を選択します。

    重要

    Log Analytics ワークスペースへの接続が利用可能になるまでに最大 1 時間かかる場合があります。 1 時間待ってから、次のセクションの手順に進んでください。

クエリ ログ

  1. スコアリング要求をエンドポイントに送信して、ログにエントリを作成します。

  2. Azure ポータルにアクセスします。 ログを開くには、次のいずれかのオプションを使用します。

    • オンライン エンドポイントのプロパティ ページに移動します。 [監視][ログ] を選択します。
    • Log Analytics ワークスペースに移動します。 左側の [ログ] を選びます。
  3. 既定で開く [クエリ ハブ] ウィンドウを閉じます。

  4. [その他] で、[AmlOnlineEndpointConsoleLog] をダブルクリックします。 [AmlOnlineEndpointConsoleLog] が表示されない場合は、検索フィールドにこの文字列を入力します。

    Azure portal のエンドポイントの [ログ] ページのスクリーンショット。検索ボックスと結果で AmlOnlineEndpointConsoleLog が強調表示されています。

  5. [実行] を選択します。

    Azure portal のエンドポイントの [ログ] ページのスクリーンショット。[実行] が強調表示されており、AmlOnlineEndpointConsoleLog に対するクエリの結果が表示されています。

クエリの例

クエリの例を使用できます。 クエリを表示するには、次の手順を実行します。

  1. [ログ] ページで、[クエリ] を選択します。

  2. 検索ボックスに、[オンライン エンドポイント] と入力します。

    Azure portal の [ログ] ページの [クエリ] タブのスクリーンショット。2 つのクエリの例が表示されており、[クエリ] タブと検索ボックスが強調表示されています。

ログ列の詳細

次の表は、各ログに格納されているデータに関する詳細情報を示しています。

AMLオンラインエンドポイントトラフィックログ

プロパティ 説明
メソッド クライアントが要求するメソッド。
経路 クライアントが要求するパス。
購読ID オンライン エンドポイントの機械学習サブスクリプション ID。
AzureMLWorkspaceId オンライン エンドポイントの機械学習ワークスペース ID。
AzureMLWorkspaceName オンライン エンドポイントの機械学習ワークスペース名。
エンドポイント名 オンライン エンドポイントの名前。
デプロイメント名 オンライン デプロイの名前。
プロトコル 要求のプロトコル。
応答コード クライアントに返された最後の応答コード。
ResponseCodeReason クライアントに返された最後の応答コードの理由。
モデルステータスコード モデルからの応答の状態コード。
ModelStatusReason モデルからの応答の状態の理由。
リクエストペイロードサイズ クライアントから受信した合計バイト数。
応答ペイロードサイズ クライアントに返された合計バイト数。
ユーザーエージェント (UserAgent) 要求のユーザー エージェント ヘッダー。コメントを含みますが、最大 70 文字で切り捨てられます。
XRequestId Azure Machine Learning が内部トレース用に生成する要求 ID。
XMSクライアントリクエストID クライアントが生成する追跡 ID。
TotalDurationMs 要求の開始時刻から最後の応答バイトがクライアントに送り返されるまでの継続時間 (ミリ秒単位)。 クライアントが切断された場合は、開始時刻からクライアントの切断時刻までの継続時間を取得します。
RequestDurationMs 要求の開始時刻から要求の最後のバイトをクライアントから受信するまでの継続時間 (ミリ秒単位)。
ResponseDurationMs(応答時間ミリ秒) 要求の開始時刻から最初の応答バイトをモデルから読み取るまでの継続時間 (ミリ秒単位)。
RequestThrottlingDelayMs ネットワーク調整による要求データ転送の遅延 (ミリ秒単位)。
ResponseThrottlingDelayMs ネットワーク調整による応答データ転送の遅延 (ミリ秒単位)。

Amlオンラインエンドポイントコンソールログ

プロパティ 説明
タイムジェネレイテッド ログが生成された時刻の UTC タイム スタンプ
オペレーションネーム ログ レコードに関連付けられた操作
インスタンスID ログ レコードを生成するインスタンスの ID
デプロイメント名 ログ レコードに関連付けられたデプロイの名前
コンテナ名 ログが生成されるコンテナーの名前
メッセージ ログのコンテンツ

AmlOnlineEndpointEventLog (オンラインエンドポイントイベントログ)

プロパティ 説明
タイムジェネレイテッド ログが生成された時刻の UTC タイム スタンプ
オペレーションネーム ログ レコードに関連付けられた操作
インスタンスID ログ レコードを生成するインスタンスの ID
デプロイメント名 ログ レコードに関連付けられたデプロイの名前
名前 イベントの名前
メッセージ イベントのコンテンツ

Application Insights を使用する

キュレーションされた環境には、Application Insights との統合が含まれます。 この統合により、組み込みのメトリックとログが Application Insights に送信されます。 その結果、Application Insights の組み込み機能を使用して、さらに分析を行うことができます。 これらの機能の例としては、ライブ メトリック、トランザクション検索、エラー ビュー、パフォーマンス ビューなどがあります。

詳細については、「Application Insights の概要」をご覧ください。

スタジオでオンライン デプロイを作成するときに、Application Insights との統合を有効にすることができます。 [デプロイ] ページの [Application Insights 診断][有効] を選択します。

ユーザーがオンライン エンドポイントを作成したときのスタジオの [デプロイ] ページのスクリーンショット。Application Insights の診断設定が強調表示されています。

Application Insights を有効にすると、マネージド オンライン エンドポイントの高レベルのアクティビティ モニター グラフを表示できます。 スタジオで、エンドポイントのページに移動し、[監視] タブを選択します。

スタジオのエンドポイント ページの [監視] タブのスクリーンショット。[監視] タブが強調表示されています。グラフには、エンドポイントに対する 1 分あたりの要求数が表示されています。