正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab DuoとSDLCトレンドデータを取得する

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GraphQL APIを使用して、GitLab Duoデータを取得およびエクスポートします。

AIの利用状況データを取得する

  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

AiUsageDataエンドポイントは、rawイベントデータを提供します。codeSuggestionEventsを介してコード提案に固有のイベントを公開し、allを介してすべてのrawイベントデータを公開します。

このエンドポイントを使用すると、イベントをBIツールにインポートしたり、すべてのGitLab Duoイベントのデータ、承認率、ユーザーごとのメトリクスを集計するスクリプトを作成したりできます。

ClickHouseがインストールされていないお客様の場合、データは3か月間保持されます。ClickHouseが構成されているお客様の場合、現在のところデータ保持ポリシーはありません。

all属性は、startDateendDateeventsuserIds、および標準ページネーションの値でフィルター可能です。

どのイベントが追跡されているかを確認するには、ai_tracking.rbファイルで宣言されているイベントを調べます。

プロジェクトとグループの場合

たとえば、gitlab-orgグループのすべてのコード提案イベントの利用状況データを取得するには、次のようにします:

query {
  group(fullPath: "gitlab-org") {
    aiUsageData {
      codeSuggestionEvents(startDate: "2025-09-26") {
        nodes {
          event
          timestamp
          language
          suggestionSize
          user {
            username
          }
        }
      }
    }
  }
}

このクエリは、次の出力を返します:

{
  "data": {
    "group": {
      "aiUsageData": {
        "codeSuggestionEvents": {
          "nodes": [
            {
              "event": "CODE_SUGGESTION_SHOWN_IN_IDE",
              "timestamp": "2025-09-26T18:17:25Z",
              "language": "python",
              "suggestionSize": 2,
              "user": {
                "username": "jasbourne"
              }
            },
            {
              "event": "CODE_SUGGESTION_REJECTED_IN_IDE",
              "timestamp": "2025-09-26T18:13:45Z",
              "language": "python",
              "suggestionSize": 2,
              "user": {
                "username": "jasbourne"
              }
            },
            {
              "event": "CODE_SUGGESTION_ACCEPTED_IN_IDE",
              "timestamp": "2025-09-26T18:13:44Z",
              "language": "python",
              "suggestionSize": 2,
              "user": {
                "username": "jasbourne"
              }
            }
          ]
        }
      }
    }
  }
}

または、gitlab-orgグループのすべてのGitLab Duoイベントの利用状況データを取得するには、次のようにします:

query {
  group(fullPath: "gitlab-org") {
    aiUsageData {
      all(startDate: "2025-09-26") {
        nodes {
          event
          timestamp
          user {
            username
          }
        }
      }
    }
  }
}

このクエリは、次の出力を返します:

{
  "data": {
    "group": {
      "aiUsageData": {
        "all": {
          "nodes": [
            {
              "event": "FIND_NO_ISSUES_DUO_CODE_REVIEW_AFTER_REVIEW",
              "timestamp": "2025-09-26T18:17:25Z",
              "user": {
                "username": "jasbourne"
              }
            },
            {
              "event": "REQUEST_REVIEW_DUO_CODE_REVIEW_ON_MR_BY_AUTHOR",
              "timestamp": "2025-09-26T18:13:45Z",
              "user": {
                "username": "jasbourne"
              }
            },
            {
              "event": "AGENT_PLATFORM_SESSION_STARTED",
              "timestamp": "2025-09-26T18:13:44Z",
              "user": {
                "username": "jasbourne"
              }
            }
          ]
        }
      }
    }
  }
}

インスタンスの場合

  • 提供形態: GitLab Self-Managed、GitLab Dedicated

前提条件:

  • インスタンスの管理者である。

たとえば、インスタンス全体のすべてのGitLab Duo利用状況イベントを取得するには、次のようにします:

query {
  aiUsageData {
    all(startDate: "2025-09-26", endDate: "2025-09-30") {
      nodes {
        event
        timestamp
        user {
          username
        }
        extras
      }
    }
  }
}

このクエリは、次の出力を返します:

{
  "data": {
    "aiUsageData": {
      "all": {
        "nodes": [
          {
            "event": "CODE_SUGGESTION_SHOWN_IN_IDE",
            "timestamp": "2025-09-26T18:17:25Z",
            "user": {
              "username": "jasbourne"
            },
            "extras": {}
          },
          {
            "event": "AGENT_PLATFORM_SESSION_STARTED",
            "timestamp": "2025-09-26T18:13:44Z",
            "user": {
              "username": "johndoe"
            },
            "extras": {
              "session_id": "abc123"
            }
          }
        ]
      }
    }
  }
}

AIユーザーメトリクスを取得する

  • 提供形態: GitLab.com、GitLab Dedicated

AiUserMetricsエンドポイントは、コード提案、GitLab Duo Chat、コードレビュー、エージェントプラットフォーム(GitLab Duo Agentic Chat)、ジョブトラブルシューティング、およびModel Context Protocol(Model Context Protocol)ツール呼び出しを含む、登録されているすべてのGitLab Duo機能に対して、事前集計されたユーザーごとのメトリクスを提供します。

このエンドポイントを使用すると、GitLab Duoユーザーのエンゲージメントを分析し、さまざまなGitLab Duo機能全体での使用頻度を測定できます。

前提条件:

  • ClickHouseが構成されている必要があります。

イベントの合計数

AiUserMetricsエンドポイントは、次のレベルのイベント数集計を提供します:

  • トップレベルのtotalEventCount: ユーザーのすべてのGitLab Duo機能にわたる、すべてのイベント数の合計を返します。
  • 機能レベルのtotalEventCount: 機能のメトリクスタイプごとに使用可能で、その特定の機能のすべてのイベント数の合計を返します。

これらのフィールドを使用すると、さまざまなレベルの粒度で集計数を取得できます。

たとえば、トップレベルと機能レベルの両方の合計を取得するには、次のようにします:

query {
  group(fullPath:"gitlab-org") {
    aiUserMetrics {
      nodes {
        user {
          username
        }
        totalEventCount
        codeSuggestions {
          totalEventCount
          codeSuggestionAcceptedInIdeEventCount
          codeSuggestionShownInIdeEventCount
        }
        chat {
          totalEventCount
          requestDuoChatResponseEventCount
        }
      }
    }
  }
}

このクエリは、次の出力を返します:

{
  "data": {
    "group": {
      "aiUserMetrics": {
        "nodes": [
          {
            "user": {
              "username": "USER_1"
            },
            "totalEventCount": 82,
            "codeSuggestions": {
              "totalEventCount": 60,
              "codeSuggestionAcceptedInIdeEventCount": 10,
              "codeSuggestionShownInIdeEventCount": 50
            },
            "chat": {
              "totalEventCount": 22,
              "requestDuoChatResponseEventCount": 22
            }
          },
          {
            "user": {
              "username": "USER_2"
            },
            "totalEventCount": 102,
            "codeSuggestions": {
              "totalEventCount": 72,
              "codeSuggestionAcceptedInIdeEventCount": 12,
              "codeSuggestionShownInIdeEventCount": 60
            },
            "chat": {
              "totalEventCount": 30,
              "requestDuoChatResponseEventCount": 30
            }
          }
        ]
      }
    }
  }
}

この例では:

  • トップレベルのtotalEventCount(USER_1の場合は82)は、すべての機能にわたるすべてのイベントの合計です。
  • 各機能のtotalEventCountは、その機能内のイベントの合計のみを表します。
    • コード提案: 60件のイベント(承認10件+表示50)
    • チャット: 22件のイベント

機能フラグに固有のメトリクスタイプ

AiUserMetricsエンドポイントは、機能フラグに固有のネストされたタイプを介して、詳細なメトリクスを提供します。各GitLab Duo機能には、その機能に関連するすべての追跡対象イベントのイベント数フィールドを公開する、独自の専用メトリクスタイプがあります。

使用可能な機能のメトリクスタイプは次のとおりです:

  • codeSuggestions: コード提案固有のメトリクス
  • chat: GitLab Duo Chat固有のメトリクス
  • codeReview: コードレビュー固有のメトリクス
  • agentPlatform: エージェントプラットフォーム固有のメトリクス(Agentic Chatセッションを含む)
  • troubleshootJob: ジョブトラブルシューティング固有のメトリクス
  • mcp: Model Context Protocol(Model Context Protocol)ツール呼び出しメトリクス

機能のメトリクスタイプごとに、以下が含まれます:

  • その機能で追跡されるすべてのイベントの個々のイベント数フィールド
  • その特定の機能のすべてのイベントを合計するtotalEventCountフィールド

使用可能なイベント数フィールドは、システムに登録されているイベントに基づいて動的に生成されます。機能ごとに追跡されるイベントを確認するには、ai_tracking.rbファイルで宣言されているイベントを調べます。

たとえば、複数のGitLab Duo機能にわたる詳細なメトリクスを取得するには、次のようにします:

query {
  group(fullPath:"gitlab-org") {
    aiUserMetrics {
      nodes {
        user {
          username
        }
        codeSuggestions {
          totalEventCount
          codeSuggestionAcceptedInIdeEventCount
          codeSuggestionShownInIdeEventCount
        }
        chat {
          totalEventCount
          requestDuoChatResponseEventCount
        }
        codeReview {
          totalEventCount
          requestReviewDuoCodeReviewOnMrByAuthorEventCount
          findNoIssuesDuoCodeReviewAfterReviewEventCount
        }
        agentPlatform {
          totalEventCount
          agentPlatformSessionStartedEventCount
          agentPlatformSessionFinishedEventCount
        }
      }
    }
  }
}

このクエリは、次の出力を返します:

{
  "data": {
    "group": {
      "aiUserMetrics": {
        "nodes": [
          {
            "user": {
              "username": "USER_1"
            },
            "codeSuggestions": {
              "totalEventCount": 60,
              "codeSuggestionAcceptedInIdeEventCount": 10,
              "codeSuggestionShownInIdeEventCount": 50
            },
            "chat": {
              "totalEventCount": 22,
              "requestDuoChatResponseEventCount": 22
            },
            "codeReview": {
              "totalEventCount": 8,
              "requestReviewDuoCodeReviewOnMrByAuthorEventCount": 5,
              "findNoIssuesDuoCodeReviewAfterReviewEventCount": 3
            },
            "agentPlatform": {
              "totalEventCount": 15,
              "agentPlatformSessionStartedEventCount": 8,
              "agentPlatformSessionFinishedEventCount": 7
            }
          },
          {
            "user": {
              "username": "USER_2"
            },
            "codeSuggestions": {
              "totalEventCount": 72,
              "codeSuggestionAcceptedInIdeEventCount": 12,
              "codeSuggestionShownInIdeEventCount": 60
            },
            "chat": {
              "totalEventCount": 30,
              "requestDuoChatResponseEventCount": 30
            },
            "codeReview": {
              "totalEventCount": 5,
              "requestReviewDuoCodeReviewOnMrByAuthorEventCount": 3,
              "findNoIssuesDuoCodeReviewAfterReviewEventCount": 2
            },
            "agentPlatform": {
              "totalEventCount": 20,
              "agentPlatformSessionStartedEventCount": 12,
              "agentPlatformSessionFinishedEventCount": 8
            }
          }
        ]
      }
    }
  }
}

GitLab DuoおよびSDLCトレンドメトリクスを取得する

  • 提供形態: GitLab.com、GitLab Dedicated

AiMetricsエンドポイントは、GitLab DuoおよびSDLCトレンドダッシュボードを強化し、コード提案とGitLab Duo Chatに対して、事前集計された次のメトリクスを提供します:

  • codeSuggestionsShown
  • codeSuggestionsAccepted
  • codeSuggestionAcceptanceRate
  • codeSuggestionUsers
  • duoChatUsers

前提条件:

  • ClickHouseが構成されている必要があります。

たとえば、gitlab-orgグループの指定された期間のコード提案とGitLab Duo Chatの使用状況データを取得するには、次のようにします:

query {
  group(fullPath: "gitlab-org") {
    aiMetrics(startDate: "2024-12-01", endDate: "2024-12-31") {
      codeSuggestions{
        shownCount
        acceptedCount
        acceptedLinesOfCode
        shownLinesOfCode
      }
      codeContributorsCount
      duoChatContributorsCount
      duoAssignedUsersCount
      duoUsedCount
    }
  }
}

このクエリは、次の出力を返します:

{
  "data": {
    "group": {
      "aiMetrics": {
        "codeSuggestions": {
          "shownCount": 88728,
          "acceptedCount": 7016,
          "acceptedLinesOfCode": 9334,
          "shownLinesOfCode": 124118
        },
        "codeContributorsCount": 719,
        "duoChatContributorsCount": 681,
        "duoAssignedUsersCount": 1910,
        "duoUsedCount": 714
      }
    }
  },
}

AIメトリクスデータをCSVにエクスポートする

GitLab AI Metrics Exporter toolを使用して、AIメトリクスデータをCSVファイルにエクスポートできます。