Пример отчета о сбоях этапа конвейера

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

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

На следующем рисунке показан пример поэтапного отчета о сбоях для определенного конвейера с октября 2022 по 15 декабря 2022 года.

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

Внимание

Интеграция 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 BI, переименование запроса.

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

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

  • Развернуть PipelineJob в PipelineJob.StageName
  • Развернуть PipelineRunCompletedOn в PipelineRunCompletedOn.Date

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

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

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

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

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

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

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

Создание отчета диаграммы с накоплением

  1. В Power BI в разделе "Визуализации" выберите отчет диаграммы с накоплением. В следующем примере предполагается, что никто не переименовал столбцы.

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

  2. Добавьте PipelineRunCompletedOn.Date в ось X, щелкните его правой кнопкой мыши и выберите PipelineRunCompletedOn.Date, а не "Иерархия дат".

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

  4. Добавление PipelineJob.StageName в условные обозначения.

  5. Чтобы изменить название отчета, условные обозначения или другие визуальные элементы отчета, выберите значок "Формат визуальной кисти" в области "Визуализации " и настройте один или несколько параметров.

Отчет должен выглядеть примерно так, как показано на следующем рисунке.

Снимок экрана: пример поэтапного сбоя конвейеров Power BI с накоплением отчета о столбцах.