Примеры отчетов об сжигании спринта
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Диаграммы спринта сгорания полезны для отслеживания того, насколько хорошо команда выполняет план спринта. Несколько встроенных диаграмм и мини-приложений панели мониторинга поддерживают очистку спринта мониторинга. См. статью "Настройка и мониторинг спринта сгорание".
Однако можно настроить диаграмму спринта сгоревшего с помощью Аналитики и Power BI с помощью запросов, указанных в этой статье. В следующем примере показано сгорание пользовательских историй и их состояний.
Внимание
- Удаление путей области или перенастройка путей итерации приводит к необратимой потере данных. Например, диаграммы мини-приложений сгореть и спринта, а также диаграммы скорости для команд с измененными путями области не будут отображать точные данные. Исторические диаграммы трендов ссылаются на путь области и путь итерации, так как они были определены во время каждого рабочего элемента. После удаления вы не сможете получить исторические данные для этих путей.
- Вы можете удалять только области и пути итерации, которые больше не используются любыми рабочими элементами.
Дополнительные сведения о сожжении и сожжении, а также рекомендации по бернуну и сожжению.
Примечание.
В этой статье предполагается, что вы читаете обзор примеров отчетов с помощью запросов OData и имеет базовое представление о Power BI.
Необходимые компоненты
- Доступ. Быть членом проекта с по крайней мере базовым доступом.
- Разрешения. По умолчанию члены проекта имеют разрешение на запросы аналитики и создания представлений.
- Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий отслеживания данных см. в разделе "Разрешения и предварительные требования для доступа к аналитике".
Примеры запросов
Для получения исторических данных требуется выполнение запросов к набору WorkItemSnapshot
сущностей.
Примечание.
Сведения о доступных свойствах для фильтрации или отчета см . в справочнике по метаданным для Azure Boards. Вы можете отфильтровать запросы или возвращать свойства с помощью любого из Property
значенийEntityType
, доступных в разделе EntitySet
или NavigationPropertyBinding Path
значениях. Каждое EntitySet
соответствует .EntityType
Дополнительные сведения о типе данных каждого значения см. в метаданных, предоставленных для соответствующего EntityType
значения.
Истории пользователей burndown для пути к области и текущей итерации
Скопируйте и вставьте следующий запрос Power BI непосредственно в окно получения пустого запроса данных>. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
&"$apply=filter( "
&"WorkItemType eq 'User Story' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Строки подстановки и разбивка запросов
Замените следующие строки значениями. Не включайте скобки в подстановку {} . Например, если вашей организации присвоено имя Fabrikam, замените {organization}
на Fabrikam
, а не {Fabrikam}
.
{areapath}
— Путь к области. Пример формата:Project\Level1\Level2
.
Разбивка запросов
В следующей таблице описана каждая часть запроса.
Часть запроса
Description
$apply=filter(
Запуск фильтра()
WorkItemType eq 'User Story'
Сожжение в пользовательских историях
and startswith(Area/AreaPath,'{areapath}')
Рабочие элементы под определенным путем к области. Замена на возвращаемые Area/AreaPath eq '{areapath}'
элементы по определенному пути области.
Чтобы отфильтровать по имени команды, используйте инструкцию фильтра Teams/any(x:x/TeamName eq '{teamname})'
and StateCategory ne 'Completed'
Фильтрует завершенные элементы. Дополнительные сведения о категориях состояний см. в статье о том, как состояния рабочего процесса и категории состояний используются в невыполненных работах и советах.
and DateValue ge Iteration/StartDate
Начать тенденцию в начале итерации.
and DateValue le Iteration/EndDate
Конец тренда в конце итерации.
and Iteration/StartDate le now()
Выберите текущую итерацию.
and Iteration/EndDate ge now()
Выбор текущей итерации
)
Закрыть фильтр()
/groupby(
Запуск groupby()
(DateValue, State, WorkItemType, Priority, Area/AreaPath, Iteration/IterationPath),
Группа по DateValue (используется для тренда) и все поля, о которые вы хотите сообщить
aggregate($count as Count, StoryPoints with sum as TotalStoryPoints)
Агрегирование по количеству пользовательских историй и сумме точек истории
)
Close groupby()
Обгорение пользовательских историй для команды и текущей итерации
Этот запрос совпадает с используемым выше, за исключением фильтров по имени команды, а не по пути к области.
Скопируйте и вставьте следующий запрос Power BI непосредственно в окно получения пустого запроса данных>. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
&"$apply=filter( "
&"WorkItemType eq 'User Story' "
&"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Истории пользователей burndown для всех спринтов с начала года
Может потребоваться просмотреть сгорание всех спринтов в одном отчете. Эти запросы извлекают спринт сгорание и их по точкам истории, для всех спринтов с начала 2022 года.
Скопируйте и вставьте следующий запрос Power BI непосредственно в окно получения пустого запроса данных>. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
&"$apply=filter( "
&"WorkItemType eq 'User Story' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate ge 2022-01-01Z "
&") "
&"/groupby( "
&"(DateValue,Iteration/EndDate,Area/AreaPath,Iteration/IterationPath,State,WorkItemType,Priority,AreaSK), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Задачи очистки и оставшиеся трудозадаты
Скопируйте и вставьте следующий запрос Power BI непосредственно в окно получения пустого запроса данных>. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".
Doc-ready Power BI Query (anonymized)
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
&"$apply=filter( "
&"startswith(Area/AreaPath,'{project}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&"and WorkItemType eq 'Task' "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Activity,Priority,Area/AreaPath,Iteration/IterationPath,AreaSK), "
&"aggregate($count as Count, RemainingWork with sum as TotalRemainingWork) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Необязательно) Переименование запроса
Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя в области параметров запроса.
Разверните столбцы в Редактор Power Query
Перед созданием отчета необходимо развернуть столбцы, возвращающие записи, содержащие несколько полей. В этом экземпляре необходимо развернуть следующие записи:
Area
Iteration
AssignedTo
Сведения о том, как развернуть рабочие элементы, см. в разделе "Аналитика преобразования" для создания отчетов Power BI.
Закройте запрос и примените изменения
Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.
Создание отчета диаграммы с накоплением
В Power BI выберите отчет диаграммы с накоплением в разделе "Визуализации".
Добавьте
DateValue
в оси X, щелкните правой кнопкой мыши и выберитеDateValue
, а неDate Hierarchy
Добавьте
Count
в ось Y.Добавьте
State
в ось Y.
Пример отчета, в котором отображаются данные о точках истории и количестве историй.