Пример отчета о тренде скорости передачи конвейера
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
В этой статье показано, как создать отчет, показывающий тенденцию ежедневной передачи конвейера. Скорость передачи конвейера определяется как процент успешных запусков конвейера к общему объему выполнения конвейера. Он похож на диаграмму тренда скорости передачи конвейера. На следующем рисунке показан пример такой тенденции.
Внимание
Интеграция 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 Query
Перед созданием отчета необходимо развернуть столбцы, возвращающие записи, содержащие несколько полей. В этом экземпляре необходимо развернуть CompletedOn
столбец, чтобы он был неструктурированным CompletedOn.Date
.
Сведения о том, как развернуть рабочие элементы, см. в разделе "Аналитика преобразования" для создания отчетов Power BI.
Изменение типа данных столбца
В меню "Преобразование" измените тип данных для следующих столбцов. Сведения о том, как это сделать, см. в разделе "Преобразование типа данных столбца".
PassRate
,FailRate
а такжеPartiallySuccessfulRate
столбцы десятичного числа.TotalCount
Значение "Целое число".
(Необязательно) Переименование полей столбцов
Можно переименовать поля столбцов. Например, можно переименовать столбец Pipeline.PipelineName
в Pipeline Name
,или TotalCount
в Total Count
. Сведения о том, как это сделать, см. в разделе "Переименовать поля столбцов".
Закройте запрос и примените изменения
Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.
Создание отчета о графике
В Power BI в разделе "Визуализации" выберите отчет о графике.
Добавьте
CompletedOn.Date
в оси X. Щелкните правой кнопкой мыши поле и выберите CompletedOn.Date.Добавьте
PassRate
в ось Y и щелкните его правой кнопкой мыши, чтобы убедиться, что выбрана сумма .Чтобы изменить заголовок отчета, выберите значок "Формат визуальной кисти" в области "Визуализации ", выберите "Общие", разверните "Заголовок" и замените существующий текст.
На следующем рисунке показан итоговый отчет.