モニタリングを設定する

Agent Runtime は、デプロイされたエージェントの運用指標を自動的に収集して処理します。これらの指標を使用すると、手動で構成しなくてもエージェントのパフォーマンスと健全性を把握できます。

このドキュメントでは、 組み込み指標の表示、カスタム指標の作成、 Cloud de Confiance コンソールでのアラートの設定により、Agent Runtime でエージェントをモニタリングする方法について説明します。高度なモニタリングでは、PromQL または Cloud Monitoring API を使用して指標をクエリすることもできます。

概要

Cloud Monitoring を使用すると、 追加の設定や構成なしで Agent Runtime を使用できます。組み込みエージェントの指標は 自動的に収集され、Cloud Monitoring のページに Cloud de Confiance コンソールに表示されます。

サポートされている組み込み指標

次のエージェント指標がサポートされており、Agent Runtime のモニタリング対象リソース aiplatform.googleapis.com/ReasoningEngine に関連付けられています。

  • リクエスト数
  • リクエストのレイテンシ
  • コンテナの CPU 割り当て時間
  • コンテナのメモリ割り当て時間

指標タイプ、単位、ラベル、レイテンシ、 サンプリング期間の詳細については、AI Platform の指標の詳細なリスト をご覧ください。

ADK テレメトリー指標

バージョン >= 2.6.0 の Agent Development Kit(ADK)ベースのエージェントの場合、GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY を使用すると、OpenTelemetry の 生成 AI セマンティック規則に沿って、追加の組み込み指標が有効になります。

これらの指標は、Cloud Monitoringで、プロジェクトを設定する Cloud de Confiance プロジェクトのユーザー定義の指標としてエクスポートされます。また、この環境変数を使用すると、トレースとログも有効になります(エージェントのトレースを書き込むをご覧ください)。

エージェントの指標を表示する

エージェントの組み込み指標は、 Cloud de Confiance コンソールの Metrics Explorer で確認できます。

  1. Metrics Explorer で指標を表示する権限を取得するには、プロジェクトに対するモニタリング閲覧者ロール(roles/monitoring.viewer)を付与するよう管理者に依頼してください。

  2. Cloud de Confiance コンソールの [Metrics Explorer] に移動します。

    Metrics Explorer に移動

  3. Cloud de Confiance by S3NS プロジェクトを選択します。

  4. [指標を選択] をクリックして検索バーを開きます。

  5. 検索バーに「Gemini Enterprise Agent Platform Reasoning Engine 」と入力し、[Gemini Enterprise Agent Platform Reasoning Engine] をクリックします。

  6. 指標カテゴリで [Reasoning_engine] をクリックし、リクエスト数 などの指標をクリックします。

  7. 必要に応じて、追加のラベルフィルタと集計要素を設定し、時間範囲を調整します。

デフォルトでは、リクエスト数 指標の Metrics Explorer のグラフは、データポイントをデフォルトの時間間隔で調整し、データポイントをリクエスト/秒(レート指標)としてプロットします。

エージェント開発キットベースのエージェントの場合は、 Agent Runtime ダッシュボードを使用して、コンソールでエージェントの指標を表示することもできます。 Cloud de Confiance

エージェントの指標をクエリする

Prometheus Query Language(PromQL)または Cloud Monitoring v3 API を使用して指標をクエリすることもできます。PromQL には、指標のフィルタリング、集計、変換に多くのオプションが用意されています。一方、Cloud Monitoring API を使用すると、すべての未加工のデータポイントをプログラムで一覧取得し、クエリを実行できます。

PromQL を使用して指標をクエリする

PromQL を使用すると、カスタム時間間隔でデータポイントを調整して集計し、変換されたデータポイントをリクエスト/秒ではなく、リクエストの絶対数としてプロットできます。次の例では、Agent Engine インスタンス ID(RESOURCE_ID)とレスポンス コード(RESPONSE_CODE)でデータをフィルタしています。

sum_over_time(
  increase(
      aiplatform_googleapis_com:reasoning_engine_request_count{
          monitored_resource='aiplatform.googleapis.com/ReasoningEngine',
          reasoning_engine_id='RESOURCE_ID',
          response_code='RESPONSE_CODE'
      }
      [10m]
  )
  [10m:10m]
)

特定のエラー レスポンス コード(500 など)でラベル付けされたリクエストの数とリクエストの合計数の比率(失敗したリクエストの割合)を計算することで、エラー率をクエリできます。

sum_over_time(
  sum(
    rate(
      aiplatform_googleapis_com:reasoning_engine_request_count{
        monitored_resource='aiplatform.googleapis.com/ReasoningEngine',
        reasoning_engine_id='RESOURCE_ID',
        response_code='500'
      }
      [10m]
    )
  )
  [10m:10m]
)
/
sum_over_time(
  sum(
    rate(
      aiplatform_googleapis_com:reasoning_engine_request_count{
        monitored_resource='aiplatform.googleapis.com/ReasoningEngine',
        reasoning_engine_id='RESOURCE_ID',
      }
      [10m]
    )
  )
  [10m:10m]
)

比率指標のベスト プラクティスと制限事項については、指標の比率についてをご覧ください。エラー率指標のアラートを設定する方法の例については、JSON のサンプル ポリシーをご覧ください。

Cloud Monitoring API を使用して指標をクエリする

Cloud Monitoring API を使用すると、次のことができます。

  • Agent Runtime モニタリング対象リソースの定義を取得する

  • 使用可能なエージェント指標の定義を一覧取得する

  • request_count の時系列データをクエリする

すべてのエージェント指標は、Agent Platform モニタリング対象リソース aiplatform.googleapis.com/ReasoningEngineに関連付けられます。

これらの API は、 API Explorer、言語固有のクライアント ライブラリ、コマンドラインから呼び出すことができます。API Explorer とクライアント ライブラリを使用して指標を読み取る方法については、ドキュメントをご覧ください。次の例は、コマンドラインでの使用方法(特に curl ツール)を示しています。

Agent Platform のモニタリング対象リソース定義を取得する

次のコマンドは、projects.monitoredResourceDescriptors を使用してモニタリング対象リソースの定義を取得します。また、フィルタリングに使用できるすべてのラベルも取得します。

gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/monitoredResourceDescriptors/aiplatform.googleapis.com/ReasoningEngine

ラベルには、resource_container、location、reasoning_engine_id を含める必要があります。

使用可能なエージェント指標の定義を一覧取得する

次のコマンドは、projects.metricDescriptors を使用して、Agent Platform のすべての指標とラベルフィルタを取得します。

gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/metricDescriptors?filter='metric.type=starts_with("aiplatform.googleapis.com/reasoning_engine")'

結果には、次の指標の定義と、その特定のラベルが含まれます。

  • aiplatform.googleapis.com/reasoning_engine/request_count
  • aiplatform.googleapis.com/reasoning_engine/request_latencies
  • aiplatform.googleapis.com/reasoning_engine/cpu/allocation_time
  • aiplatform.googleapis.com/reasoning_engine/memory/allocation_time

request_count の時系列データをクエリする

projects.timeSeries.list を interval、filter、aggregation などのパラメータとともに使用して、時系列データをクエリできます。

次の例は、特定の期間における特定のエージェント インスタンスの request_count 指標の未加工データポイントをクエリする方法を示しています。

gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter='metric.type="aiplatform.googleapis.com/reasoning_engine/request_count"%20AND%20resource.labels.reasoning_engine_id="RESOURCE_ID"&interval.endTime=2025-03-26T11:00:0.0-08:00&interval.startTime=2025-03-26T10:00:0.0-08:00'

次のように置き換えます。

  • PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。
  • RESOURCE_ID: Agent Platform インスタンス ID。これは必須ではありません。同じプロジェクト内の複数の Agent Platform インスタンスに対してクエリを実行できます。
  • interval.startTime と interval.endTime: 時間間隔の開始(包括的)と終了(排他的)。RFC 3339 形式。たとえば、協定世界時(UTC)の場合は "2025-03-26T11:22:33Z"、太平洋標準時(PST)の場合は "2025-03-26T11:22:33-08:00" です。完全な定義とその他の例については、RFC 3339 をご覧ください。

次のようなレスポンスが返されます。

{
  "timeSeries": [
    {
      "metric": {
        "labels": {
          "response_code": "200",
          "response_code_class": "2xx"
        },
        "type": "aiplatform.googleapis.com/reasoning_engine/request_count"
      },
      "resource": {
        "type": "aiplatform.googleapis.com/ReasoningEngine",
        "labels": {
          "reasoning_engine_id": "RESOURCE_ID",
          "location": "LOCATION",
          "project_id": "PROJECT_ID"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
          "interval": {
            "startTime": "2025-03-26T18:55:27.001Z",
            "endTime": "2025-03-26T18:56:27Z"
          },
          "value": {
            "int64Value": "25"
          }
        },
        {
          "interval": {
            "startTime": "2025-03-26T18:54:27.001Z",
            "endTime": "2025-03-26T18:55:27Z"
          },
          "value": {
            "int64Value": "36"
          }
        }
        // ... more data points ...
      ]
    }
    // ... potentially more time series with other response codes ...
  ],
  "unit": "1"
}

レスポンスの形式について詳しくは、projects.timeSeries.list をご覧ください。

エージェントのカスタム指標を作成する

組み込みのエージェント指標が特定のユースケースに対応していない場合は、カスタム指標を定義できます。カスタム指標は、次の方法で作成できます。

  • ログベースの指標: 大量のログエントリの傾向とパターンをモニタリングします。

  • ユーザー定義指標: アプリケーション固有のデータやクライアントサイドのシステムデータの取得など、 Cloud de Confiance by S3NSで定義されていない指標。

ログベースの指標

次の手順では、複数のエージェントが複数のツールを呼び出すワークフローの例で、ログベースの指標(tool_calling_count)を作成して使用し、ツールの呼び出し回数をカウントする方法を示します。

  1. ツールが呼び出されるたびにログエントリを書き込むように指定します。例: "tool-\<tool-id\> invoked by agent-\<agent-id\>"

  2. Cloud de Confiance コンソールで新しいカウンタタイプのログベースの指標を作成します。

    1. Cloud de Confiance コンソールの [ログベースの指標] ページに移動します。

      [ログベースの指標] に移動

    2. [ユーザー定義の指標] セクションで、[指標を作成] をクリックします。[ログベースの指標の作成] ペインが表示されます。

    3. [指標タイプ] で [カウンタ] を選択します。

    4. [詳細] セクションで、ログベースの指標の名前を入力します。例: tool_calling_count必要に応じて、説明と単位を入力します。

    5. [フィルタの選択] セクションで、次の操作を行います。

      1. [プロジェクトまたはログバケットを選択] プルダウン リストで、[プロジェクトのログ] を選択します。

      2. [フィルタの作成] フィールドに、ロギングクエリ言語を使用してログフィルタを入力します。例:

        resource.type="aiplatform.googleapis.com/ReasoningEngine"
        resource.labels.reasoning_engine_id="RESOURCE_ID"
        textPayload =~ "tool-\d+ invoked by agent-\d+" -- assuming both tool and agent IDs are numeric
        
    6. [ラベル] セクションで、[ラベルを追加] ボタンをクリックして、2 つの新しいラベルを追加します。

      1. 最初のラベルに次の操作を行います。

        1. [ラベル名] フィールドに「tool」と入力します。

        2. [フィールド名] フィールドに「textPayload」と入力します。

        3. [正規表現] フィールドに「(tool-\d+) invoked by agent-\d+」と入力します。

      2. 2 番目のラベルに次の操作を行います。

        1. [ラベル名] フィールドに「agent」と入力します。

        2. [フィールド名] フィールドに「textPayload」と入力します。

        3. [正規表現] フィールドに「tool-\d+ invoked by (agent-\d+)」と入力します。

      1. [完了] をクリックします。
    7. [指標を作成] をクリックします。

  3. tool_calling_count 指標と関連するログを表示するには、 Cloud de Confiance コンソールで次の操作を行います。

    1. Cloud de Confiance コンソールの [Metrics Explorer] ページに移動します。

      Metrics Explorer に移動

    2. [指標を選択] をクリックして検索バーを開きます。

    3. 検索バーに「Gemini Enterprise Agent Platform Reasoning Engine 」と入力し、[Gemini Enterprise Agent Platform Reasoning Engine] をクリックします。

    4. 指標カテゴリで [ログベースの指標] をクリックし、[Logging/user/tool_calling_count] をクリックします。必要に応じて期間を調整します。

    5. (省略可)ラベル tool と agent でフィルタします。

      • すべてのエージェントの特定のツールの呼び出し回数の合計を取得するには、フィルタラベル tool にそのツールの ID を設定します。

      • すべてのツールについて特定のエージェントの呼び出し回数の合計を取得するには、フィルタラベル agent にそのエージェントの ID を設定します。

      必要に応じて、[Sum By] を tool または agent に設定して、さまざまなツールやエージェント別に合計数を取得します。

エージェント ログの書き込み方法については、エージェントのロギングをご覧ください。ログベースの指標の詳細については、ログベースの指標の概要をご覧ください。

ユーザー定義の指標

次の手順では、複数のエージェントが複数のモデルを呼び出すワークフローの例で、ユーザー定義の指標(token_count)を作成して使用する方法を示します。この例では、使用されたトークンの合計数を計算します(呼び出しエージェントとターゲット モデルごとに、アプリケーションの起動以降のトークン数をトラッキングしていることを前提としています)。

  1. 次のパラメータを指定して projects.metricDescriptors.create を呼び出し、カスタム指標タイプを定義します。

    • name: URL 文字列(projects/PROJECT_ID など)

    • Request body: MetricDescriptor オブジェクト:

      {
        "name": "token_count",
        "description": "Token Consumed by models.",
        "displayName": "Token Count",
        "type": "custom.googleapis.com/token_count",
        "metricKind": "CUMULATIVE",
        "valueType": "INT64",
        "unit": "1",
        "labels": [
          {
            "key": "model",
            "valueType": "STRING",
            "description": "Model."
          },
          {
            "key": "agent",
            "valueType": "STRING",
            "description": "Agent."
          }
        ],
        "monitoredResourceTypes": [
          "generic_node"
        ]
      }
      

      新しい指標 token_count が種類 Cumulative で作成されます。これは、アプリケーション起動以降のトークンの合計数を表します。Cumulative 指標の詳細については、指標の種類とタイプをご覧ください。ラベル model と agent は、ターゲットの大規模言語モデル(LLM)と呼び出しエージェントの名前を表します。

    1. token_count 指標は、Metrics Explorer で確認できます。

      1. Cloud de Confiance コンソールの [Metrics Explorer] ページに移動します。

      Metrics Explorer に移動

      1. [指標を選択] をクリックして検索バーを開きます。

      2. 検索バーに「汎用ノード」と入力し、[カスタム指標] をクリックします。

      3. [Token Count] をクリックします。

  2. 次のパラメータを指定して projects.timeSeries.create を呼び出し、新しい指標にデータポイントを書き込みます。

    • name: URL 文字列(projects/PROJECT_ID など)

    • Request body: TimeSeries オブジェクトのリスト:

      {
        "timeSeries": [
          {
            "metric": {
              "type": "custom.googleapis.com/token_count",
              "labels": {
                "model": "model-1",
                "agent": "agent-1"
              }
            },
            "resource": {
              "type": "generic_node",
              "labels": {
                "project_id": "PROJECT_ID",
                "node_id": "RESOURCE_ID",
                "namespace": "",
                "location": "us-central1"
              }
            },
            "points": [
              {
                "interval": {
                  "startTime": "2025-03-26T10:00:00-08:00",
                  "endTime": "2025-03-26T10:01:00-08:00"
                },
                "value": {
                  "int64Value": 15
                }
              }
            ]
          },
          {
            "metric": {
              "type": "custom.googleapis.com/token_count",
              "labels": {
                "model": "model-1",
                "agent": "agent-2"
              }
            },
            "resource": {
              "type": "generic_node",
              "labels": {
                "project_id": "PROJECT_ID",
                "node_id": "RESOURCE_ID",
                "namespace": "",
                "location": "us-central1"
              }
            },
            "points": [
              {
                "interval": {
                  "startTime": "2025-03-26T10:00:00-08:00",
                  "endTime": "2025-03-26T10:01:00-08:00"
                },
                "value": {
                  "int64Value": 20
                }
              }
            ]
          }
          // ... more time series ...
        ]
      }
      
  3. Cloud Monitoring API を介してデータポイントがアップロードされると、 Cloud de Confiance コンソールに新しい指標 token_count を表示できます。

    1. Cloud de Confiance コンソールの [Metrics Explorer] ページに移動します。

      Metrics Explorer に移動

    2. [指標を選択] をクリックして検索バーを開きます。

    3. 検索バーに「汎用ノード」と入力し、[カスタム指標] をクリックします。

    4. [Token Count] をクリックします。 必要に応じて期間を調整し、model または agent のラベル値を構成します。

エージェントのアラートを作成する

指標はアラートと組み合わせて使用できます。詳細については、アラートの概要をご覧ください。

次の例は、request_latencies 指標のしきい値アラートを作成して、指定された期間にレイテンシが事前定義の値を超えた場合に通知を受け取る方法を示しています。

  1. Cloud de Confiance コンソールの [アラート] ページに移動します。

    アラートに移動

  2. [ポリシーを作成] をクリックします。[アラート ポリシーを作成] ページが開きます。

    1. [ポリシー構成モード] で [ビルダー] を選択します。

    2. [指標を選択] プルダウン メニューで、Agent Platform Reasoning Engine -> reasoning_engine -> Request Latency の順に選択します。

    3. [フィルタを追加] セクションで、必要に応じてフィルタ(reasoning_engine_id、response_code など)を構成します。

    4. [データの変換] セクションで、[ローリング ウィンドウ] と [ローリング ウィンドウ関数] を 5min や 99th percentile などの値に切り替えます(5 分間の調整期間におけるリクエスト レイテンシの 99 パーセンタイルをモニタリングします)。

    5. [次へ] をクリックします。

  3. [Configure alert trigger] セクションで、次の操作を行います。

    1. [Condition Types] で [しきい値] を選択します。

    2. [任意の時系列の違反] などのアラート トリガーを選択します。

    3. [しきい値より上] などのしきい値の位置を選択します。

    4. しきい値(5000ms など)を入力します。

    5. [次へ] をクリックします。

  4. [Configure notifications and finalize alert] セクションで、次の操作を行います。

    1. 1 つ以上の通知チャンネルを選択します。詳細については、通知チャンネルを管理するをご覧ください。

    2. (省略可)通知の件名、インシデントの自動クローズ期間、アプリケーション ラベル、ポリシーラベル、重大度レベル、追加のドキュメントを構成します。

    3. [Name the alert policy] セクションで、ポリシー名を設定します(latency-99p-alert など)。

    4. [ポリシーを作成] をクリックします。

インシデントが発生した場合は、指標ベースのアラート ポリシーのインシデントで、インシデントの確認と調査、アラートのミュート方法をご確認ください。

アラートの例については、JSON のサンプル ポリシーをご覧ください。

エージェントの指標をモニタリングする

Agent Runtime の概要ダッシュボードを使用すると、エージェントの運用の健全性とパフォーマンスをモニタリングできます。

デフォルトのダッシュボードを表示する

  1. Cloud de Confiance コンソールで [ダッシュボード] ページに移動します。

    [ダッシュボード] に移動する

  2. Cloud de Confiance by S3NS プロジェクトを選択します。

  3. [マイ ダッシュボード] ペインで、フィルタ Name:Agent Runtime Overview を追加します。

  4. [Agent Runtime Overview] をクリックして、デフォルトのエージェント ダッシュボードを表示します。

デフォルトのダッシュボードをカスタマイズする

デフォルトのダッシュボードには、エージェントの組み込み指標のみが表示されます。独自のカスタム指標をダッシュボードに追加するには、次の手順でデフォルトのダッシュボードをコピーしてカスタマイズします。

  1. デフォルトのダッシュボードを開きます。

  2. [ダッシュボードをコピー] をクリックします。[ダッシュボードのコピー] ダイアログで、[コピー] をクリックします。ダッシュボードのコピーが開きます。ダッシュボードのコピーは、[カスタム] カテゴリの [マイ ダッシュボード] ペインでも確認できます。

  3. ダッシュボードのコピーに、次の手順で指標を追加します。

    1. [ウィジェットを追加] をクリックします。[ウィジェットを追加] サイドパネルが表示されます。

    2. [データ] で [指標] を選択します。[ウィジェットを構成する] サイドパネルが表示されます。

    3. [指標を選択] をクリックして検索バーを開きます。

    4. ログベースの指標を使用してカスタム指標が作成されている場合:

      1. 検索バーに「Gemini Enterprise Agent Platform Reasoning Engine 」と入力し、[Gemini Enterprise Agent Platform Reasoning Engine] をクリックします。

      2. 指標カテゴリで [ログベースの指標] をクリックし、[Logging/user/tool_calling_count] などの指標をクリックします。

      3. [適用] をクリックします。

    5. ユーザー定義の指標を使用してカスタム指標が作成されている場合:

      1. 検索バーに「汎用ノード」と入力し、[汎用ノード] をクリックします。

      2. 指標カテゴリで [カスタム指標] をクリックし、[Token Count] などの指標をクリックします。

      3. [適用] をクリックします。

    6. カスタム指標を表示する新しいグラフがダッシュボードに表示されます。

  4. ダッシュボードのレイアウトは、次のようにさらに調整できます。

    1. ウィジェットのタイトルを長押しして、同じダッシュボード上の別の場所にドラッグし、ウィジェットを移動します。

    2. ウィジェットの右下隅を長押しして、サイズを調整します。

Prometheus Query Language(PromQL)を使用して指標グラフを追加する方法と、指標を一覧表示する方法については、カスタム ダッシュボードにグラフと表を追加するをご覧ください。

カスタム アラートを構成している場合は、ダッシュボードにアラート ポリシーとアラートを表示するを参照して、そのようなアラートをダッシュボードに追加します。