가치 흐름 분석

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

가치 흐름 분석은 아이디어에서 프로덕션으로 가는 데 걸리는 시간을 측정합니다.

가치 흐름은 고객에게 가치를 제공하는 전체 작업 프로세스입니다. 예를 들어,
DevOps 라이프사이클은 “관리” 단계로 시작하여 “보호” 단계로 끝나는 가치 흐름입니다.

가치 흐름 분석을 사용하여 다음을 확인하세요:

  • 아이디어에서 프로덕션으로 가는 데 걸리는 시간.
  • 주어진 프로젝트의 속도.
  • 개발 프로세스의 병목 현상.
  • 오랜 시간 지속되는 문제 또는 병합 요청.
  • 소프트웨어 개발 라이프사이클을 지연시키는 요인.

가치 흐름 분석은 비즈니스에 도움이 됩니다:

  • 엔드 투 엔드 DevSecOps 작업 흐름을 시각화합니다.
  • 비효율성을 식별하고 해결합니다.
  • 더 많은 가치를 더 빠르게 제공하기 위해 작업 흐름을 최적화합니다.

가치 흐름 분석은 프로젝트와 그룹에서 사용할 수 있습니다.

클릭 가능한 데모는 가치 흐름 관리 제품 투어를 참조하세요.

기능 가용성

가치 흐름 분석은 FOSS 및 라이센스 버전의 프로젝트 및 그룹 수준에서 다양한 기능을 제공합니다.

  • GitLab Free에서는 가치 흐름 분석이 데이터를 집계하지 않습니다. 생성 날짜에 대해 날짜 범위 필터가 적용된 데이터베이스를 직접 쿼리합니다. 미리 정의된 기본 단계를 사용하여 가치 흐름 분석을 볼 수 있습니다.
  • GitLab Premium에서는 가치 흐름 분석이 데이터를 집계하고 종료 이벤트에 날짜 범위 필터를 적용합니다. 또한 가치 흐름을 생성, 편집 및 삭제할 수 있습니다.
기능 그룹 수준 (라이센스) 프로젝트 수준 (라이센스) 프로젝트 수준 (FOSS)
커스텀 가치 흐름 생성 아니오, 하나의 기본 가치 흐름만 기본 단계와 함께 존재
커스텀 단계 생성 아니오
필터링 (예: 작성자, 레이블, 마일스톤)
단계 시간 차트 아니오
총 시간 차트 아니오
유형별 작업 차트 아니오 아니오
DORA 메트릭스 아니오
주기 시간 및 리드 시간 요약 (라이프 사이클 메트릭) 아니오
새로운 이슈, 커밋 및 배포 (라이프 사이클 메트릭) 예, 커밋 제외
집계된 백엔드 사용 아니오
날짜 필터 동작 항목 주어진 날짜 범위 내에서 완료됨 필터링 생성 날짜로 항목 필터링. 생성 날짜로 항목 필터링.
권한 최소 리포터 최소 리포터 공개 가능
note
프로젝트 수준의 기능이 그룹 수준의 가치 흐름 분석과 동등한 상태에 도달하기 위해 새로운 레코드 ProjectNamespace를 사용합니다. 이 통합 이니셔티브에 대한 자세한 내용은 조직 문서를 참조하세요.

가치 흐름 분석 작동 방식

가치 흐름 분석은 소프트웨어 개발 프로세스의 각 단계의 지속 시간을 계산합니다.

가치 흐름 분석은 세 가지 핵심 객체로 구성됩니다:

  • 가치 흐름은 가치 흐름 단계 리스트를 포함합니다.
  • 각 가치 흐름 단계 리스트에는 하나 이상의 단계가 포함됩니다.
  • 각 단계에는 두 개의 이벤트: 시작과 종료가 있습니다.

가치 흐름 단계

단계는 추가 메타데이터, 예를 들어 단계의 이름과 함께 이벤트 쌍(시작 및 종료 이벤트)을 나타냅니다. 백엔드에 정의된 쌍 규칙에 따라 단계를 구성할 수 있습니다.

가치 흐름

가치 흐름은 단계에 대한 컨테이너 객체입니다. DevOps 생명 주기의 다양한 측면에 집중하기 위해 그룹당 여러 가치 흐름을 가질 수 있습니다.

가치 흐름 단계 이벤트

  • Merge 요청 최초 검토자 할당 이벤트가 도입됨 GitLab 17.2에서. GitLab 17.2 이전에 생성되거나 업데이트된 병합 요청의 검토자 할당 이벤트는 보고에 사용할 수 없습니다.

이벤트는 가치 흐름 분석 기능의 가장 작은 구성 요소입니다. 하나의 단계는 시작 이벤트 및 종료 이벤트로 구성됩니다.

다음 단계 이벤트를 사용할 수 있습니다:

  • 이슈 닫힘
  • 이슈 생성
  • 이슈 보드에 처음 추가됨
  • 이슈에 처음 추가된 반복
  • 이슈에 처음 할당됨
  • 이슈가 처음으로 마일스톤과 연관됨
  • 이슈가 처음으로 언급됨
  • 이슈 레이블 추가됨
  • 이슈 레이블 제거됨
  • MR 닫힘
  • MR 병합됨
  • MR 생성됨
  • MR 최초 커밋 시간
  • MR 최초 할당
  • MR 최초 검토자 할당
  • MR 최초 배포됨
  • MR 레이블 추가됨
  • MR 레이블 제거됨
  • MR 마지막 파이프라인 기간

이러한 이벤트는 기간 계산에서 중요한 역할을 하며, 계산식은 다음과 같습니다: duration = 종료 이벤트 시간 - 시작 이벤트 시간.

시작 이벤트와 종료 이벤트를 어떻게 결합할 수 있는지 알아보려면 시작 및 종료 이벤트 검증을 참조하세요.

가치 흐름 분석이 데이터를 집계하는 방식

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
  • 종료일로 필터링 활성화 추가됨 GitLab 15.0에서

가치 흐름 분석은 백엔드 프로세스를 사용하여 단계 수준의 데이터를 수집하고 집계하며, 이는 많은 문제와 병합 요청이 있는 큰 그룹에서도 확장 가능하다는 것을 보장합니다. 이 프로세스 때문에, 행동이 발생한 시점(예: 이슈 닫기)과 데이터가 가치 흐름 분석 페이지에 표시되는 사이에 약간의 지연이 있을 수 있습니다.

데이터를 처리하고 결과를 표시하는 데 최대 10분이 걸릴 수 있습니다. 다음과 같은 경우 데이터 수집이 10분 이상 걸릴 수 있습니다:

  • 가치 흐름 분석을 처음 보는 경우이고 아직 가치 흐름을 생성하지 않은 경우.
  • 그룹 계층이 재배치된 경우.
  • 이슈 및 병합 요청에 대한 대량 업데이트가 있었던 경우.

데이터가 가장 최근에 업데이트된 시점을 보려면 편집 옆에 있는 오른쪽 모서리에서 마지막 업데이트됨 배지를 마우스 오버하세요.

가치 흐름 분석이 단계를 측정하는 방식

가치 흐름 분석은 각 단계를 시작 이벤트에서 종료 이벤트까지 측정합니다. 종료 이벤트에 도달한 항목만 단계 시간 계산에 포함됩니다.

기본적으로 차단된 이슈는 생명 주기 개요에 포함되지 않습니다.

그러나 사용자 지정 레이블(예: workflow::blocked)을 사용하여 이를 추적할 수 있습니다.

가치 흐름 분석에서 사전 정의된 이벤트를 기반으로 단계를 사용자 정의할 수 있습니다. 구성을 도와주기 위해 GitLab은 템플릿으로 사용할 수 있는 사전 정의된 단계 목록을 제공합니다. 예를 들어, 이슈에 레이블을 추가할 때 시작하고, 다른 레이블을 추가할 때 종료하는 단계를 정의할 수 있습니다.

다음 표는 가치 흐름 분석에서 사전 정의된 단계에 대한 개요를 제공합니다.

단계 측정 방법
이슈 이슈를 생성하고 이를 해결하기 위해 조치를 취하는 사이의 중앙값 시간, 레이블을 추가하거나 마일스톤에 추가된 것 중 먼저 발생한 것을 기준으로 합니다. 레이블은 이미 이슈 보드 목록 이 생성되어 있는 경우에만 추적됩니다.
계획 이전 단계에 대한 조치를 취한 시점과 브랜치에 최초 커밋을 푸시하는 사이의 중앙값 시간. 브랜치의 최초 커밋은 계획코드 사이의 경계를 나타냅니다. 브랜치의 커밋 중 하나 이상은 관련 이슈 번호(예: #42)를 포함해야 합니다. 브랜치의 커밋이 관련 이슈 번호를 언급하지 않으면 측정 시간에 포함되지 않습니다.
코드 최초 커밋(이전 단계)을 푸시한 시간과 해당 커밋과 관련된 병합 요청(MR)을 생성하는 사이의 중앙값 시간. 프로세스를 추적하기 위해서는 병합 요청의 설명에 이슈 닫기 패턴을 포함해야 합니다. 예: Closes #xxx, 여기서 xxx는 이 병합 요청과 관련된 이슈의 번호입니다. 닫기 패턴이 없으면 병합 요청에서 최초 커밋의 생성 시간을 시작 시간으로 사용합니다.
테스트 해당 프로젝트의 전체 파이프라인을 실행하는 데 걸리는 중앙값 시간. 이는 GitLab CI/CD가 해당 병합 요청에 푸시된 커밋에 대한 모든 작업을 실행하는 데 걸리는 시간과 관련이 있습니다. 기본적으로 모든 파이프라인의 시작->종료 시간입니다.
검토 닫는 이슈 패턴이 있는 병합 요청을 검토하는 데 소요된 중앙값 시간으로, 병합되는 시점까지의 시각을 측정합니다.
스테이징 닫는 이슈 패턴이 있는 병합 요청을 병합한 시점과 최초 프로덕션 환경 배포 사이의 중앙값 시간. 프로덕션 환경이 없는 경우 이는 추적되지 않습니다.
note
가치 흐름 분석은 타임스탬프 데이터를 기반으로 작동하며, 단계의 최종 시작 및 종료 이벤트만 집계합니다. 여러 단계를 오가며 이동하는 항목에 대한 단계 시간은 최종 이벤트의 타임스탬프만을 기준으로 계산됩니다.

가치 흐름 분석이 각 단계를 계산하는 방법에 대한 정보는 가치 흐름 분석 개발 가이드를 참조하세요.

예제 워크플로우

이 예제는 하루 동안 모든 일곱 단계에 대한 워크플로우를 보여줍니다.

단계에 시작 및 종료 시간이 포함되지 않으면 해당 데이터는 중앙값 시간에 포함되지 않습니다. 이 예제에서는 마일스톤이 생성되었고 CI/CD가 테스트 및 환경 설정을 위해 구성되었습니다.

  • 09:00: 이슈 생성. Issue 단계 시작.
  • 11:00: 이슈를 마일스톤(또는 백로그)에 추가하고, 이슈에 대한 작업을 시작하며, 로컬에서 브랜치를 생성합니다.
    Issue 단계 종료 및 Plan 단계 시작.
  • 12:00: 첫 번째 커밋을 만듭니다.
  • 12:30: 이슈 번호를 언급하는 두 번째 커밋을 브랜치에 만듭니다.
    Plan 단계 종료 및 Code 단계 시작.
  • 14:00: 브랜치를 푸시하고
    이슈 종료 패턴을 포함하는 머지 요청을 생성합니다.
    Code 단계 종료 및 TestReview 단계 시작.
  • GitLab CI/CD는 .gitlab-ci.yml 파일에 정의된 스크립트를 실행하는 데 5분이 소요됩니다.
  • 19:00: 머지 요청을 머지합니다. Review 단계 종료 및 Staging 단계 시작.
  • 19:30: production 환경에 배포가 완료됩니다. Staging 종료.

Value Stream Analytics는 각 단계에 대한 다음 시간을 기록합니다:

  • Issue: 09:00 ~ 11:00: 2시간
  • Plan: 11:00 ~ 12:00: 1시간
  • Code: 12:00 ~ 14:00: 2시간
  • Test: 5분
  • Review: 14:00 ~ 19:00: 5시간
  • Staging: 19:00 ~ 19:30: 30분

이 예제와 관련된 다음 관찰 사항을 염두에 두세요:

  • 이 예제는 첫 번째 커밋이 이슈 번호를 언급하지 않더라도 괜찮다는 것을 보여줍니다. 작업 중인 브랜치의 어떤 커밋에서도 나중에 할 수 있습니다.
  • Test 단계는 사이클의 전체 시간 계산에 사용됩니다. 모든 MR은 테스트되어야 하므로 Review 과정에 포함됩니다.
  • 이 예제는 일곱 단계의 하나의 사이클만을 나타냅니다. Value Stream Analytics 대시보드는 여러 사이클의 중앙값 시간을 보여줍니다.

누적 라벨 이벤트 지속 시간

  • GitLab 16.9에서 enable_vsa_cumulative_label_duration_calculationvsa_duration_from_db라는 플래그와 함께 도입됨. 기본적으로 비활성화되어 있습니다.
  • GitLab 16.10에서 GitLab.com 및 자체 관리에서 활성화됨. 기능 플래그 vsa_duration_from_db 제거됨.
  • GitLab 17.0에서 기능 플래그 enable_vsa_cumulative_label_duration_calculation제거됨.

이 기능을 사용하면 Value Stream Analytics가 라벨 기반 단계의 반복 이벤트 지속 시간을 측정합니다. 시작 및 종료 이벤트 모두에 대해 라벨 제거 또는 추가 이벤트를 구성해야 합니다.

예를 들어, in progress 라벨이 추가되고 제거되는 단계를 추적하면 다음과 같은 시간이 있습니다:

  • 9:00: 라벨 추가.
  • 10:00: 라벨 제거.
  • 12:00: 라벨 추가.
  • 14:00: 라벨 제거.

원래 계산 방법으로는 지속 시간이 5시간(9:00~14:00)입니다. 누적 라벨 이벤트 지속 시간 계산이 활성화되면 지속 시간은 3시간(9:00~10:00 및 12:00~14:00)입니다.

참고: GitLab 버전을 16.10(또는 더 높은 버전)으로 업그레이드하면, 기존의 라벨 기반 Value Stream Analytics 단계가 백그라운드 집계 프로세스를 사용하여 자동으로 재집계됩니다.

업그레이드 후 데이터 재집계
Offering: Self-managed

대규모 자가 관리 GitLab 인스턴스에서 GitLab 버전을 업그레이드할 때, 특히 여러 개의 마이너 버전을 건너뛰는 경우, 백그라운드 집계 프로세스가 더 오래 걸릴 수 있습니다. 이 지연은 Value Stream Analytics 페이지의 데이터가 오래된 상태가 되는 결과를 초래할 수 있습니다.

집계 프로세스를 가속화하고 오래된 데이터를 피하려면, rails console에서 특정 그룹에 대한 동기화 집계 스니펫을 호출할 수 있습니다:

group = Group.find(-1) # put your group id here
group_to_aggregate = group.root_ancestor

loop do
  cursor = {}
  context = Analytics::CycleAnalytics::AggregationContext.new(cursor: cursor)
  service_response = Analytics::CycleAnalytics::DataLoaderService.new(group: group_to_aggregate, model: Issue, context: context).execute

  if service_response.success? && service_response.payload[:reason] == :limit_reached
    cursor = service_response.payload[:context].cursor
  elsif service_response.success?
    puts "finished"
    break
  else
    puts "failed"
    break
  end
end

loop do
  cursor = {}
  context = Analytics::CycleAnalytics::AggregationContext.new(cursor: cursor)
  service_response = Analytics::CycleAnalytics::DataLoaderService.new(group: group_to_aggregate, model: MergeRequest, context: context).execute

  if service_response.success? && service_response.payload[:reason] == :limit_reached
    cursor = service_response.payload[:context].cursor
  elsif service_response.success?
    puts "finished"
    break
  else
    puts "failed"
    break
  end
end

Value Stream Analytics가 프로덕션 환경을 식별하는 방법

Value Stream Analytics는 다음 패턴 중 하나와 일치하는 이름을 가진 프로젝트 environments를 찾아 production environments를 식별합니다:

  • prod 또는 prod/*
  • production 또는 production/*

이 패턴은 대소문자를 구분하지 않습니다.

GitLab CI/CD 구성에서 프로젝트 환경의 이름을 변경할 수 있습니다.

Value Stream Analytics 보기

필수 조건:

  • 최소한 Reporter 역할을 가져야 합니다.
  • 커스텀 가치 스트림을 생성해야 합니다. Value Stream Analytics는 귀하의 그룹이나 프로젝트를 위해 생성된 커스텀 가치 스트림만 표시합니다.

귀하의 그룹이나 프로젝트에 대한 Value Stream Analytics를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 귀하의 프로젝트 또는 그룹을 찾으세요.
  2. 분석 > Value stream analytics를 선택하세요.
  3. 특정 단계의 지표를 보려면 필터 결과 텍스트 상자 아래의 단계를 선택하세요.
  4. 선택 사항. 결과 필터링:
    1. 필터 결과 텍스트 상자를 선택하세요.
    2. 매개변수를 선택하세요.
    3. 값을 선택하거나 텍스트를 입력하여 결과를 세분화하세요.
    4. 특정 날짜 범위의 지표를 보려면 드롭다운 목록에서 사전 정의된 날짜 범위 또는 사용자 정의 옵션을 선택하세요. 사용자 정의 옵션을 선택하면:

      • From 필드에서 시작 날짜를 선택하세요.
      • To 필드에서 종료 날짜를 선택하세요.

      차트와 목록은 날짜 범위 내에서 생성된 작업 항목을 표시합니다.

  5. 선택 사항. 오름차순 또는 내림차순으로 결과 정렬:
    • 최신 또는 오래된 작업 항목별로 정렬하려면 마지막 이벤트 헤더를 선택하세요.
    • 각 단계에서 소요된 시간에 따라 최다 또는 최저로 정렬하려면 소요 시간 헤더를 선택하세요.

작업 항목 테이블 헤더 옆의 배지는 선택한 단계에서 완료된 작업 항목의 수를 보여줍니다.

표는 선택한 단계에 대한 관련 작업 항목의 목록을 보여줍니다. 선택한 단계에 따라 다음이 될 수 있습니다:

  • 이슈
  • 병합 요청

참고:
각 사전 정의된 날짜 범위의 종료일은 현재 날짜이며, 선택된 일수에 포함됩니다. 예를 들어, 지난 30일의 시작 날짜는 현재 날짜에서 29일 전이며 총 30일입니다.

데이터 필터

특정 기준과 일치하는 데이터를 보기 위해 가치 흐름 분석의 필터를 적용할 수 있습니다. 지원되는 필터는 다음과 같습니다:

  • 날짜 범위
  • 프로젝트
  • 담당자
  • 작성자
  • 이정표
  • 레이블

참고: “작업 유형별” 차트의 경우 날짜 범위 및 프로젝트 선택기 필터만 사용할 수 있습니다. 레이블 및 기타 필터는 적용되지 않으며, 차트 옆의 드롭다운 목록에서 레이블을 별도로 선택해야 합니다.

가치 흐름 분석 메트릭

가치 흐름 분석의 개요 페이지는 프로젝트 및 그룹의 DevSecOps 생애 주기 성과에 대한 핵심 메트릭을 표시합니다.

생애 주기 메트릭

가치 흐름 분석은 다음과 같은 생애 주기 메트릭을 포함합니다:

  • 리드 타임: 문제 생성 시점부터 종료 시점까지의 중앙값 시간.
  • 사이클 타임: 최초 커밋부터 문제 종료 시점까지의 중앙값 시간. GitLab은 연결된 문제의 머지 요청에서 가장 이른 커밋부터 문제가 종료될 때까지 사이클 타임을 측정합니다. 사이클 타임 접근 방식은 머지 요청 생성이 항상 커밋 시간보다 늦기 때문에 리드 타임을 과소 평가합니다.
  • 새 문제: 생성된 새 문제의 수.
  • 배포: 프로덕션에 대한 총 배포 수.

DORA 메트릭

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
  • 도입됨 GitLab 15.0에서 서비스 복구 시간 타일.
  • 도입됨 GitLab 15.0에서 변경 실패율 타일.

가치 흐름 분석은 다음 DORA 메트릭을 포함합니다:

  • 배포 빈도
  • 변경을 위한 리드 타임
  • 서비스 복구 시간
  • 변경 실패율

DORA 메트릭은 DORA API의 데이터를 기반으로 계산됩니다.

GitLab Premium 또는 Ultimate 구독이 있는 경우:

  • 성공적인 배포의 수는 DORA 데이터를 통해 계산됩니다.
  • 데이터는 환경 및 환경 등급을 기준으로 필터링됩니다.

생애 주기 및 DORA 메트릭 보기

전제 조건:

생애 주기 메트릭을 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 분석 > 가치 흐름 분석을 선택합니다.
    생애 주기 메트릭은 결과 필터 텍스트 상자 아래에 표시됩니다.
  3. 선택 사항. 결과 필터링:
    1. 결과 필터 텍스트 상자를 선택합니다.
      선택한 필터에 따라 대시보드가 자동으로 생애 주기 메트릭을 집계하고 가치 흐름의 상태를 표시합니다.
    2. 매개변수를 선택합니다.
    3. 결과를 세분화하기 위해 값을 선택하거나 텍스트를 입력합니다.
    4. 날짜 범위를 조정하려면:
      • 시작일 필드에서 시작 날짜를 선택합니다.
      • 종료일 필드에서 종료 날짜를 선택합니다.

가치 흐름 대시보드DORA 메트릭을 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 분석 > 가치 흐름 분석을 선택합니다.
  3. 결과 필터 텍스트 상자 아래에서 생애 주기 메트릭 행에서 가치 흐름 대시보드 / DORA를 선택합니다.
  4. 선택 사항. 새 페이지를 열려면 이 경로 /analytics/dashboards/value_streams_dashboard를 그룹 URL에 추가합니다
    (예: https://gitlab.com/groups/gitlab-org/-/analytics/dashboards/value_streams_dashboard).

각 개발 단계에 대한 메트릭 보기

Value stream analytics는 각 개발 단계에서 이슈 또는 머지 요청이 소요된 중간 시간을 보여줍니다.

그룹의 각 단계에서 소요된 중간 시간을 보려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.

  2. Analyze > Value stream analytics를 선택합니다.

  3. 선택 사항. 결과 필터링:
    1. Filter results 텍스트 상자를 선택합니다.
    2. 매개변수를 선택합니다.
    3. 값을 선택하거나 텍스트를 입력하여 결과를 세분화합니다.
    4. 날짜 범위를 조정하려면:
      • From 필드에서 시작 날짜를 선택합니다.
      • To 필드에서 종료 날짜를 선택합니다.
  4. 각 단계에 대한 메트릭을 보려면 Filter results 텍스트 상자 위에 있는 단계에 마우스를 가져갑니다.
note
날짜 범위 선택기는 이벤트 시간에 따라 항목을 필터링합니다. 이벤트 시간은 선택된 단계가 주어진 항목에 대해 완료된 시점입니다.

유형별 작업 보기

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

유형별 작업 차트는 그룹의 하루당 이슈 및 머지 요청의 누적 수를 표시합니다.

차트는 선택된 그룹과 시간 프레임에 따라 데이터를 표시하기 위해 글로벌 페이지 필터를 사용합니다.

유형별 작업을 보려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 그룹을 찾습니다.

  2. Analyze > Value stream analytics를 선택합니다.

  3. Filter results 텍스트 상자 아래에서 Overview를 선택합니다. 유형별 작업 차트가 Total time 차트 아래에 표시됩니다.

  4. 작업 유형을 전환하려면 Settings ( ) 드롭다운 목록을 선택하고 Issues 또는 Merge Requests를 선택합니다.

  5. 레이블을 추가하거나 제거하려면 Settings ( ) 드롭다운 목록을 선택하고 레이블을 선택하거나 검색합니다. 기본적으로 상위 그룹 수준 레이블(최대 10개)이 선택됩니다. 최대 15개의 레이블을 선택할 수 있습니다.

가치 흐름 만들기

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
  • New value stream 기능이 변경되었습니다. GitLab 16.11에서 대화 상자에서 페이지로 변경되었습니다. vsa_standalone_settings_page라는 플래그가 있습니다. 기본적으로 비활성화되어 있습니다.

Self-managed GitLab에서 기본적으로 New value stream 기능은 사용할 수 없습니다. 사용 가능하게 하려면 관리자가 vsa_standalone_settings_page라는 기능 플래그를 활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다. 이 기능은 생산용으로 준비되지 않았습니다.

GitLab 기본 단계로 가치 흐름 만들기

가치 흐름을 생성할 때 GitLab 기본 단계를 사용할 수 있으며, 이를 숨기거나 순서를 변경할 수 있습니다. 기본 템플릿에 제공된 것 외에도 사용자 정의 단계를 만들 수 있습니다.

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.

  2. Analyze > Value Stream analytics를 선택합니다.

  3. New Value Stream을 선택합니다.

  4. 가치 흐름의 이름을 입력합니다.

  5. Create from default template를 선택합니다.

  6. 기본 단계를 사용자 정의합니다:
    • 단계를 재배열하려면 위 또는 아래 화살표를 선택합니다.
    • 단계를 숨기려면 Hide ( )를 선택합니다.
  7. 사용자 정의 단계를 추가하려면 Add another stage를 선택합니다.
    • 단계의 이름을 입력합니다.
    • Start eventStop event를 선택합니다.
  8. New value stream을 선택합니다.
note
최근에 GitLab Premium으로 업그레이드한 경우, 데이터 수집 및 표시까지 최대 30분이 걸릴 수 있습니다.

맞춤 단계로 값 흐름 생성하기

값 흐름을 생성할 때, 자신의 개발 워크플로우에 맞춘 사용자 정의 단계를 생성하고 추가할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트나 그룹을 찾습니다.
  2. 분석 > 값 흐름 분석을 선택합니다.
  3. 새 값 흐름을 선택합니다.
  4. 각 단계에 대해:
    • 단계의 이름을 입력합니다.
    • 시작 이벤트중지 이벤트를 선택합니다.
  5. 다른 단계를 추가하려면 다른 단계 추가를 선택합니다.
  6. 단계를 재정렬하려면 위쪽 또는 아래쪽 화살표를 선택합니다.
  7. 새 값 흐름을 선택합니다.

맞춤 값 흐름을 위한 레이블 기반 단계

복잡한 워크플로우를 측정하려면 범위 지정 레이블을 사용할 수 있습니다. 예를 들어, 스테이징 환경에서 프로덕션으로의 배포 시간을 측정하기 위해 다음 레이블을 사용할 수 있습니다:

  • 코드가 스테이징에 배포될 때, workflow::staging 레이블이 머지 요청에 추가됩니다.
  • 코드가 프로덕션에 배포될 때, workflow::production 레이블이 머지 요청에 추가됩니다.

레이블 기반 값 흐름 분석 단계

웹훅을 통한 자동 데이터 레이블 지정

특정 이벤트가 발생할 때 머지 요청이나 이슈에 레이블이 적용되도록 GitLab 웹훅 이벤트를 사용하여 레이블을 자동으로 추가할 수 있습니다.
그런 다음, 워크플로우를 추적하기 위해 레이블 기반 단계를 추가할 수 있습니다.
구현에 대한 자세한 내용을 보려면 블로그 글 GitLab 레이블 자동 적용을 참조하세요.

맞춤 값 흐름 구성 예시

예시 구성

위 예제에서는 Test Group (최상위 네임스페이스)에서 서로 다른 개발 워크플로우를 사용하는 두 팀을 위한 두 개의 독립적인 값 흐름이 설정되어 있습니다.

첫 번째 값 흐름은 단계를 정의하기 위해 표준 타임스탬프 기반 이벤트를 사용합니다. 두 번째 값 흐름은 레이블 이벤트를 사용합니다.

값 흐름 편집하기

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
  • 값 흐름 편집 기능은 변경되었습니다 GitLab 16.11에서 대화 상자가 아닌 페이지로 플래그 vsa_standalone_settings_page와 함께 사용됩니다. 기본적으로 비활성화되어 있습니다.

자체 관리 GitLab에서는 기본적으로 값 흐름 편집 기능이 제공되지 않습니다. 이를 사용할 수 있도록 하려면 관리자가 기능 플래그 vsa_standalone_settings_page를 활성화해야 합니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다. 이 기능은 프로덕션 용도로 준비되지 않았습니다.

값 흐름을 생성한 후에는 목적에 맞게 사용자화할 수 있습니다. 값 흐름을 편집하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트나 그룹을 찾습니다.
  2. 분석 > 값 흐름 분석을 선택합니다.
  3. 오른쪽 상단에서 드롭다운 목록을 선택한 다음, 값 흐름을 선택합니다.
  4. 값 흐름 드롭다운 목록 옆에서 편집을 선택합니다.
  5. 선택 사항:
    • 값 흐름 이름을 변경합니다.
    • 기본 단계를 숨기거나 재정렬합니다.
    • 기존 사용자 정의 단계를 제거합니다.
    • 새 단계를 추가하려면 다른 단계 추가를 선택합니다.
    • 단계의 시작 및 종료 이벤트를 선택합니다.
  6. 선택 사항: 수정 사항을 취소하려면 값 흐름 기본값 복원을 선택합니다.
  7. 값 흐름 저장을 선택합니다.

가치 흐름 삭제

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

사용자 정의 가치 흐름을 삭제하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 오른쪽 상단에서 드롭다운 목록을 선택한 다음 삭제하려는 가치 흐름을 선택합니다.
  3. 삭제 (가치 흐름 이름)를 선택합니다.
  4. 확인하려면 삭제를 선택합니다.

가치 흐름 삭제

사이클 완료 일수 보기

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

총 소요 시간 차트는 개발 사이클이 완료되는 데 걸리는 평균 일수를 보여줍니다.
차트는 마지막 500개 워크플로우 항목의 데이터를 보여줍니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 분석 > 가치 흐름 분석을 선택합니다.
  3. 결과 필터 상자 위에서 단계를 선택합니다:
    • 모든 단계의 사이클 시간을 요약하여 보려면 개요를 선택합니다.
    • 특정 단계의 사이클 시간을 보려면 단계를 선택합니다.
  4. 선택 사항. 결과를 필터링합니다:
    1. 결과 필터 텍스트 상자를 선택합니다.
    2. 매개변수를 선택합니다.
    3. 결과를 세분화하기 위해 값을 선택하거나 텍스트를 입력합니다.
    4. 날짜 범위를 조정하려면:
      • 시작 필드에서 시작 날짜를 선택합니다.
      • 종료 필드에서 종료 날짜를 선택합니다.

가치 흐름 분석에 대한 접근 권한

가치 흐름 분석에 대한 접근 권한은 프로젝트 유형에 따라 다릅니다.

프로젝트 유형 권한
공개 누구나 접근할 수 있습니다.
내부 인증된 모든 사용자가 접근할 수 있습니다.
비공개 최소 게스트 역할을 가진 사용자만 접근할 수 있습니다.

가치 흐름 분석 GraphQL API

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

VSA GraphQL API를 사용하면 구성된 가치 흐름과 가치 흐름 단계에서 메트릭을 요청할 수 있습니다.
이는 VSA 데이터를 외부 시스템으로 내보내거나 보고서에 사용하는 경우에 유용할 수 있습니다.

다음 메트릭을 사용할 수 있습니다:

  • 단계에서 완료된 항목의 수. 카운트는 최대 10,000개 항목으로 제한됩니다.
  • 단계에서 완료된 항목의 중앙값 기간.
  • 단계에서 완료된 항목의 평균 기간.

메트릭 요청

전제 조건:

  • 최소 보고서 역할이 있어야 합니다.

먼저, 보고서에서 사용할 가치 흐름을 결정해야 합니다.

그룹에 대한 구성된 가치 흐름을 요청하려면 다음을 실행합니다:

group(fullPath: "your-group-path") { 
  valueStreams { 
    nodes { 
      id 
      name 
    } 
  } 
} 

유사하게, 프로젝트의 메트릭을 요청하려면 다음을 실행합니다:

project(fullPath: "your-group-path") { 
  valueStreams { 
    nodes { 
      id 
      name 
    } 
  } 
} 

가치 흐름의 단계에 대한 메트릭을 요청하려면 다음을 실행합니다:

group(fullPath: "your-group-path") { 
  valueStreams(id: "your-value-stream-id") { 
    nodes { 
      stages { 
        id 
        name 
      } 
    } 
  } 
} 

데이터를 소비하는 방에 따라 특정 단계에 대한 메트릭을 요청하거나 가치 흐름의 모든 단계에 대한 메트릭을 요청할 수 있습니다.

참고:
모든 단계에 대한 메트릭 요청은 일부 설치에서 너무 느릴 수 있습니다.
추천 접근 방법은 단계별로 메트릭을 요청하는 것입니다.

단계에 대한 메트릭 요청:

group(fullPath: "your-group-path") { 
  valueStreams(id: "your-value-stream-id") { 
    nodes { 
      stages(id: "your-stage-id") { 
        id 
        name 
        metrics(timeframe: { start: "2024-03-01", end: "2024-03-31" }) { 
          average { 
            value 
            unit 
          } 
          median { 
            value 
            unit 
          } 
          count { 
            value 
            unit 
          } 
        } 
      } 
    } 
  } 
} 

참고:
항상 주어진 시간 범위로 메트릭을 요청해야 합니다.
지원되는 가장 긴 시간 범위는 180일입니다.

metrics 노드는 추가 필터링 옵션을 지원합니다:

  • 담당자 사용자 이름
  • 작성자 사용자 이름
  • 레이블 이름
  • 마일스톤 제목

필터가 있는 예제 요청:

group(fullPath: "your-group-path") { 
  valueStreams(id: "your-value-stream-id") { 
    nodes { 
      stages(id: "your-stage-id") { 
        id 
        name 
        metrics( 
          labelNames: ["backend"], 
          milestoneTitle: "17.0", 
          timeframe: { start: "2024-03-01", end: "2024-03-31" } 
        ) { 
          average { 
            value 
            unit 
          } 
          median { 
            value 
            unit 
          } 
          count { 
            value 
            unit 
          } 
        } 
      } 
    } 
  } 
} 

모범 사례

  • 현재 상태를 정확하게 파악하려면 가능한 한 시간 프레임의 끝에 가까운 메트릭을 요청하세요.

  • 정기 보고를 위해 스크립트를 작성하고 예약된 파이프라인 기능을 사용하여 데이터를 적시에 내보낼 수 있습니다.

  • API를 호출할 때 데이터베이스에서 현재 데이터를 가져옵니다. 시간이 지나면서 동일한 메트릭은 데이터베이스의 기본 데이터 변경으로 인해 변경될 수 있습니다. 예를 들어, 그룹에서 프로젝트를 이동하거나 제거하면 그룹 수준의 메트릭에 영향을 줄 수 있습니다.

  • 이전 기간에 대한 메트릭을 다시 요청하고 이전에 수집된 메트릭과 비교하면 데이터의 왜곡을 보여줄 수 있으며, 이는 변화하는 추세를 발견하고 설명하는 데 도움이 될 수 있습니다.

가치 흐름 예측을 통한 배포 빈도 예측

Tier: GitLab.com 및 Self-managed: 제한된 시간 동안 Ultimate. 2024년 10월 17일에 GitLab Duo Enterprise와 함께 Ultimate.

GitLab Dedicated: GitLab Duo Enterprise.

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

Status: Experiment

생산성 메트릭을 예측하고 소프트웨어 개발 주기 전반에 걸쳐 이상 징후를 식별하여 계획 및 의사 결정을 개선하세요.

전제 조건:

  • 실험 및 베타 기능 설정이 활성화된 최소 하나의 그룹에 속해야 합니다.

  • CI/CD 분석을 볼 수 있는 권한이 있어야 합니다.

CI/CD 분석에서 배포 빈도에 대한 예측을 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 분석 > CI/CD 분석을 선택합니다.
  3. 배포 빈도 탭을 선택합니다.
  4. 예측 표시 토글을 켭니다.
  5. 확인 대화상자에서 테스트 조건 수락을 선택합니다.

예측은 차트에서 점선으로 표시됩니다. 데이터는 선택한 날짜 범위의 절반 기간에 대해 예측됩니다.

예를 들어, 30일 범위를 선택하면 다음 15일에 대한 예측이 표시됩니다.

배포 빈도 예측

문제 416833에서 이 실험적 기능에 대한 피드백을 제공하세요.

문제 해결

Sidekiq cronjob:analytics_cycle_analytics에 의한 100% CPU 사용량

가치 흐름 분석 백그라운드 작업이 CPU 리소스를 독점하여 성능에 강한 영향을 미칠 수 있습니다.

이 상황에서 회복하려면:

  1. Rails 콘솔에서 모든 프로젝트에 대한 기능을 비활성화하고 기존 작업을 제거하세요:

    Project.find_each do |p|
      p.analytics_access_level='disabled';
      p.save!
    end
    
    Analytics::CycleAnalytics::GroupStage.delete_all
    Analytics::CycleAnalytics::Aggregation.delete_all
    
  2. 예를 들어 단일 feature_category=value_stream_management와 여러 feature_category!=value_stream_management 항목을 사용한 Sidekiq 라우팅으로 구성합니다. Enterprise Edition list에서 다른 관련 대기열 메타데이터를 찾으세요.

  3. 성능 요구 사항에 따라 Sidekiq 라우팅을 추가로 조정할 수 있으므로 하나의 프로젝트에서 다른 프로젝트로 가치 흐름 분석을 활성화하세요.