Пример отчета о тренде скорости передачи конвейера

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

В этой статье показано, как создать отчет, показывающий тенденцию ежедневной передачи конвейера. Скорость передачи конвейера определяется как процент успешных запусков конвейера к общему объему выполнения конвейера. Он похож на диаграмму тренда скорости передачи конвейера. На следующем рисунке показан пример такой тенденции.

Снимок экрана: отчет о тренде скорости передачи конвейеров 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} "
                &"and CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,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}

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

and CanceledCount ne 1

Опустить отмененные запуски конвейера.

)

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

/groupby(

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

(CompletedOn/Date),

Группировать по дате завершения выполнения конвейера.

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. Закройте aggregate() и groupby() предложения.

/compute(

compute() Начало предложения.

SucceededCount mul 100.0 div TotalCount as PassRate,

Вычислите PassRate каждый день путем деления числа успешных запусков по количеству общих запусков.

FailedCount mul 100.0 div TotalCount as FailRate,

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

PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate)

Вычислите PartiallySuccessfulRate каждый день путем деления числа частично успешных запусков по количеству общих запусков.

&$orderby=CompletedOn/Date asc

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

Тенденция скорости передачи для идентификатора конвейера

Конвейеры можно переименовать. Чтобы убедиться, что отчеты 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} "
                &"and CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Тренд скорости передачи, фильтрация по ветви

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

  • Развернитесь Branch в Branch.BranchName.
  • Выберите срез визуализации Power BI и добавьте Branch.BranchName его в поле среза.
  • Выберите ветвь из среза, для которого необходимо увидеть тенденцию скорости передачи.

Запрос 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} "
                &"and CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(Branch/BranchName, CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Тенденция передачи скорости, фильтрация по причине сборки

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

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

Запрос 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} "
                &"and CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(RunReason, CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Тенденция передачи скорости для всех конвейеров проектов

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

  • Развернитесь Pipeline в Pipeline.PipelineName.
  • Выберите срез в области "Визуализации" и добавьте поле в поле Pipeline.PipelineNameсреза.
  • Выберите конвейер сборки из среза, для которого необходимо увидеть тенденцию скорости передачи.

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

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

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

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

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

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

Разверните столбцы в Редактор Power Query

Перед созданием отчета необходимо развернуть столбцы, возвращающие записи, содержащие несколько полей. В этом экземпляре необходимо развернуть CompletedOn столбец, чтобы он был неструктурированным CompletedOn.Date.
Сведения о том, как развернуть рабочие элементы, см. в разделе "Аналитика преобразования" для создания отчетов Power BI.

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

В меню "Преобразование" измените тип данных для следующих столбцов. Сведения о том, как это сделать, см. в разделе "Преобразование типа данных столбца".

  • PassRate, FailRate а также PartiallySuccessfulRate столбцы десятичного числа.
  • TotalCountзначение <кто le="">.

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

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

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

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

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

Создание отчета о графике

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

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

  2. Добавьте CompletedOn.Date в оси X. Щелкните правой кнопкой мыши поле и выберите CompletedOn.Date.

  3. Добавьте PassRate в ось Y и щелкните его правой кнопкой мыши, чтобы убедиться, что выбрана сумма .

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

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

    Снимок экрана: пример отчета о скорости передачи конвейеров Power BI.