InfoGrab Docs

GitLab Duo 도입 메트릭 및 분석

요약

이 프로젝트는 다음을 결합하여 엔드투엔드 GitLab Duo 사용 분석을 제공합니다: 다음 프로젝트 CI/CD 변수를 설정하여 실행할 분석 파이프라인을 제어할 수 있습니다: Duo 메트릭이 활성화되면 Duo 파이프라인이 완료된 후 Pages 배포가 자동으로 수행됩니다:

GitLab Duo 도입 메트릭 및 분석#

이 프로젝트는 다음을 결합하여 엔드투엔드 GitLab Duo 사용 분석을 제공합니다:

  • Duo GraphQL 데이터 수집 – GitLab GraphQL API 클라이언트를 기반으로 하는 Duo 수집기 스크립트를 호출하는 범용 Python 오케스트레이터.
  • Duo 사용 메트릭 파이프라인 – GitLab 그룹의 Duo 사용 데이터를 주기적으로 수집하고 집계하는 CI 작업.
  • Duo Analytics 대시보드 – Duo 도입, 사용 강도, 참여 트렌드를 보여주는 GitLab Pages 호스팅 대시보드.

시작하기#

다음 프로젝트 CI/CD 변수를 설정하여 실행할 분석 파이프라인을 제어할 수 있습니다:

변수 Duo 설정 설명
ENABLE_DUO_METRICS "true" Duo AI 메트릭 파이프라인 활성화/비활성화.
ENABLE_PROJECT_METRICS "false" Duo 도입에만 관심이 있는 경우 기존 프로젝트 중심 메트릭 비활성화.
DUO_TOKEN TOKEN VALUE Duo 사용 수집을 위한 read_apiai_features 권한이 있는 개인 액세스 토큰.
GROUP_PATH example_group Duo 메트릭을 수집할 최상위 그룹 또는 하위 그룹 경로.

빠른 시작 단계

  1. 이 저장소를 포크합니다.
  2. 프로젝트 설정 → CI/CD → 변수로 이동합니다.
  3. 환경에 적합한 값으로 위의 변수를 추가합니다.
  4. 원하는 간격으로 예약된 파이프라인을 구성합니다. Duo 사용 수집은 리소스를 많이 사용할 수 있으므로 하루에 한 번 실행을 권장합니다.
  5. 예약된 파이프라인을 수동으로 실행하거나 예약을 기다립니다.
  6. 파이프라인이 완료된 후 배포 → Pages에서 Pages 애플리케이션을 열어 Duo Analytics 대시보드에 액세스합니다.

GitLab Pages 배포 (Duo 메트릭)#

Duo 메트릭이 활성화되면 Duo 파이프라인이 완료된 후 Pages 배포가 자동으로 수행됩니다:

  • Duo 메트릭 파이프라인https://your-username.gitlab.io/project-name/duo-metrics/와 같은 URL에 배포됩니다.
  • 메인 랜딩 페이지https://your-username.gitlab.io/project-name/에서 사용 가능하며, 사용 가능한 대시보드 링크가 있습니다.

랜딩 페이지는 어떤 대시보드가 있는지 자동으로 감지하고 ENABLE_DUO_METRICS="true"인 경우 Duo 관련 링크를 표시합니다.

로컬 개발 및 테스트#

CI 없이 Duo 분석을 로컬에서 테스트하려면:

  1. Python과 의존성이 설치되어 있는지 확인합니다(예: 저장소 루트에서 poetry install 사용).
  2. 로컬 .env 또는 쉘 세션에서 필요한 환경 변수를 설정합니다:
    • DUO_TOKEN
    • GROUP_PATH
  3. 원시 Duo 사용 데이터를 수집하기 위해 범용 오케스트레이터 스크립트를 실행합니다:
python ai_raw_data_collection.py
  1. 설정에 따라 로컬 public/ 또는 docs/ 폴더에서 생성된 메트릭을 열거나, 솔루션 구성 요소 프로젝트 문서에 설명된 대로 대시보드를 로컬에서 실행합니다.

Duo 대시보드 기능#

Duo Analytics 대시보드는 GitLab Duo 도입 및 AI 사용 패턴에 집중하며, 다음을 포함합니다:

  • 라이선스 및 도입 분석 – Duo 액세스 권한이 있는 사용자 수와 실제로 사용하는 사용자 수를 추적합니다.
  • 코드 제안 분석 – AI 지원 코딩의 수락률, 제안 볼륨, 언어 분포를 모니터링합니다.
  • Duo Chat 분석 – 채팅 상호작용, 사용자 코호트, 대화 볼륨을 봅니다.
  • 사용자 참여 분석 – 사용 수준(비활성, 실험 중, 정기, 고빈도)별로 사용자를 세분화합니다.
  • 언어 및 워크플로우 성능 – 프로그래밍 언어 또는 워크플로우별로 Duo 효과성(예: 수락률, 제안 사용)을 분석합니다.

이러한 메트릭은 전적으로 Duo 관련 신호에서 파생됩니다. 이 대시보드를 사용하는 데 기존 프로젝트 메트릭은 필요하지 않습니다.

Duo 사용 데이터 수집 파이프라인#

Duo 도입 메트릭은 다음에 의존하는 CI 기반 데이터 수집 파이프라인으로 생성됩니다:

  • 범용 Python 오케스트레이터: ai_raw_data_collection.py
  • 재사용 가능한 GitLab GraphQL API 클라이언트: gitlab_graphql_api

오케스트레이터: ai_raw_data_collection.py#

ai_raw_data_collection.py 스크립트는 다음을 담당합니다:

  • 환경/CI 변수(예: GROUP_PATH, DUO_TOKEN 및 파이프라인 구성) 읽기.
  • 구체적인 Duo 사용 쿼리를 구현하는 하나 이상의 수집기 스크립트 호출.
  • 다음 항목 조정:
    • 그룹 및 프로젝트에 걸친 페이지네이션.
    • Duo 사용 이벤트의 날짜/시간 창 또는 샘플링 전략.
    • 결과를 일관되고 분석 친화적인 형식(예: CSV/JSON)으로 정규화.
  • Duo 대시보드 및 다운스트림 집계 단계가 사용하는 위치에 수집된 데이터 쓰기.

이것은 원시 Duo 사용 데이터를 수집하기 위한 범용 진입점 역할을 하므로 다음이 가능합니다:

  • CI 구성을 변경하지 않고 새로운 Duo 관련 수집기를 추가할 수 있습니다.
  • 환경 변수 또는 CI 작업을 통해 어떤 수집기를 실행할지 제어할 수 있습니다.

GitLab GraphQL API 클라이언트 및 컬렉션#

모든 Duo 관련 GraphQL 로직은 특히 다음 아래의 gitlab_graphql_api Python 패키지에 캡슐화되어 있습니다:

  • gitlab_graphql_api > collections

주요 개념:

  • GraphQL 클라이언트 추상화 – 중앙 클라이언트가 GitLab GraphQL 엔드포인트에 대한 인증, 페이지네이션, 오류 처리를 담당합니다.
  • 컬렉션 클래스collections 모듈은 구조화된 데이터를 검색하는 방법을 노출하는 상위 수준 추상화(예: "프로젝트 컬렉션" 또는 "사용자 컬렉션")를 제공합니다. Duo 수집기는 이를 사용하여:
    • 지정된 GROUP_PATH의 그룹 및 프로젝트를 가져옵니다.
    • Duo 사용 필드 및 AI 관련 활동을 쿼리합니다.
  • 버전별 API 사용 – 오케스트레이터를 변경하지 않고 GitLab이 Duo 관련 GraphQL 필드를 개선하거나 확장함에 따라 동일한 컬렉션 API를 확장할 수 있습니다.

Duo 수집기는 이러한 컬렉션 클래스를 가져오고 필요한 특정 쿼리를 정의합니다(예: AI 코드 제안 수, 채팅 사용 이벤트 또는 사용자 수준 도입 통계 가져오기).

참고: Duo 사용을 위한 GraphQL 스키마 및 필드 이름은 gitlab_graphql_api > collections의 컬렉션 클래스와 함께 문서화되어 있습니다. Duo 메트릭에 대해 수집된 데이터를 확장하거나 사용자 정의할 때 해당 문서를 사용하십시오.

Duo 데이터 수집 구성#

파이프라인을 사용자 정의할 수 있지만, 일반적인 Duo 전용 설정에는 다음이 필요합니다:

  • 최소 CI 구성:
    • ENABLE_DUO_METRICS="true"를 설정하여 Duo 파이프라인을 활성화합니다.
    • ENABLE_PROJECT_METRICS="false"를 설정하여 비Duo 파이프라인을 선택적으로 비활성화합니다.
  • ai_raw_data_collection.py에서 사용하는 환경 변수:
변수 설명 예시
DUO_TOKEN read_api + ai_features 권한이 있는 토큰으로, Duo GraphQL 쿼리에 사용됩니다. glpat-xxxx
GROUP_PATH Duo 사용을 측정할 그룹 또는 하위 그룹. "gitlab-org/your-group"
DUO_METRICS_OUTPUT_DIR 원시 Duo 사용 데이터의 선택적 출력 디렉토리. "duo-metrics/raw"

이 설정이 완료되면 ai_raw_data_collection.py를 실행하는 CI 작업이 다음을 수행합니다:

  1. gitlab_graphql_api 컬렉션을 사용하여 지정된 그룹의 Duo 사용 데이터를 쿼리합니다.
  2. 다음에 사용할 수 있는 원시 Duo 사용 아티팩트를 씁니다:
    • 보고서로 집계.
    • Duo 대시보드에서 직접 로드.

Duo 메트릭 확장#

Duo 도입 메트릭을 추가하거나 개선하려면:

  1. 새 Duo 신호와 관련된 GitLab GraphQL 필드를 식별합니다(예: 추가 사용 카운터 또는 새 AI 기능).
  2. 다음을 수행하는 수집기 스크립트를 업데이트하거나 추가합니다:
    • gitlab_graphql_api > collections 추상화를 사용합니다.
    • 기존 Duo 수집기와 일관된 형식으로 데이터를 씁니다.
  3. 수집기를 ai_raw_data_collection.py연결합니다(또는 환경 변수를 통해 제어합니다).
  4. 필요한 경우 새 필드를 사용하고 시각화하도록 대시보드를 업데이트합니다.

GraphQL 액세스 및 페이지네이션 로직이 gitlab_graphql_api 내에 캡슐화되어 있으므로 Duo 메트릭 확장은 일반적으로 다음을 의미합니다:

  • 오케스트레이터의 최소한의 변경.
  • 새 메트릭 모델링 및 대시보드 업데이트에 집중.

리소스#

GitLab Duo 도입 메트릭 및 분석

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

이 프로젝트는 다음을 결합하여 엔드투엔드 GitLab Duo 사용 분석을 제공합니다: 다음 프로젝트 CI/CD 변수를 설정하여 실행할 분석 파이프라인을 제어할 수 있습니다: Duo 메트릭이 활성화되면 Duo 파이프라인이 완료된 후 Pages 배포가 자동으로 수행됩니다:

GitLab Duo 도입 메트릭 및 분석#

이 프로젝트는 다음을 결합하여 엔드투엔드 GitLab Duo 사용 분석을 제공합니다:

  • Duo GraphQL 데이터 수집 – GitLab GraphQL API 클라이언트를 기반으로 하는 Duo 수집기 스크립트를 호출하는 범용 Python 오케스트레이터.
  • Duo 사용 메트릭 파이프라인 – GitLab 그룹의 Duo 사용 데이터를 주기적으로 수집하고 집계하는 CI 작업.
  • Duo Analytics 대시보드 – Duo 도입, 사용 강도, 참여 트렌드를 보여주는 GitLab Pages 호스팅 대시보드.

시작하기#

다음 프로젝트 CI/CD 변수를 설정하여 실행할 분석 파이프라인을 제어할 수 있습니다:

변수 Duo 설정 설명
ENABLE_DUO_METRICS "true" Duo AI 메트릭 파이프라인 활성화/비활성화.
ENABLE_PROJECT_METRICS "false" Duo 도입에만 관심이 있는 경우 기존 프로젝트 중심 메트릭 비활성화.
DUO_TOKEN TOKEN VALUE Duo 사용 수집을 위한 read_apiai_features 권한이 있는 개인 액세스 토큰.
GROUP_PATH example_group Duo 메트릭을 수집할 최상위 그룹 또는 하위 그룹 경로.

빠른 시작 단계

  1. 이 저장소를 포크합니다.
  2. 프로젝트 설정 → CI/CD → 변수로 이동합니다.
  3. 환경에 적합한 값으로 위의 변수를 추가합니다.
  4. 원하는 간격으로 예약된 파이프라인을 구성합니다. Duo 사용 수집은 리소스를 많이 사용할 수 있으므로 하루에 한 번 실행을 권장합니다.
  5. 예약된 파이프라인을 수동으로 실행하거나 예약을 기다립니다.
  6. 파이프라인이 완료된 후 배포 → Pages에서 Pages 애플리케이션을 열어 Duo Analytics 대시보드에 액세스합니다.

GitLab Pages 배포 (Duo 메트릭)#

Duo 메트릭이 활성화되면 Duo 파이프라인이 완료된 후 Pages 배포가 자동으로 수행됩니다:

  • Duo 메트릭 파이프라인https://your-username.gitlab.io/project-name/duo-metrics/와 같은 URL에 배포됩니다.
  • 메인 랜딩 페이지https://your-username.gitlab.io/project-name/에서 사용 가능하며, 사용 가능한 대시보드 링크가 있습니다.

랜딩 페이지는 어떤 대시보드가 있는지 자동으로 감지하고 ENABLE_DUO_METRICS="true"인 경우 Duo 관련 링크를 표시합니다.

로컬 개발 및 테스트#

CI 없이 Duo 분석을 로컬에서 테스트하려면:

  1. Python과 의존성이 설치되어 있는지 확인합니다(예: 저장소 루트에서 poetry install 사용).
  2. 로컬 .env 또는 쉘 세션에서 필요한 환경 변수를 설정합니다:
    • DUO_TOKEN
    • GROUP_PATH
  3. 원시 Duo 사용 데이터를 수집하기 위해 범용 오케스트레이터 스크립트를 실행합니다:
python ai_raw_data_collection.py
  1. 설정에 따라 로컬 public/ 또는 docs/ 폴더에서 생성된 메트릭을 열거나, 솔루션 구성 요소 프로젝트 문서에 설명된 대로 대시보드를 로컬에서 실행합니다.

Duo 대시보드 기능#

Duo Analytics 대시보드는 GitLab Duo 도입 및 AI 사용 패턴에 집중하며, 다음을 포함합니다:

  • 라이선스 및 도입 분석 – Duo 액세스 권한이 있는 사용자 수와 실제로 사용하는 사용자 수를 추적합니다.
  • 코드 제안 분석 – AI 지원 코딩의 수락률, 제안 볼륨, 언어 분포를 모니터링합니다.
  • Duo Chat 분석 – 채팅 상호작용, 사용자 코호트, 대화 볼륨을 봅니다.
  • 사용자 참여 분석 – 사용 수준(비활성, 실험 중, 정기, 고빈도)별로 사용자를 세분화합니다.
  • 언어 및 워크플로우 성능 – 프로그래밍 언어 또는 워크플로우별로 Duo 효과성(예: 수락률, 제안 사용)을 분석합니다.

이러한 메트릭은 전적으로 Duo 관련 신호에서 파생됩니다. 이 대시보드를 사용하는 데 기존 프로젝트 메트릭은 필요하지 않습니다.

Duo 사용 데이터 수집 파이프라인#

Duo 도입 메트릭은 다음에 의존하는 CI 기반 데이터 수집 파이프라인으로 생성됩니다:

  • 범용 Python 오케스트레이터: ai_raw_data_collection.py
  • 재사용 가능한 GitLab GraphQL API 클라이언트: gitlab_graphql_api

오케스트레이터: ai_raw_data_collection.py#

ai_raw_data_collection.py 스크립트는 다음을 담당합니다:

  • 환경/CI 변수(예: GROUP_PATH, DUO_TOKEN 및 파이프라인 구성) 읽기.
  • 구체적인 Duo 사용 쿼리를 구현하는 하나 이상의 수집기 스크립트 호출.
  • 다음 항목 조정:
    • 그룹 및 프로젝트에 걸친 페이지네이션.
    • Duo 사용 이벤트의 날짜/시간 창 또는 샘플링 전략.
    • 결과를 일관되고 분석 친화적인 형식(예: CSV/JSON)으로 정규화.
  • Duo 대시보드 및 다운스트림 집계 단계가 사용하는 위치에 수집된 데이터 쓰기.

이것은 원시 Duo 사용 데이터를 수집하기 위한 범용 진입점 역할을 하므로 다음이 가능합니다:

  • CI 구성을 변경하지 않고 새로운 Duo 관련 수집기를 추가할 수 있습니다.
  • 환경 변수 또는 CI 작업을 통해 어떤 수집기를 실행할지 제어할 수 있습니다.

GitLab GraphQL API 클라이언트 및 컬렉션#

모든 Duo 관련 GraphQL 로직은 특히 다음 아래의 gitlab_graphql_api Python 패키지에 캡슐화되어 있습니다:

  • gitlab_graphql_api > collections

주요 개념:

  • GraphQL 클라이언트 추상화 – 중앙 클라이언트가 GitLab GraphQL 엔드포인트에 대한 인증, 페이지네이션, 오류 처리를 담당합니다.
  • 컬렉션 클래스collections 모듈은 구조화된 데이터를 검색하는 방법을 노출하는 상위 수준 추상화(예: "프로젝트 컬렉션" 또는 "사용자 컬렉션")를 제공합니다. Duo 수집기는 이를 사용하여:
    • 지정된 GROUP_PATH의 그룹 및 프로젝트를 가져옵니다.
    • Duo 사용 필드 및 AI 관련 활동을 쿼리합니다.
  • 버전별 API 사용 – 오케스트레이터를 변경하지 않고 GitLab이 Duo 관련 GraphQL 필드를 개선하거나 확장함에 따라 동일한 컬렉션 API를 확장할 수 있습니다.

Duo 수집기는 이러한 컬렉션 클래스를 가져오고 필요한 특정 쿼리를 정의합니다(예: AI 코드 제안 수, 채팅 사용 이벤트 또는 사용자 수준 도입 통계 가져오기).

참고: Duo 사용을 위한 GraphQL 스키마 및 필드 이름은 gitlab_graphql_api > collections의 컬렉션 클래스와 함께 문서화되어 있습니다. Duo 메트릭에 대해 수집된 데이터를 확장하거나 사용자 정의할 때 해당 문서를 사용하십시오.

Duo 데이터 수집 구성#

파이프라인을 사용자 정의할 수 있지만, 일반적인 Duo 전용 설정에는 다음이 필요합니다:

  • 최소 CI 구성:
    • ENABLE_DUO_METRICS="true"를 설정하여 Duo 파이프라인을 활성화합니다.
    • ENABLE_PROJECT_METRICS="false"를 설정하여 비Duo 파이프라인을 선택적으로 비활성화합니다.
  • ai_raw_data_collection.py에서 사용하는 환경 변수:
변수 설명 예시
DUO_TOKEN read_api + ai_features 권한이 있는 토큰으로, Duo GraphQL 쿼리에 사용됩니다. glpat-xxxx
GROUP_PATH Duo 사용을 측정할 그룹 또는 하위 그룹. "gitlab-org/your-group"
DUO_METRICS_OUTPUT_DIR 원시 Duo 사용 데이터의 선택적 출력 디렉토리. "duo-metrics/raw"

이 설정이 완료되면 ai_raw_data_collection.py를 실행하는 CI 작업이 다음을 수행합니다:

  1. gitlab_graphql_api 컬렉션을 사용하여 지정된 그룹의 Duo 사용 데이터를 쿼리합니다.
  2. 다음에 사용할 수 있는 원시 Duo 사용 아티팩트를 씁니다:
    • 보고서로 집계.
    • Duo 대시보드에서 직접 로드.

Duo 메트릭 확장#

Duo 도입 메트릭을 추가하거나 개선하려면:

  1. 새 Duo 신호와 관련된 GitLab GraphQL 필드를 식별합니다(예: 추가 사용 카운터 또는 새 AI 기능).
  2. 다음을 수행하는 수집기 스크립트를 업데이트하거나 추가합니다:
    • gitlab_graphql_api > collections 추상화를 사용합니다.
    • 기존 Duo 수집기와 일관된 형식으로 데이터를 씁니다.
  3. 수집기를 ai_raw_data_collection.py연결합니다(또는 환경 변수를 통해 제어합니다).
  4. 필요한 경우 새 필드를 사용하고 시각화하도록 대시보드를 업데이트합니다.

GraphQL 액세스 및 페이지네이션 로직이 gitlab_graphql_api 내에 캡슐화되어 있으므로 Duo 메트릭 확장은 일반적으로 다음을 의미합니다:

  • 오케스트레이터의 최소한의 변경.
  • 새 메트릭 모델링 및 대시보드 업데이트에 집중.

리소스#