Пример отчета о сбоях этапа конвейера
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.
Примеры запросов
Отчеты о тенденциях на этапе, задаче или задании PipelineRunActivityResults
можно создать путем запроса набора сущностей.
Примечание.
Сведения о доступных свойствах для фильтрации или отчета см . в справочнике по метаданным для 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/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and PipelineRunOutcome eq 'Failed' "
&"and TaskOutcome eq 'Failed' "
&") "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ), "
&"aggregate (FailedCount with sum as FailedCount)) "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineJob/StageName ), "
&"aggregate "
&"(cast(FailedCount gt 0, Edm.Int32) with sum as FailedStageCount)) "
,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 PipelineRunCompletedOn/Date ge {startdate}
Возвращайте результаты задачи для выполнения конвейера в течение указанной даты или после нее.
and PipelineRunOutcome eq 'Failed'
Возвращает результаты задачи, в которых результат сборки завершается ошибкой.
and TaskOutcome eq 'Failed'
Возвращает результаты задачи, в которых результат задачи завершается ошибкой.
)
Закрыть filter
предложение.
/groupby(
Предложение Start groupby()
.
(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/StageName ),
Группировать по дате завершения выполнения конвейера, идентификатора сборки и имени этапа.
aggregate (FailedCount with sum as FailedCount))
Для каждого дня, идентификатора сборки и этапа; подсчитывает общее количество сбоев. Это будет общее количество сбоев задач, а не этапов сбоев.
/groupby(
Предложение Start groupby()
.
(PipelineRunCompletedOn/Date, PipelineJob/StageName ),
Группировать по дням и имени сцены.
aggregate
Предложение Start aggregate
.
(cast(FailedCount gt 0, Edm.Int32) with sum as FailedStageCount))
В течение каждого дня суммируете количество неудачных попыток этапа, а затем закройте aggregate
предложение.
Тенденция к мудрому сбою задачи
Чтобы просмотреть тенденцию мудрого сбоя задачи, используйте следующие запросы.
Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and PipelineRunOutcome eq 'Failed' "
&"and TaskOutcome eq 'Failed' "
&") "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, TaskDisplayName), "
&"aggregate "
&"(FailedCount with sum as FailedCount)) "
,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/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and PipelineRunOutcome eq 'Failed' "
&"and TaskOutcome eq 'Failed' "
&") "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineRunId, PipelineJob/JobName ), "
&"aggregate (FailedCount with sum as FailedCount)) "
&"/groupby( "
&"(PipelineRunCompletedOn/Date, PipelineJob/JobName ), "
&"aggregate "
&"(cast(FailedCount gt 0, Edm.Int32) with sum as FailedJobCount)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Необязательно) Переименование запроса
Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя в области параметров запроса.
Разверните столбцы в Редактор Power Query
Перед созданием отчета необходимо развернуть следующие два столбца. Сведения о том, как развернуть рабочие элементы, см. в разделе "Аналитика преобразования" для создания отчетов Power BI.
- Развернуть
PipelineJob
вPipelineJob.StageName
- Развернуть
PipelineRunCompletedOn
вPipelineRunCompletedOn.Date
Изменение типа данных столбца
В меню "Преобразование" измените тип данных для столбца FailedStageCount
на целое число. Сведения о том, как это сделать, см. в разделе "Преобразование типа данных столбца".
(Необязательно) Переименование полей столбцов
Вы можете переименовать поля столбцов в те, которые более понятны для пользователя. Например, можно переименовать столбец Pipeline.PipelineName
в Pipeline Name
,или TotalCount
в Total Count
. Сведения о том, как это сделать, см. в разделе "Переименовать поля столбцов".
Закройте запрос и примените изменения
Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.
Создание отчета диаграммы с накоплением
В Power BI в разделе "Визуализации" выберите отчет диаграммы с накоплением. В следующем примере предполагается, что никто не переименовал столбцы.
Добавьте
PipelineRunCompletedOn.Date
в ось X, щелкните его правой кнопкой мыши и выберите PipelineRunCompletedOn.Date, а не "Иерархия дат".Добавьте
FailedStagedCount
его в ось Y правой кнопкой мыши и убедитесь, что выбрана сумма.Добавление
PipelineJob.StageName
в условные обозначения.Чтобы изменить название отчета, условные обозначения или другие визуальные элементы отчета, выберите значок "Формат визуальной кисти" в области "Визуализации " и настройте один или несколько параметров.
Отчет должен выглядеть примерно так, как показано на следующем рисунке.