Пример сводного отчета о результатах конвейера

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

Запуск конвейера представляет собой одно выполнение конвейера. Во время выполнения конвейер обрабатывается, а агенты обрабатывают одно или несколько заданий. К результатам относятся успешное выполнение, сбой, отмена и частично успешное выполнение. Чтобы создать отчеты, показывающие результаты выполнения конвейера, необходимо запросить PipelineRuns entity set.

В этой статье приведены несколько запросов и инструкций по созданию отчета для получения количества запусков для различных результатов конвейера.

На следующем рисунке показан пример сводного отчета о результатах.

Снимок экрана: сводный отчет о результатах конвейеров Power BI.

Внимание

Интеграция Power BI и доступ к веб-каналуOData службы Аналитики общедоступны для Azure DevOps Services и Azure DevOps Server 2020 и более поздних версий. Примеры запросов, указанные в этой статье, допустимы только для Azure DevOps Server 2020 и более поздних версий, и зависят от версии 3.0-preview или более поздней версии. Мы рекомендуем вам использовать эти запросы и предоставлять нам отзывы.

Необходимые компоненты

  • Чтобы просмотреть данные аналитики и запросить службу, необходимо быть членом проекта с базовым доступом или большим доступом. По умолчанию все члены проекта предоставляют разрешения для запроса аналитики и определения представлений Аналитики.
  • Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий по отслеживанию данных см. в статье "Разрешения и предварительные требования для доступа к аналитике".

Примечание.

В этой статье предполагается, что вы прочитали обзор примеров отчетов с помощью запросов OData и имеют базовое представление о Power BI.

Примеры запросов

Вы можете использовать следующие запросы набора сущностей для создания различных, но аналогичных отчетов о результатах PipelineRuns конвейера.

Примечание.

Сведения о доступных свойствах для фильтрации или отчета см . в справочнике по метаданным для Azure Pipelines. Вы можете отфильтровать запросы или возвращать свойства с помощью любого из Property значенийEntityType, доступных в разделе EntitySetили NavigationPropertyBinding Path значениях. Каждое EntitySet соответствует .EntityType Чтобы узнать больше о типе данных каждого значения, просмотрите метаданные, предоставленные для соответствующего EntityTypeзначения.

Длительность конвейера для именованного конвейера

Следующие запросы возвращают выполнение конвейера для определенного конвейера с указанной даты начала.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelineName}' "
                &"and CompletedDate ge {startdate} "
                &") "
        &"/aggregate( "
        &"$count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Строки подстановки и разбивка запросов

Замените следующие строки значениями. Не включайте скобки в подстановку {} . Например, если вашей организации присвоено имя Fabrikam, замените {organization} на Fabrikam, а не {Fabrikam}.

  • {organization} — Название организации
  • {project} — Имя проекта группы
  • {pipelinename} — Имя конвейера. Пример: Fabrikam hourly build pipeline
  • {startdate} — Дата начала отчета. Формат: ГГГГ-ММ-ДДЗ. Пример: 2021-09-01Z представляет 1 сентября 2021 г. Не заключайте в кавычки или скобки и используйте две цифры как для месяца, так и для даты.

Разбивка запросов

В следующей таблице описана каждая часть запроса.

Часть запроса

Description


$apply=filter(

Предложение Start filter() .

Pipeline/PipelineName eq '{pipelinename}'

Возвращаемый конвейер выполняется для указанного конвейера.

and CompletedDate ge {startdate}

Возврат конвейера выполняется в указанной дате или после указанной даты.

)

Предложение Close filter()

/aggregate(

Предложение start aggregate для всех конвейеров выполняется в соответствии с критериями фильтра.

$count as TotalCount,

Подсчитывать общее число запусков в качестве TotalCount.

SucceededCount with sum as SucceededCount ,

Подсчитывать число успешных запусков в качестве SucceededCount.

FailedCount with sum as FailedCount,

Подсчитывать количество неудачных запусков в качестве FailedCount.

PartiallySucceededCount with sum as PartiallySucceededCount ,

Подсчитывать число частично успешных запусков в качестве PartiallySucceededCount.

CanceledCount with sum as CanceledCount

Подсчитывать число отмененных запусков как CanceledCount.

)

Закрыть aggregate() предложение.

Сводка результатов выполнения конвейера для определенного идентификатора конвейера

Конвейеры можно переименовать. Чтобы отчеты Power BI не прерывались при изменении имени конвейера, используйте идентификатор конвейера, а не его имя. Идентификатор конвейера можно получить из URL-адреса страницы выполнения конвейера.

https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}

Следующие запросы возвращают выполнение конвейера для определенного идентификатора конвейера и с указанной даты начала.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
        &"$apply=filter( "
                &"PipelineId eq {pipelineId} "
                &"and CompletedDate ge {startdate} "
                &") "
        &"/aggregate( "
        &"$count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Сводка результатов выполнения конвейера, отфильтрованной по ветви

Чтобы просмотреть сводку результатов конвейера для определенной ветви, используйте следующие запросы. Чтобы создать отчет, выполните следующие действия.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &") "
        &"/groupby( "
        &"(Branch/BranchName), "
            &"aggregate( "
                &"$count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
            &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
        &")) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Сводка результатов выполнения конвейера, отфильтрованной по причине сборки

Вы можете просмотреть сводку результатов конвейера только по определенным причинам сборки (вручную или пакетной обработки, запрос на вытягивание и т. д.). Чтобы создать отчет, выполните следующие действия.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &") "
        &"/groupby( "
        &"(RunReason), "
            &"aggregate( "
                &"$count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
            &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount , "
            &"CanceledCount with sum as CanceledCount "
        &")) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Сводка результатов для всех конвейеров проектов

Может потребоваться просмотреть сводку результатов конвейера для всех конвейеров проекта в одном отчете. Чтобы создать отчет, выполните следующие действия.

Дополнительные сведения см. в сводке результатов для всех примеров отчета конвейеров .

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRuns?"
        &"$apply=filter( "
                &"CompletedDate ge {startdate} "
                &") "
                &"/groupby( "
        &"(Pipeline/PipelineName), "
        &"aggregate( "
            &"$count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount , "
                &"CanceledCount with sum as CanceledCount "
            &")) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Необязательно) Переименование запроса

Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя из области Параметры запроса.

Снимок экрана: параметры меню запроса Power BI, переименование запроса.

Изменение типа данных столбца

В Редактор Power Query выберите TotalCount столбец, а затем в меню "Преобразование" выберите типданных и выберите Кто le Number. Дополнительные сведения об изменении типа данных см. в статье "Преобразование аналитических данных" для создания отчетов Power BI, преобразования типа данных столбца.

(Необязательно) Переименование полей столбцов

Можно переименовать поля столбцов. Например, можно переименовать столбец Pipeline.PipelineName в Pipeline Name,или TotalCount в Total Count. Сведения о том, как это сделать, см. в разделе "Переименовать поля столбцов".

Закройте запрос и примените изменения

Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.

Снимок экрана: параметр Редактор Power Query Закрыть и применить.

Создание отчета диаграммы Кольцевой диаграммы

  1. В Power BI в разделе "Визуализации" выберите отчет Donut .

    Снимок экрана: выбор полей визуализации для всех отчетов о выполнении конвейера.

  2. Добавьте следующие поля в значения в указанном порядке. Щелкните правой кнопкой мыши каждое поле и убедитесь, что выбрано значение Sum .

    • CanceledCount
    • PartiallySucceededCount.
    • SucceededCount
    • FailedCount
  3. Чтобы изменить заголовок отчета, выберите значок "Формат визуальной кисти" в области "Визуализации ", выберите "Общие", разверните "Заголовок" и замените существующий текст.

    Снимок экрана: область визуализаций, параметры формата отчета, изменение заголовка.

    На следующем рисунке показан итоговый отчет.

    Снимок экрана: сводный отчет о результатах конвейеров Power BI.