Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
В этой статье показано, как получить длительность конвейера или время выполнения конвейера. Этот отчет похож на сводную метрику длительности в диаграмме "Длительность конвейера" отчета о длительности конвейера.
На следующем рисунке показан пример отчета о длительности для всех запусков определенного конвейера с сентября 2022 по 15 декабря 2022 года.
Внимание
Интеграция 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
&") "
&"/compute( "
&"percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
,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 (SucceededCount eq 1 or PartiallySucceededCount eq 1)
Возвращает только успешные или частично успешные запуски.
)
Закрыть filter()
пункт.
/compute(
Начать compute()
предложение.
percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,
Вычислите 50-й процентиль длительности конвейера всех запусков конвейера, которые соответствуют критериям фильтра.
percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,
Вычислите 80-й процентиль длительности конвейера всех запусков конвейера, которые соответствуют критериям фильтра.
percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)
Вычислите 95-й процентиль длительности конвейера всех запусков конвейера, соответствующих критериям фильтра.
/groupby(
Начать groupby()
предложение.
(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))
Сгруппировать ответ по Duration50thPercentileInSeconds
, Duration80thPercentileInSeconds
и Duration95thPercentileInSeconds
и завершить условие groupby
.
Длительность возврата процентиля для указанного идентификатора конвейера
Конвейеры можно переименовать. Чтобы убедиться, что отчеты 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
&") "
&"/compute( "
&"percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Возвращайте длительности процентилей для указанного конвейера, отфильтруйте по ветке
Чтобы просмотреть длительность конвейера только для определенной ветви , используйте следующие запросы. Чтобы создать отчет, выполните следующие дополнительные действия, а также то, что описано в разделе "Изменение типа данных столбца" и "Создание секций отчета с кластеризованной диаграммой столбцов".
- Разверните
Branch
вBranch.BranchName
. - Добавьте поле Branch.BranchName в ось X.
Скопируйте и вставьте следующий запрос 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
&") "
&"/compute( "
&"percentile_cont(TotalDurationSeconds, 0.5, BranchSK) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8, BranchSK) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95, BranchSK) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Branch/BranchName)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Возвращать длительность процентиля для всех конвейеров проекта
Чтобы просмотреть длительность всех конвейеров проекта в одном отчете, используйте следующие запросы. Чтобы создать отчет, выполните следующие дополнительные действия, а также то, что описано в разделе "Изменение типа данных столбца" и "Создание секций отчета с кластеризованной диаграммой столбцов".
- Разверните
Pipeline
вPipeline.PipelineName
. - Добавьте поле PIpeline.PipelineName в ось X.
См. также сводку результатов для всех конвейеров для примера отчета, который содержит подробные инструкции, описанные здесь.
Скопируйте и вставьте следующий запрос 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 (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
&" ) "
&"/compute( "
&"percentile_cont(TotalDurationSeconds, 0.5, PipelineId) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8, PipelineId) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95, PipelineId) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Pipeline/PipelineName)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Изменение типа данных столбца
В меню "Преобразование" измените тип данных для следующих столбцов на десятичное число. Сведения о том, как это сделать, см. в разделе "Преобразование типа данных столбца".
Duration50thPercentileInSeconds
Duration80thPercentileInSeconds
Duration95thPercentileInSeconds
(Необязательно) Переименование полей столбцов
Можно переименовать поля столбцов. Например, можно переименовать столбец Pipeline.PipelineName
в Pipeline Name
,или TotalCount
в Total Count
. Сведения о том, как это сделать, см. в разделе "Переименовать поля столбцов".
Закройте запрос и примените изменения
Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.
Создание отчета о кластеризованной диаграмме столбцов
В Power BI в разделе "Визуализации" выберите отчет о кластеризованной диаграмме столбцов . В примере предполагается, что столбцы не были переименованы.
Добавьте следующие поля в ось Y, щелкните правой кнопкой мыши каждое поле и убедитесь, что выбрано значение Sum.
Duration50thPercentileInSeconds
Duration80thPercentileInSeconds
Duration95thPercentileInSeconds
Чтобы изменить название отчета, условные обозначения или другие визуальные элементы отчета, выберите значок "Формат визуальной кисти" в области "Визуализации " и настройте один или несколько параметров.
Отчет должен выглядеть примерно так, как показано на следующем рисунке.