다음을 통해 공유


리드 타임 및 주기 시간 샘플 보고서

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

이 문서에 제공된 쿼리를 사용하여 리드 타임 및 주기 차트를 만들 수 있습니다. 리드 타임 및 주기 시간은 작업이 팀의 개발 파이프라인을 통과하는 데 걸리는 시간을 나타냅니다. 리드 타임은 작업 항목 생성부터 완료까지 경과된 총 시간을 측정합니다. 주기 시간은 팀이 작업 항목을 적극적으로 작업하기 시작한 후 완료하는 데 걸리는 시간을 측정합니다.

다음 이미지는 사용자 스토리에 대한 우선 순위 할당으로 세분화되는 평균 리드 타임의 예를 보여 줍니다.

Power BI 잠재 고객 주기 시간 추세 차트 보고서의 스크린샷

잠재 고객 및 주기 시간에 대한 자세한 내용은 리드 타임 및 주기 시간 위젯누적 흐름, 리드 타임 및 주기 시간 지침을 참조하세요.

참고 항목

이 문서에서는 OData 쿼리를 사용하여 샘플 보고서 개요를 읽었 으며 Power BI에 대한 기본적인 이해를 가지고 있다고 가정합니다 .

필수 조건

  • 액세스 수준: 기본 액세스 이상이 있는 프로젝트의 멤버여야 합니다.
  • 사용 권한: 기본적으로 프로젝트 멤버는 분석을 쿼리하고 뷰를 만들 수 있는 권한이 있습니다.
  • 서비스 및 기능 사용 및 일반 데이터 추적 활동과 관련된 기타 필수 구성 요소에 대한 자세한 내용은 Analytics에 액세스하기 위한 사용 권한 및 필수 구성 요소를 참조 하세요.

샘플 쿼리

이 섹션의 쿼리는 완료된 사용자 스토리에 대한 리드 및 주기 시간 데이터 반환을 지원합니다. 영역 경로 또는 팀 이름별로 쿼리할 수 있습니다. 이러한 모든 쿼리는 분석 서비스에서 각 작업 항목에 대해 계산된 데이터를 반환할 때 엔터티 집합을 지정 WorkItems 합니다.

참고 항목

필터 또는 보고서 용도로 사용 가능한 속성을 확인하려면 Azure Boards에 대한 메타데이터 참조를 참조 하세요. 에서 사용할 수 있는 값 또는 아래 값을 Property 사용하여 쿼리를 EntityType 필터링하거나 NavigationPropertyBinding Path 속성을 반환할 수 있습니다 EntitySet. 각각 EntitySet 은 .에 EntityType해당합니다. 각 값의 데이터 형식에 대한 자세한 내용은 해당 EntityType값에 대해 제공된 메타데이터를 검토하세요.

사용자 스토리 및 영역 경로에 대한 리드 타임 및 주기 시간 반환

아래에 나열된 Power BI 쿼리를 데이터> 비어 있는 쿼리 가져오기 창에 직접 붙여넣을 수 있습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서의 개요를 검토 하세요.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and StateCategory eq 'Completed' "
            &"and CompletedDate ge {startdate} "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,AreaSK "
            &",CycleTimeDays,LeadTimeDays,CompletedDateSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

대체 문자열 및 쿼리 분석

다음 문자열을 값으로 바꿉니다. 대괄호를 대체에 {} 포함하지 마세요. 예를 들어 조직 이름이 "Fabrikam"{organization}Fabrikam{Fabrikam}인 경우 .

  • {organization} - 조직 이름
  • {project} - 프로젝트 간 쿼리의 경우 팀 프로젝트 이름 또는 "/{project}"를 완전히 생략합니다.
  • {areapath} - 영역 경로입니다. 예제 형식: Project\Level1\Level2
  • {startdate} - 지정된 날짜 이후에 완료된 항목에 대한 보고서를 다음 형식 YYYY-MM-DDZ으로 시작합니다. 예: 2022-04-01Z 2022-4월-01을 나타냅니다. 따옴표를 묶지 마세요.

쿼리 분석

다음 표에서는 쿼리의 각 부분을 설명합니다.

쿼리 파트

설명


$filter=WorkItemType eq 'User Story'

사용자 스토리에 대한 데이터를 반환합니다.

and StateCategory eq 'Completed'

완료된 항목만 반환합니다. 시스템은 완료된 작업 항목에 대해서만 리드 타임 일주기 시간 일 의 값을 계산합니다.

참고 항목

레코드의 원시 데이터를 보면 여기에서 CycleTimeDays=0항목이 표시 될 수 있습니다. 이는 사용자 스토리 또는 작업 항목 이 진행 중인 워크플로 범주 상태가 되며 같은 날 완료될 때 발생합니다. 워크플로 상태 범주에 대한 자세한 내용은 백로그 및 보드에서 워크플로 상태 및 상태 범주를 사용하는 방법을 참조 하세요.

and CompletedDate ge {startdate}

지정된 날짜 이후에 완료된 항목을 반환합니다. 예: 2022-04-01Z 는 2022-4월-01을 나타냅니다.

and startswith(Area/AreaPath,'{areapath}')

지정한 특정 영역 경로 아래의 작업 항목을 반환합니다'{areapath}'. 팀 이름으로 필터링하려면 filter 문을 Teams/any(x:x/TeamName eq '{teamname})'사용합니다.

&$select=WorkItemId, Title, WorkItemType, State, Priority

반환할 속성을 선택합니다.

, CycleTimeDays, LeadTimeDays, CompletedDateSK

리드 타임 일, 주기 시간 일CompletedDateSK을 지원하는 속성을 반환합니다. CompletedDateSK는 날짜 값을 정수로 반환합니다.

&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)

IterationArea 엔터티의 AssignedTo속성을 확장하고 해당 엔터티 필드를 선택합니다.

사용자 스토리 및 팀의 리드 타임 및 주기 시간 반환

이 쿼리는 영역 경로가 아닌 여러 팀 이름으로 필터링하는 것을 제외하고 이전 섹션에서 제공한 쿼리와 동일합니다.

아래에 나열된 Power BI 쿼리를 데이터> 비어 있는 쿼리 가져오기 창에 직접 붙여넣을 수 있습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서의 개요를 검토 하세요.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and StateCategory eq 'Completed' "
            &"and CompletedDate ge {startdate} "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,AreaSK "
            &",CycleTimeDays,LeadTimeDays,CompletedDateSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(선택 사항) 쿼리 이름 바꾸기

기본 쿼리 레이블인 Query1의 이름을 좀 더 의미 있는 것으로 바꿀 수 있습니다. 쿼리 설정 창에서 새 이름을 입력하기만 하면 됩니다.

Power BI 쿼리 메뉴 옵션, 쿼리 이름 바꾸기 스크린샷

Power Query 편집기 데이터 변환

Power Query 편집기 변환하려는 데이터가 포함된 쿼리를 선택합니다. 잠재 고객/주기 시간 차트의 경우 다음과 같은 변환을 수행합니다.

  • , 및 AssignedTo.와 같은 AreaIteration열을 확장합니다.
  • 열의 CycleTimeDays 데이터 형식을 LeadTimeDays 정수로 변환합니다.
  • 열의 데이터 형식을 CompletedDateSK 정수에서 날짜 값으로 변환합니다.

방법을 알아보려면 Transform Analytics 데이터의 다음 섹션 을 참조하여 Power BI 보고서를 생성합니다.

쿼리를 닫고 변경 내용 적용

모든 데이터 변환을 완료한 후 홈 메뉴에서 닫기 및 적용 을 선택하여 쿼리를 저장하고 Power BI의 보고서 탭으로 돌아갑니다.

Power Query 편집기 닫기 및 적용 옵션의 스크린샷

추세 차트 만들기

다음 예제에서는 쿼리 이름이 LeadCycleTime으로 바뀌었지만 이름이 바뀐 열은 없습니다.

  1. Power BI의 시각화에서 꺾은선형 차트 보고서를 선택합니다.

    리드 타임 추세 차트 보고서의 Power BI 시각화 및 필드 선택 스크린샷

  2. X축추가 CompletedDateSK 합니다.

  3. Y축추가하고 LeadTimeDays 마우스 오른쪽 단추를 클릭하고 평균을 선택합니다.

  4. 범례에 추가 Priority 합니다.

보고서 예제가 표시됩니다. 보고서의 모든 영역을 마우스로 가리키면 더 많은 데이터가 표시됩니다.

샘플 Power BI 잠재 고객 주기 시간 추세 차트 보고서의 스크린샷.