InfoGrab Docs

GitLab Duo 및 SDLC 트렌드 데이터 조회

요약

GraphQL API를 사용하여 GitLab Duo 데이터를 조회하고 내보냅니다. AiUsageData 엔드포인트는 원시 이벤트 데이터를 제공합니다. GitLab Duo Pro가 있는 이전 버전에서 AiUsageData 엔드포인트는 오류 메시지 없이 null을 반환합니다.

GraphQL API를 사용하여 GitLab Duo 데이터를 조회하고 내보냅니다.

AI 사용 데이터 조회#

히스토리
  • GitLab 17.5에서 code_suggestions_usage_events_in_pg 플래그와 함께 도입. 기본적으로 비활성화됨.
  • GitLab 17.7에서 기능 플래그 move_ai_tracking_to_instrumentation_layer 추가. 기본적으로 비활성화됨.
  • GitLab 17.8에서 move_ai_tracking_to_instrumentation_layer 의존성 제거.
  • GitLab 17.8에서 기능 플래그 code_suggestions_usage_events_in_pg 제거.
  • GitLab 18.7에서 AiUsageData에 대한 GitLab Duo Enterprise 애드온 요구 사항 제거.

AiUsageData 엔드포인트는 원시 이벤트 데이터를 제공합니다. codeSuggestionEvents를 통해 Code Suggestions 특정 이벤트를 노출하고 all을 통해 모든 원시 이벤트 데이터를 노출합니다.

Note

GitLab Duo Pro가 있는 이전 버전에서 AiUsageData 엔드포인트는 오류 메시지 없이 null을 반환합니다.

이 엔드포인트를 사용하여 이벤트를 BI 도구로 가져오거나 모든 GitLab Duo 이벤트에 대한 데이터, 수락률, 사용자별 메트릭을 집계하는 스크립트를 작성할 수 있습니다.

ClickHouse가 설치되지 않은 고객의 경우 데이터는 3개월 동안 유지됩니다. ClickHouse가 구성된 고객의 경우 현재 데이터 보존 정책이 없습니다.

allcodeSuggestionEvents 속성의 최대 날짜 범위는 1개월입니다. 여러 달에 걸친 데이터가 필요한 경우 각 달마다 별도의 쿼리를 실행하세요.

all 속성은 startDate, endDate, events, userIds 및 표준 페이지네이션 값으로 필터링할 수 있습니다.

추적되는 이벤트를 확인하려면 ai_tracking.rb 파일에서 선언된 이벤트를 확인할 수 있습니다.

GitLab Duo Chat 이벤트(request_duo_chat_response)는 extras 필드를 채우지 않습니다. Code Suggestions 이벤트와 달리 Chat 상호 작용에는 언어 또는 제안 메타데이터가 없습니다. Chat 이벤트에 빈 extras 객체가 있는 것은 예상되는 동작입니다.

프로젝트 및 그룹용#

예를 들어 gitlab-org 그룹의 모든 Code Suggestions 이벤트에 대한 사용 데이터를 조회하려면:

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 18.7에서 도입. 이 기능은 실험 단계입니다.

사전 요건:

  • 인스턴스의 관리자여야 합니다.

예를 들어 전체 인스턴스의 모든 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 17.6에서 도입.
  • GitLab 18.7에서 기능별 메트릭 유형 도입.

AiUserMetrics 엔드포인트는 Code Suggestions, GitLab Duo Chat, 코드 리뷰, Agent Platform, 작업 문제 해결, MCP(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는 해당 기능 내의 이벤트 합계만 나타냅니다.
    • Code Suggestions: 60 이벤트 (수락 10 + 표시 50)
    • Chat: 22 이벤트

기능별 메트릭 유형#

AiUserMetrics 엔드포인트는 기능별 중첩 유형을 통해 상세 메트릭을 제공합니다. 각 GitLab Duo 기능에는 해당 기능과 관련된 추적된 모든 이벤트에 대한 이벤트 수 필드를 노출하는 전용 메트릭 유형이 있습니다.

사용 가능한 기능 메트릭 유형:

  • codeSuggestions: Code Suggestions 특정 메트릭
  • chat: GitLab Duo Chat 특정 메트릭
  • codeReview: 코드 리뷰 특정 메트릭
  • agentPlatform: Agent Platform 특정 메트릭 (에이전틱 Chat 세션 포함)
  • troubleshootJob: 작업 문제 해결 특정 메트릭
  • mcp: MCP(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 16.11에서 도입.
  • GitLab 17.6에서 애드온 요구 사항이 GitLab Duo Enterprise에서 GitLab Duo Pro로 변경.
  • GitLab 18.7에서 애드온 요구 사항 제거.

AiMetrics 엔드포인트는 GitLab Duo 및 SDLC 트렌드 대시보드를 지원하며 Code Suggestions 및 GitLab Duo Chat에 대한 다음 사전 집계 메트릭을 제공합니다:

  • codeSuggestionsShown
  • codeSuggestionsAccepted
  • codeSuggestionAcceptanceRate
  • codeSuggestionUsers
  • duoChatUsers

사전 요건:

  • ClickHouse가 구성되어 있어야 합니다.

예를 들어 gitlab-org 그룹의 지정된 기간 동안 Code Suggestions 및 GitLab Duo Chat 사용 데이터를 조회하려면:

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

쿼리는 다음 출력을 반환합니다:

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

AI 메트릭 데이터를 CSV로 내보내기#

GitLab AI Metrics Exporter 도구를 사용하여 AI 메트릭 데이터를 CSV 파일로 내보낼 수 있습니다.

GitLab Duo 및 SDLC 트렌드 데이터 조회

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GraphQL API를 사용하여 GitLab Duo 데이터를 조회하고 내보냅니다. AiUsageData 엔드포인트는 원시 이벤트 데이터를 제공합니다. GitLab Duo Pro가 있는 이전 버전에서 AiUsageData 엔드포인트는 오류 메시지 없이 null을 반환합니다.

GraphQL API를 사용하여 GitLab Duo 데이터를 조회하고 내보냅니다.

AI 사용 데이터 조회#

히스토리
  • GitLab 17.5에서 code_suggestions_usage_events_in_pg 플래그와 함께 도입. 기본적으로 비활성화됨.
  • GitLab 17.7에서 기능 플래그 move_ai_tracking_to_instrumentation_layer 추가. 기본적으로 비활성화됨.
  • GitLab 17.8에서 move_ai_tracking_to_instrumentation_layer 의존성 제거.
  • GitLab 17.8에서 기능 플래그 code_suggestions_usage_events_in_pg 제거.
  • GitLab 18.7에서 AiUsageData에 대한 GitLab Duo Enterprise 애드온 요구 사항 제거.

AiUsageData 엔드포인트는 원시 이벤트 데이터를 제공합니다. codeSuggestionEvents를 통해 Code Suggestions 특정 이벤트를 노출하고 all을 통해 모든 원시 이벤트 데이터를 노출합니다.

Note

GitLab Duo Pro가 있는 이전 버전에서 AiUsageData 엔드포인트는 오류 메시지 없이 null을 반환합니다.

이 엔드포인트를 사용하여 이벤트를 BI 도구로 가져오거나 모든 GitLab Duo 이벤트에 대한 데이터, 수락률, 사용자별 메트릭을 집계하는 스크립트를 작성할 수 있습니다.

ClickHouse가 설치되지 않은 고객의 경우 데이터는 3개월 동안 유지됩니다. ClickHouse가 구성된 고객의 경우 현재 데이터 보존 정책이 없습니다.

allcodeSuggestionEvents 속성의 최대 날짜 범위는 1개월입니다. 여러 달에 걸친 데이터가 필요한 경우 각 달마다 별도의 쿼리를 실행하세요.

all 속성은 startDate, endDate, events, userIds 및 표준 페이지네이션 값으로 필터링할 수 있습니다.

추적되는 이벤트를 확인하려면 ai_tracking.rb 파일에서 선언된 이벤트를 확인할 수 있습니다.

GitLab Duo Chat 이벤트(request_duo_chat_response)는 extras 필드를 채우지 않습니다. Code Suggestions 이벤트와 달리 Chat 상호 작용에는 언어 또는 제안 메타데이터가 없습니다. Chat 이벤트에 빈 extras 객체가 있는 것은 예상되는 동작입니다.

프로젝트 및 그룹용#

예를 들어 gitlab-org 그룹의 모든 Code Suggestions 이벤트에 대한 사용 데이터를 조회하려면:

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 18.7에서 도입. 이 기능은 실험 단계입니다.

사전 요건:

  • 인스턴스의 관리자여야 합니다.

예를 들어 전체 인스턴스의 모든 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 17.6에서 도입.
  • GitLab 18.7에서 기능별 메트릭 유형 도입.

AiUserMetrics 엔드포인트는 Code Suggestions, GitLab Duo Chat, 코드 리뷰, Agent Platform, 작업 문제 해결, MCP(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는 해당 기능 내의 이벤트 합계만 나타냅니다.
    • Code Suggestions: 60 이벤트 (수락 10 + 표시 50)
    • Chat: 22 이벤트

기능별 메트릭 유형#

AiUserMetrics 엔드포인트는 기능별 중첩 유형을 통해 상세 메트릭을 제공합니다. 각 GitLab Duo 기능에는 해당 기능과 관련된 추적된 모든 이벤트에 대한 이벤트 수 필드를 노출하는 전용 메트릭 유형이 있습니다.

사용 가능한 기능 메트릭 유형:

  • codeSuggestions: Code Suggestions 특정 메트릭
  • chat: GitLab Duo Chat 특정 메트릭
  • codeReview: 코드 리뷰 특정 메트릭
  • agentPlatform: Agent Platform 특정 메트릭 (에이전틱 Chat 세션 포함)
  • troubleshootJob: 작업 문제 해결 특정 메트릭
  • mcp: MCP(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 16.11에서 도입.
  • GitLab 17.6에서 애드온 요구 사항이 GitLab Duo Enterprise에서 GitLab Duo Pro로 변경.
  • GitLab 18.7에서 애드온 요구 사항 제거.

AiMetrics 엔드포인트는 GitLab Duo 및 SDLC 트렌드 대시보드를 지원하며 Code Suggestions 및 GitLab Duo Chat에 대한 다음 사전 집계 메트릭을 제공합니다:

  • codeSuggestionsShown
  • codeSuggestionsAccepted
  • codeSuggestionAcceptanceRate
  • codeSuggestionUsers
  • duoChatUsers

사전 요건:

  • ClickHouse가 구성되어 있어야 합니다.

예를 들어 gitlab-org 그룹의 지정된 기간 동안 Code Suggestions 및 GitLab Duo Chat 사용 데이터를 조회하려면:

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

쿼리는 다음 출력을 반환합니다:

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

AI 메트릭 데이터를 CSV로 내보내기#

GitLab AI Metrics Exporter 도구를 사용하여 AI 메트릭 데이터를 CSV 파일로 내보낼 수 있습니다.