Logging を使用して Gemini Code Assist 指標を生成する

このドキュメントでは、Gemini Code Assist 指標を生成する方法について説明します。たとえば、Cloud Logging、Google Cloud CLI、Cloud Monitoring、BigQuery など、さまざまな Google Cloud プロダクトの 1 日あたりのアクティブな使用状況やコード推奨事項の受け入れ状況を報告する指標を生成できます。

始める前に

ユニーク ユーザー数を一覧表示する

次の手順では、gcloud CLI を使用して、過去 28 日間の Gemini Code Assist のユニーク ユーザー数を一覧表示する方法について説明します。

  1. シェル環境で、インストールされている gcloud CLI のすべてのコンポーネントが最新バージョンに更新されていることを確認します。

    gcloud components update
    
  2. Gemini Code Assist のユーザーと使用状況のログエントリを確認します。

    gcloud logging read 'resource.type=cloudaicompanion.googleapis.com/Instance labels.product=~"code_assist"' \
    --freshness 28d \
    --project PROJECT_ID \
    --format "csv(timestamp.date('%Y-%m-%d'),labels.user_id)"
    

    PROJECT_ID は、 Google Cloud プロジェクト ID に置き換えます。

    Unix コマンド uniq を使用すると、ユーザーを一意に識別できます。

    出力は次のようになります。

    2024-10-30,user1@company.com
    2024-10-29,user2@company.com
    2024-10-29,user2@company.com
    2024-10-29,user2@company.com
    2024-10-29,user1@company.com
    2024-10-28,user1@company.com
    

1 日あたりの使用量を表示するグラフを作成する

次の手順では、Monitoring を使用して、1 日あたりのアクティブな Gemini Code Assist ユーザーの合計数と 1 日あたりのリクエスト数を示す 1 日あたりの使用状況グラフを作成する方法について説明します。

  1. Gemini Code Assist ユーザー数を記録するログデータから Monitoring 指標を作成します。

    1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

      [ログ エクスプローラ] に移動

      検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

    2. クエリペインに次のクエリを入力し、[クエリを実行] をクリックします。

       resource.type="cloudaicompanion.googleapis.com/Instance" AND labels.product="code_assist" AND jsonPayload.@type="type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.ResponseLog"
      
    3. ツールバーで [アクション] をクリックし、[指標を作成] を選択します。

      [ログベースの指標を作成] ダイアログが表示されます。

    4. 次の指標の詳細を構成します。

      • [指標タイプ] が [カウンタ] に設定されていることを確認します。
      • 指標に code_assist_example という名前を付けます。
      • [フィルタの選択] が、ログが保存されている場所([プロジェクト] または [バケット])を参照するように設定されていることを確認します。

        ログデータから Monitoring 指標を生成する方法については、ログベースの指標の概要をご覧ください。

    5. [指標を作成] をクリックします。

      指標が作成されたことを示す成功バナーが表示されます。

    6. 成功のバナーで、[Metrics Explorer で表示] をクリックします。

      Metrics Explorer が開き、事前構成されたグラフが表示されます。

  2. グラフをダッシュボードに保存します。

    1. ツールバーで [グラフを保存] をクリックします。
    2. 省略可: [グラフのタイトル] を更新します。
    3. [ダッシュボード] メニューを使用して、既存のカスタム ダッシュボードを選択するか、新しいダッシュボードを作成します。
    4. [グラフを保存] をクリックします。

BigQuery を使用して使用状況を分析する

次の手順では、BigQuery を使用してログデータを分析する方法を示します。

BigQuery でログデータを分析するには、次の 2 つの方法があります。

  • ログシンクを作成し、ログデータを BigQuery データセットにエクスポートします。
  • ログデータを保存するログバケットをアップグレードして Log Analytics を使用し、リンクされた BigQuery データセットを作成します。

どちらのアプローチでも、SQL を使用してログデータのクエリと分析を行い、クエリの結果をグラフ化できます。ログ分析を使用している場合は、グラフをカスタム ダッシュボードに保存できます。ただし、料金には違いがあります。詳細については、Log Analytics の料金BigQuery の料金をご覧ください。

このセクションでは、選択したログエントリを BigQuery にエクスポートするログシンクを作成する方法と、サンプルクエリの一覧について説明します。Log Analytics の詳細については、Log Analytics でログのクエリと分析を行うリンクされた BigQuery データセットに対してクエリを実行するをご覧ください。

ログシンクを作成する

  1. Google Cloud コンソールで、[ログルーター] ページに移動します。

    ログルーターに移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

  2. ルーティングするログエントリが送信される Google Cloud プロジェクトを選択します。
  3. [シンクを作成] を選択します。
  4. [シンクの詳細] パネルで、次の詳細を入力します。

    • [シンク名] に、シンクの識別子を指定します。シンクを作成した後は、シンクの名前は変更できませんが、シンクを削除して新しいシンクを作成することはできます。

    • [シンクの説明] で、シンクの目的またはユースケースについて説明します。

  5. [シンクのエクスポート先] パネルで、次の詳細を構成します。

    • [シンクサービスの選択] で [BigQuery データセット] を選択します。
    • [BigQuery データセットを選択] で、新しい BigQuery データセットを作成し、名前を code_assist_bq にします。
  6. [シンクに含めるログの選択] パネルを開き、[包含フィルタの作成] フィールドに次のように入力します。

    resource.type="cloudaicompanion.googleapis.com/Instance" AND labels.product="code_assist"
    
  7. 省略可: 正しいフィルタを入力したことを確認するには、[ログをプレビュー] を選択します。フィルタが事前に入力された状態で、ログ エクスプローラが新しいタブで開きます。

  8. [シンクの作成] をクリックします。

ログシンクにデータセットへのログエントリの書き込みを許可する

BigQuery データセットに対するオーナー権限が付与されている場合、Cloud Logging はログシンクにログデータの書き込みに必要な権限を付与します。

所有者権限がない場合や、データセットにエントリが表示されない場合は、ログシンクに必要な権限がない可能性があります。このエラーを解決するには、リンク先の権限を設定するの手順に沿って操作します。

クエリ

次の BigQuery クエリのサンプルを使用すると、生成された毎日のアクティブな使用状況と候補に関するユーザーレベルと集計レベルのデータが生成されます。

次のサンプルクエリを使用する前に、新しく作成されたシンクの完全修飾パスを取得する必要があります。パスを取得する手順は次のとおりです。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    BigQuery に移動

  2. リソースリストで、code_assist_bq という名前のデータセットを見つけます。このデータはシンクの宛先です。

  3. code_assist_bq_dataset の下にある回答テーブルを選択し、 アイコンをクリックして [ID をコピー] をクリックし、データセット ID を生成します。次のセクションで GENERATED_BIGQUERY_TABLE 変数として使用できるように、この値をメモしておきます。

日ごとの個々のユーザーを一覧表示する

SELECT DISTINCT labels.user_id as user, DATE(timestamp) as use_date
FROM GENERATED_BIGQUERY_TABLE
ORDER BY use_date

GENERATED_BIGQUERY_TABLE は、シンクの作成に関する前述の手順でメモした BigQuery レスポンス テーブルの完全修飾パスに置き換えます。

1 日あたりの合計ユーザー数を一覧表示する

SELECT COUNT(DISTINCT labels.user_id) as total_users, DATE(timestamp) as use_date
FROM GENERATED_BIGQUERY_TABLE
GROUP BY use_date
ORDER BY use_date

ユーザーごとの 1 日あたりの個々のリクエストを一覧表示する

SELECT COUNT(*), DATE(timestamp) as use_date, labels.user_id as user
FROM GENERATED_BIGQUERY_TABLE
GROUP BY use_date, user
ORDER BY use_date

1 日あたりの合計リクエスト数を日付別に表示する

SELECT COUNT(*), DATE(timestamp) as use_date
FROM GENERATED_BIGQUERY_TABLE
GROUP BY use_date
ORDER BY use_date

次のステップ