통찰력

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

프로젝트 및 그룹의 통찰력을 구성하여 다음과 같은 데이터를 탐색할 수 있습니다.

  • 지정된 기간 동안 생성 및 완료된 이슈.
  • 병합 요청이 병합되기까지의 평균 시간.
  • 트리아지 위생.

또한 그룹에 관련된 사용자 정의 통찰력 보고서를 생성할 수도 있습니다.

통찰력 보기

전제 조건:

  • 프로젝트 통찰력의 경우 프로젝트에 액세스하고 해당 병합 요청 및 이슈에 대한 정보를 볼 수 있는 권한이 있어야 합니다.
  • 그룹 통찰력의 경우 그룹을 볼 수 있는 권한이 있어야 합니다.

프로젝트 또는 그룹의 통찰력 보기 방법:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 분석 > 통찰력을 선택합니다.
  3. 보고서를 보려면 보고서 선택 드롭다운 목록을 선택합니다.

딥 링크를 사용하여 통찰력 보고서에 액세스

딥 링크 URL을 사용하여 특정 보고서로 사용자를 안내할 수 있습니다.

딥 링크를 생성하려면 보고서 키를 통찰력 보고서 URL의 끝에 추가합니다.
예를 들어, bugsCharts 키를 가진 GitLab 보고서는 딥 링크 URL https://gitlab.com/gitlab-org/gitlab/insights/#/bugsCharts를 가집니다.

통찰력 차트 상호 작용

그룹의 활동에 대한 세부 정보를 확인하려면 통찰력 차트와 상호 작용할 수 있습니다.

다른 보고서 표시

통찰력 페이지에서 사용 가능한 보고서 중 하나를 표시하려면 보고서 선택 드롭다운 목록에서 원하는 보고서를 선택합니다.

막대 차트 주석 보기

주석을 보려면 차트의 각 막대 위로 마우스를 가져갑니다.

차트 확대

통찰력은 최근 90일간의 데이터를 표시합니다. 90일 범위의 하위 집합에서만 데이터를 표시하려면 확대할 수 있습니다.

이를 위해 일시 중지 아이콘()을 선택하고 수평축을 따라 이동시킵니다.

  • 시작 날짜를 변경하려면 왼쪽 일시 중지 아이콘을 왼쪽이나 오른쪽으로 슬라이드합니다.
  • 종료 날짜를 변경하려면 오른쪽 일시 중지 아이콘을 왼쪽이나 오른쪽으로 슬라이드합니다.

차트에서 치수 제외

기본적으로 통찰력은 차트에서 사용 가능한 모든 차원을 표시합니다.

차원을 제외하려면 차트 아래의 범례에서 차원의 이름을 선택합니다.

차트 드릴다운

query.data_sourceissuables인 모든 차트의 데이터를 상세히 살펴볼 수 있습니다.

특정 우선 순위 또는 심각도의 데이터에 대한 드릴다운 보고서를 월별로 보려면:

  • 차트에서 드릴다운을 원하는 막대 스택을 선택합니다.

프로젝트 통찰력 구성

전제 조건:

  • 프로젝트 구성에 따라 적어도 Developer 역할이 있어야 합니다.

프로젝트 통찰력은 프로젝트의 .gitlab/insights.yml 파일로 구성됩니다. 프로젝트에 구성 파일이 없는 경우 그룹 구성을 사용합니다.

.gitlab/insights.yml 파일은 프로젝트 또는 그룹의 보고서에 표시할 차트 구조 및 순서, 보고서의 차트 스타일을 정의하는 YAML 파일입니다.

프로젝트 통찰력을 구성하려면 다음 중 하나를 만듭니다:

  • 로컬로 프로젝트의 루트 디렉터리에 .gitlab/insights.yml 파일을 생성하고 변경 사항을 push합니다.
  • UI를 통해:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
    2. 파일 목록 위에서 커밋할 브랜치를 선택하고 플러스 아이콘을 선택한 다음 새 파일을 선택합니다.
    3. 파일 이름 텍스트 상자에 .gitlab/insights.yml을 입력합니다.
    4. 큰 텍스트 상자에 파일 내용을 업데이트합니다.
    5. 변경 사항 커밋을 선택합니다.

구성 파일을 만든 후에는 프로젝트 그룹에도 사용할 수 있습니다.

그룹 통찰력 구성

GitLab은 기본 구성 파일에서 통찰력을 읽습니다.

그룹 통찰력을 구성하려면:

  1. 당신의 그룹에 속한 프로젝트에서 .gitlab/insights.yml` 파일 생성합니다.
  2. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  3. 설정 > 일반을 선택합니다.
  4. 분석을 확장하고 통찰력 섹션을 찾습니다.
  5. .gitlab/insights.yml 구성 파일을 포함한 프로젝트를 선택합니다.
  6. 변경 사항 저장을 선택합니다.

통찰력 구성 파일

.gitlab/insights.yml 파일에는 다음이 포함됩니다:

  • 구성 매개변수는 차트 동작을 정의합니다.
  • 각 보고서에는 고유한 키와 검색 및 표시할 차트 모음이 있습니다.
  • 각 차트 정의는 키-값 쌍으로 이루어진 해시로 구성됩니다.

다음 예는 하나의 차트를 표시하는 보고서를 표시하는 단일 정의를 보여줍니다.

bugsCharts:
  title: "버그 차트"
  charts:
    - title: "월간 생성된 버그"
      description: "월별로 생성된 버그"
      type: bar
      query:
        data_source: issuables
        params:
          issuable_type: issue
          issuable_state: opened
          filter_labels:
            - bug
          group_by: month
          period_limit: 24

통찰력 구성 매개변수

다음 표는 차트 매개변수를 나열합니다:

키워드 설명
title 차트의 제목. 이것은 통찰력 페이지에 표시됩니다.
description 각 차트에 대한 설명. 관련 차트 위에 표시됩니다.
type 차트 유형: bar, line, 또는 stacked-bar입니다.
query 차트의 데이터 소스와 필터링 조건을 정의하는 해시입니다.

title

title을 사용하여 차트 제목을 업데이트합니다. 이 제목은 통찰력 보고서에 표시됩니다.

예시:

monthlyBugsCreated:
  title: "월간 생성된 버그"

description

description를 사용하여 차트에 설명을 추가합니다. 이 설명은 제목 아래에 차트 위에 표시됩니다.

예시:

monthlyBugsCreated:
  title: "월간 버그 생성량"
  description: "월별 생성된 오픈된 버그"

type

type을 사용하여 차트 유형을 정의합니다.

지원되는 값:

이름 예시:
bar Insights example bar chart
bar (시계열, group_by가 사용될 때) Insights example bar time series chart
line Insights example stacked bar chart
stacked-bar Insights example stacked bar chart

dora 데이터 소스는 barline 차트 유형을 지원합니다.

예시:

monthlyBugsCreated:
  title: "월간 버그 생성량"
  type: bar

query

query를 사용하여 차트의 데이터 소스와 필터링 조건을 정의합니다.

예시:

monthlyBugsCreated:
  title: "월간 버그 생성량"
  description: "월별 생성된 오픈된 버그"
  type: bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
      collection_labels:
        - S1
        - S2
        - S3
        - S4
      group_by: week
      period_limit: 104

data_source 매개변수 없이 구성된 레거시 형식도 여전히 지원됩니다:

monthlyBugsCreated:
  title: "월간 버그 생성량"
  description: "월별 생성된 오픈된 버그"
  type: bar
  query:
    issuable_type: issue
    issuable_state: opened
    filter_labels:
      - bug
    collection_labels:
      - S1
      - S2
      - S3
      - S4
    group_by: week
    period_limit: 104

query.data_source

data_source를 사용하여 데이터를 노출하는 데이터 소스를 정의합니다.

지원되는 값:

  • issuables: 병합 요청 또는 이슈 데이터를 노출합니다.
  • dora: DORA 메트릭을 노출합니다.

issuable 쿼리 매개변수

query.params.issuable_type

query.params.issuable_type을 사용하여 차트를 생성할 이슈 유형을 정의합니다.

지원되는 값:

  • issue: 차트에 이슈 데이터가 표시됩니다.
  • merge_request: 차트에 병합 요청 데이터가 표시됩니다.
query.params.issuable_state

query.params.issuable_state을 사용하여 쿼리된 이슈 상태에 따라 필터링합니다.

기본적으로, opened 상태 필터가 적용됩니다.

지원되는 값:

  • opened: 오픈된 이슈 또는 병합 요청.
  • closed: 닫힌 이슈 또는 병합 요청.
  • locked: 토론이 잠긴 이슈 또는 병합 요청.
  • merged: 병합된 병합 요청.
  • all: 모든 상태의 이슈 또는 병합 요청.
query.params.filter_labels

query.params.filter_labels를 사용하여 쿼리된 이슈에 적용된 라벨로 필터링합니다.

기본적으로 라벨 필터가 적용되지 않습니다. 모든 정의된 라벨이 이슈에 적용되어야 합니다.

예시:

monthlyBugsCreated:
  title: "월간 리그레션 생성량"
  type: bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
        - regression
query.params.collection_labels

query.params.collection_labels을 사용하여 구성된 라벨별로 이슈를 그룹화합니다. 기본적으로 그룹화가 적용되지 않습니다.

예시:

weeklyBugsBySeverity:
  title: "주간 심각도별 버그"
  type: stacked-bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
      collection_labels:
        - S1
        - S2
        - S3
        - S4
query.group_by

query.group_by를 사용하여 차트의 X-축을 정의합니다.

지원되는 값:

  • day: 일별로 데이터를 그룹화합니다.
  • week: 주별로 데이터를 그룹화합니다.
  • month: 월별로 데이터를 그룹화합니다.
query.period_limit

query.period_limit을 사용하여 이슈를 쿼리하는 시간 범위를 정의합니다 (query.period_field를 사용).

단위는 query.group_by에서 정의된 값과 관련이 있습니다. 예를 들어, query.group_by: 'day'query.period_limit: 365로 정의하면 차트는 최근 365일간의 데이터를 표시합니다.

기본적으로, 정의한 query.group_by에 따라 기본값이 적용됩니다.

query.group_by 기본값
day 30
week 4
month 12

query.period_field

query.period_field를 사용하여 이슈를 그룹화하는 타임스탬프 필드를 정의합니다.

지원되는 값:

  • created_at (기본값): created_at 필드를 사용하여 데이터를 그룹화합니다.
  • closed_at: closed_at 필드를 사용하여 데이터를 그룹화합니다 (이슈 전용).
  • merged_at: merged_at 필드를 사용하여 데이터를 그룹화합니다 (병합 요청 전용).

period_field는 자동으로 설정됩니다:

  • query.issuable_stateclosed인 경우 closed_at.
  • query.issuable_statemerged인 경우 merged_at.
  • 그 외에는 created_at.

참고: 이 버그가 해결될 때까지, merged_at 대신에 created_at이 표시될 수 있습니다. created_at이 대신 사용됩니다.

DORA 쿼리 매개변수

dora 데이터 소스를 사용하여 DORA 차트 정의를 만들기 위해 DORA 특정 쿼리를 사용합니다.

예시:

dora:
  title: "DORA 차트"
  charts:
    - title: "DORA 배포 빈도"
      type: bar # 또는 line
      query:
        data_source: dora
        params:
          metric: deployment_frequency
          group_by: day
          period_limit: 10
      projects:
        only:
          - 38
    - title: "DORA 변경의 리드 타임"
      description: "DORA 변경의 리드 타임"
      type: bar
      query:
        data_source: dora
        params:
          metric: lead_time_for_changes
          group_by: day
          environment_tiers:
            - staging
          period_limit: 30
query.metric

query.metric을 사용하여 DORA metrics를 쿼리할 지표를 정의합니다.

지원되는 값:

  • deployment_frequency (기본값)
  • lead_time_for_changes
  • time_to_restore_service
  • change_failure_rate
query.group_by

query.group_by를 사용하여 차트의 X축을 정의합니다.

지원되는 값:

  • day (기본값): 매일 데이터를 그룹화합니다.
  • month: 매월 데이터를 그룹화합니다.
query.period_limit

query.period_limit을 사용하여 과거에 대한 지표를 조회하는 기간을 정의합니다 (기본값: 15). 최대 기간은 180일 또는 6개월입니다.

query.environment_tiers

query.environment_tiers를 사용하여 계산에 포함할 환경의 배열을 정의합니다.

지원되는 값:

  • production(기본값)
  • staging
  • testing
  • development
  • other

projects

projects를 사용하여 이슈를 쿼리할 프로젝트를 제한합니다:

  • .gitlab/insights.yml이 그룹의 인사이트에 사용되는 경우, projects를 사용하여 이슈를 쿼리할 프로젝트를 정의합니다. 기본적으로 그룹 내의 모든 프로젝트가 사용됩니다.
  • .gitlab/insights.yml이 프로젝트의 인사이트에 사용되는 경우, 다른 프로젝트를 지정해도 결과가 생성되지 않습니다. 기본적으로 프로젝트가 사용됩니다.

projects.only

projects.only를 사용하여 쿼리할 이슈가 있는 프로젝트를 지정합니다.

이 매개변수에 나열된 프로젝트는 다음 조건에서 무시됩니다:

  • 존재하지 않을 경우.
  • 현재 사용자가 읽기에 충분한 권한이 없을 경우.
  • 그룹 외부에 있을 경우.

예시:

monthlyBugsCreated:
  title: "Monthly bugs created"
  description: "Open bugs created per month"
  type: bar
  query:
    data_source: issuables
    params:
      issuable_type: issue
      issuable_state: opened
      filter_labels:
        - bug
  projects:
    only:
      - 3                         # 프로젝트 ID를 사용할 수 있습니다
      - groupA/projectA           # 전체 프로젝트 경로를 사용할 수 있습니다
      - groupA/subgroupB/projectC # 하위 그룹의 프로젝트를 포함할 수 있습니다
      - groupB/project            # 그룹 외부의 프로젝트는 무시됩니다

완전한 인사이트 구성 예시

.projectsOnly: &projectsOnly
  projects:
    only:
      - 3
      - groupA/projectA
      - groupA/subgroupB/projectC

bugsCharts:
  title: "Charts for bugs"
  charts:
    - title: "Monthly bugs created"
      description: "Open bugs created per month"
      type: bar
      <<: *projectsOnly
      query:
        data_source: issuables
        params:
          issuable_type: issue
          issuable_state: opened
          filter_labels:
            - bug
          group_by: month
          period_limit: 24

    - title: "Weekly bugs by severity"
      type: stacked-bar
      <<: *projectsOnly
      query:
        data_source: issuables
        params:
          issuable_type: issue
          issuable_state: opened
          filter_labels:
            - bug
          collection_labels:
            - S1
            - S2
            - S3
            - S4
          group_by: week
          period_limit: 104

    - title: "Monthly bugs by team"
      type: line
      <<: *projectsOnly
      query:
        data_source: issuables
        params:
          issuable_type: merge_request
          issuable_state: opened
          filter_labels:
            - bug
          collection_labels:
            - Manage
            - Plan
            - Create
          group_by: month
          period_limit: 24