Поделиться через


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

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 или NavigationPropertyBinding Path, которые доступны с помощью EntitySet значений. Каждое 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(

Начать filter() предложение.

Pipeline/PipelineName eq '{pipelinename}'

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

and CompletedDate ge {startdate}

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

and CanceledCount ne 1

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

)

Закрыть filter() пункт.

/groupby(

Начать groupby() пункт.

(CompletedOn/Date),

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

aggregate

Начните условие 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.
Чтобы узнать, как развернуть рабочие элементы, см. в разделе Преобразование данных Analytics для создания отчетов Power BI.

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

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

  • PassRate, FailRate а также PartiallySuccessfulRate столбцы десятичного числа.
  • TotalCount в Целое число.

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

Можно переименовать поля столбцов. Например, можно переименовать столбец 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 о тенденции изменения процента успешных запусков конвейеров.