다음을 통해 공유


파이프라인 작업 기간 샘플 보고서

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

완료하는 데 다른 작업이 얼마나 걸리나요? 이 문서에서는 특정 파이프라인 및 해당 작업에 대한 보고서를 생성할 수 있는 쿼리를 제공합니다. 예를 들어 다음 이미지는 2022년 9월 1일부터 12월 15일까지 특정 파이프라인에 대해 완료된 모든 작업에 대해 50번째, 80번째 및 95번째 백분위수(초)를 나열합니다.

Power BI Pipelines 작업 기간 테이블 추세 보고서의 스크린샷.

Important

Analytics Service의 OData 피드대한 Power BI 통합 및 액세스는 일반적으로 Azure DevOps Services 및 Azure DevOps Server 2020 이상 버전에서 사용할 수 있습니다. 이 문서에서 제공하는 샘플 쿼리는 Azure DevOps Server 2020 이상 버전에 대해서만 유효하며 v3.0 미리 보기 이상 버전에 따라 달라집니다. 이러한 쿼리를 사용하고 피드백을 제공하는 것이 좋습니다.

필수 조건

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

참고 항목

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

샘플 쿼리

작업 기간 정보를 반환하도록 엔터티 집합을 쿼리 PipelineRunActivityResults? 합니다.

참고 항목

필터 또는 보고서 용도로 사용 가능한 속성을 확인하려면 Azure Pipelines에 대한 메타데이터 참조를 참조 하세요. 에서 사용할 수 있는 값 또는 아래 값을 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/PipelineRunActivityResults?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and PipelineRunCompletedOn/Date ge {startdate} "
                &"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
        &"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
        &") "
            &"/compute( "
                &"percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds, "
                &"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds, "
            &"percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds) "
                &"/groupby( "
            &"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName)) "
        &"&$orderby=TaskDuration50thPercentileInSeconds desc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

대체 문자열 및 쿼리 분석

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

  • {organization} - 조직 이름
  • {project} - 팀 프로젝트 이름
  • {pipelinename} - 파이프라인 이름입니다. 예: Fabrikam hourly build pipeline
  • {startdate} - 보고서를 시작할 날짜입니다. 형식: YYYY-MM-DDZ. 예: 2021-09-01Z 2021년 9월 1일을 나타냅니다. 따옴표나 대괄호로 묶지 말고 월과 날짜 둘 다에 두 숫자를 사용합니다.

쿼리 분석

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

쿼리 파트

설명


$apply=filter(

Start filter() 절입니다.

Pipeline/PipelineName eq '{pipelinename}'

지정된 파이프라인에 대한 파이프라인 실행을 반환합니다.

and PipelineRunCompletedOn/Date ge {startdate}

지정된 날짜 또는 그 이후에 실행되는 파이프라인에 대한 작업 결과를 반환합니다.

and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')

성공하거나 부분적으로 성공한 파이프라인 실행에 대해서만 작업 결과를 반환합니다.

and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)

취소, 건너뛰기 또는 중단된 파이프라인 실행을 생략합니다.

)

절을 닫습니다 filter() .

/compute(

Start compute() 절입니다.

percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,

각 태스크에 대해 필터 조건과 일치하는 모든 작업에 대한 작업 기간의 50번째 백분위수 계산

percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,

각 태스크에 대해 필터 조건과 일치하는 모든 작업에 대한 작업 기간의 80번째 백분위수 계산

percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)

각 태스크에 대해 필터 조건과 일치하는 모든 작업에 대한 작업 기간의 95번째 백분위수 계산

/groupby(

절을 시작합니다 groupby() .

(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))

파이프라인 실행 및 계산일별 50번째 백분위수 작업 기간, 80번째 백분위수 작업 기간 및 95번째 백분위수 작업 기간의 작업별로 그룹화합니다.

&$orderby=TaskDuration50thPercentileInSeconds desc

50번째 백분위수 기간이 가장 높은 작업별로 응답을 정렬합니다.

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

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

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

열 데이터 형식 변경

변환 메뉴에서 다음 열의 데이터 형식을 변경하여 Decimal Number**. 방법을 알아보려면 열 데이터 형식 변환을 참조하세요.
- TaskDuration80thPercentileInSeconds - TaskDuration80thPercentileInSeconds - TaskDuration95thPercentileInSeconds.

(선택 사항) 열 필드 이름 바꾸기

열 필드의 이름을 바꿀 수 있습니다. 예를 들어 다음 열의 이름을 더 잘 표시할 수 있도록 이름을 바꿀 수 있습니다. 방법을 알아보려면 열 필드 이름을 바꿉니다.

원래 필드 이름 이름이 바뀐 필드
TaskDisplayName 작업 이름
TaskDuration50thPercentileInSeconds 50번째 백분위수
TaskDuration80thPercentileInSeconds 80번째 백분위수
TaskDuration95thPercentileInSeconds 95번째 백분위수

쿼리를 닫고 변경 내용 적용

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

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

테이블 보고서 만들기

  1. Power BI의 시각화에서 테이블 보고서를 선택합니다. 열 필드 이름 바꾸기 섹션에 표시된 대로 필드 이름이 바뀌었습니다.

    작업 기간 테이블 보고서에 대한 시각화 필드 선택 스크린샷

  2. 지정한 순서대로 열에 다음 필드를 추가합니다.

    • 작업 이름
    • 50번째 백분위수
    • 80번째 백분위수
    • 95번째 백분위수
  3. 보고서 제목을 변경하려면 시각화 창에서 시각적 그림판 브러시 서식 아이콘을 선택하고, 일반을 선택하고, 제목을 확장하고, 기존 텍스트를 바꿉니다.

다음 이미지는 결과 보고서의 일부를 보여줍니다.

Power BI Pipelines 샘플 작업 기간 테이블 추세 보고서의 스크린샷.