Запрос на создание тенденции по данным

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Изучение тенденций в данных и создание сравнения за период являются важными аспектами анализа отчетов и данных. Аналитика поддерживает эти возможности.

Примечание.

Служба Аналитики автоматически включается и поддерживается в рабочей среде для всех Служб Azure DevOps Services. Интеграция Power BI и доступ к веб-каналуOData службы Аналитики общедоступны. Мы рекомендуем вам использовать его и дать нам отзыв. Доступные данные зависят от версий. Последняя поддерживаемая версия: v2.0последняя предварительная версия v4.0-preview. Дополнительные сведения см. в разделе "Управление версиями API OData".

Примечание.

Служба Аналитики автоматически устанавливается и поддерживается в рабочей среде для всех новых коллекций проектов для Azure DevOps Server 2020 и более поздних версий. Интеграция Power BI и доступ к веб-каналуOData службы Аналитики общедоступны. Мы рекомендуем вам использовать его и дать нам отзыв. При обновлении с Azure DevOps Server 2019 можно установить службу Аналитики во время обновления.

Доступные данные зависят от версий. Последняя поддерживаемая версия: v2.0последняя предварительная версия v4.0-preview. Дополнительные сведения см. в разделе "Управление версиями API OData".

Примечание.

Служба Аналитики доступна в предварительной версии для Azure DevOps Server 2019. Его можно включить или установить для коллекции проектов. Интеграция Power BI и доступ к веб-каналуOData службы аналитики находятся в предварительной версии. Мы рекомендуем вам использовать его и дать нам отзыв.

Доступные данные зависят от версий. Последняя поддерживаемая версия: v2.0последняя предварительная версия v4.0-preview. Дополнительные сведения см. в разделе "Управление версиями API OData".

Данные тренда предоставляются в наборах сущностей WorkItemSnapshot и WorkItemBoardSnapshot. Они создаются так, что каждый рабочий элемент, с момента его создания до сегодняшнего дня, существует для каждого дня. Для организации с одним рабочим элементом, созданным годом назад, в этой сущности существует 365 строк. Для крупных проектов эти сущности будут непрактичными для использования с клиентскими инструментами.

Что из себя представляет это решение? Используйте расширения агрегирования.

В этой статье вы узнаете:

  • Создание базового запроса к данным тренда

С помощью расширений агрегирования OData можно возвращать агрегированные данные из Azure DevOps, которые способствуют созданию отчетов. Например, можно показать тенденцию ошибок в течение марта. Тенденции ошибок являются распространенной и важной частью управления любым проектом, чтобы вы могли сразу же использовать его.

Примечание.

Примеры, показанные в этом документе, основаны на URL-адресе Azure DevOps Services, вам потребуется заменить URL-адрес сервера Azure DevOps.

https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/

Создание базового запроса для данных тренда

Существуют некоторые основные требования, необходимые для эффективного запроса к таблице WorkItemSnapshot:

  • Отфильтруйте данные по дате.
  • Агрегирование должно группироваться по крайней мере датой. В противном случае ответ будет предупреждать.

Запрос на создание отчета о тренде ошибки выглядит следующим образом:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
  $apply=
    filter(DateValue ge 2016-03-01Z and DateValue le 2016-03-31Z and WorkItemType eq 'Bug')/
    groupby((DateValue,State), aggregate($count as Count))
  &$orderby=DateValue

Он возвращает результат, аналогичный следующему примеру:

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
  "value": [
    {
      "@odata.id": null,
      "State": "Active",
      "DateValue": "2016-03-01T00:00:00-08:00",
      "Count": 2666
    },
    {
      "@odata.id": null,
      "State": "Closed",
      "DateValue": "2016-03-01T00:00:00-08:00",
      "Count": 51408
    }
  ]
}

Этот запрос будет производиться в большинстве 31 * (number of bug states)случаев. Ошибка по умолчанию имеет три состояния:

  • Активно
  • "Разрешено"
  • Закрытые

В большинстве случаев этот запрос возвращает 93 строки независимо от того, сколько тысяч записей фактически существует. Она обеспечивает гораздо более компактную форму возврата данных.

Рассмотрим вариант в этом примере. Вы хотите увидеть тенденцию ошибки для итерации или выпуска, который начинается с одной итерации и заканчивается другой.

Чтобы создать этот запрос, сделайте следующее:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
  $apply=
    filter(WorkItemType eq 'Bug')/
    filter(Iteration/IterationName eq 'Sprint 99')/
    filter(DateValue ge Iteration/StartDate and (Iteration/EndDate eq null or DateValue le Iteration/EndDate))/
    groupby((DateValue, State), aggregate($count as Count))
  &$orderby=DateValue

Он возвращает результат, аналогичный следующему примеру:

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
  "value": [
    {
      "@odata.id": null,
      "State": "Active",
      "DateValue": "2016-04-04T00:00:00-07:00",
      "Count": 320
    },
    {
      "@odata.id": null,
      "State": "Closed",
      "DateValue": "2016-04-04T00:00:00-07:00",
      "Count": 38
    }
  ]
}

В этом запросе есть два ключевых отличия. Мы добавили предложение фильтра, чтобы отфильтровать данные до определенной итерации, и даты теперь сравниваются с датами начала и окончания итерации и датами жестко закодированных.

Примечание.

Если агрегат не используется в запросе в таблицах моментальных снимков, в ответе появится предупреждение "Указанный запрос не содержит предложение $select или $apply, которое рекомендуется для всех запросов".