Compartilhar via


Agregar dados de acompanhamento de trabalho usando o Analytics

Azure DevOps Services | Servidor Azure DevOps | Azure DevOps Server 2022

Você pode agregar dados de acompanhamento de trabalho usando o Analytics com o OData de duas maneiras: usar $count para totais simples ou usar a extensão de agregação OData $apply para retornar resultados agrupados, filtrados e computados como JSON.

Dica

Você pode usar a IA para ajudar nessa tarefa mais adiante neste artigo ou consulte Ativar a assistência de IA com o Azure DevOps Server MCP para começar.

Este artigo baseia-se em Construir consultas OData para Análise e Definir consultas básicas usando o OData Analytics. Os exemplos se concentram nos dados do item de trabalho, mas os mesmos princípios se aplicam a outros conjuntos de entidades. Para consultas de contagem simples, consulte Obter uma contagem de itens.

Observação

O serviço de Análise é habilitado automaticamente e tem suporte na produção de todos os serviços no Azure DevOps Services. A integração do Power BI e o acesso ao feed OData do serviço de Análise estão disponíveis em geral. Você é incentivado a usar o feed OData do Analytics e fornecer comentários.

Os dados disponíveis dependem da versão. A versão mais recente com suporte da API OData é v2.0e a versão de versão prévia mais recente é v4.0-preview. Para obter mais informações, confira Sobre o controle de versão da API OData.

Observação

O serviço do Analytics é instalado automaticamente e tem suporte na produção para todas as novas coleções de projetos para Azure DevOps Server 2020 e versões posteriores. A integração do Power BI e o acesso ao feed OData do serviço de Análise estão disponíveis em geral. Você é incentivado a usar o feed OData do Analytics e fornecer comentários. Se você atualizar do Azure DevOps Server 2019, poderá instalar o serviço de Análise durante a atualização.

Os dados disponíveis dependem da versão. A versão mais recente com suporte da API OData é v2.0e a versão de versão prévia mais recente é v4.0-preview. Para obter mais informações, confira Sobre o controle de versão da API OData.

Pré-requisitos

Categoria Requisitos
níveis de acesso - membro do projeto.
– Pelo menos acesso Básico.
permissões de Por padrão, os membros do projeto têm permissão para consultar análises e criar visualizações. Para obter mais informações sobre outros pré-requisitos sobre a habilitação de serviços e recursos e atividades gerais de acompanhamento de dados, consulte Permissões e pré-requisitos para acessar o Analytics.

Sobre a extensão de agregação $apply

O OData fornece uma extensão de agregação que apresenta a palavra-chave $apply para agrupar, filtrar e calcular valores agregados em seus dados de acompanhamento de trabalho. As seções a seguir mostram como usar $apply com aggregate, groupbye filtercompute. Para obter a especificação completa, consulte a Extensão OData para Agregação de Dados.

Agregar dados usando $apply

Acrescente o $apply token à URL de consulta para disparar agregações. A sintaxe básica é:

/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})

Parâmetro Descrição
{entitySetName} A entidade definida para consulta, como WorkItems.
{columnToAggregate} O campo a ser agregado, como RemainingWork.
{aggregationType} A função de agregação: sum, , min, max, averageou countdistinct.
{newColumnName} O alias da coluna de resultados agregados.

Os exemplos a seguir mostram operações comuns aggregate .

Devolva a soma de todo o trabalho restante

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate(RemainingWork with sum as SumOfRemainingWork)

Retornar o último identificador de item de trabalho

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate(WorkItemId with max as MaxWorkItemId)

Agrupar resultados usando groupby

A groupby cláusula funciona como SQL GROUP BY – ela divide os resultados agregados por uma ou mais propriedades.

Contar itens de trabalho por tipo

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=groupby((WorkItemType), aggregate($count as Count))

Retorna um resultado como:

{
  "value": [
    { "WorkItemType": "Bug", "Count": 3 },
    { "WorkItemType": "Product Backlog Item", "Count": 13 }
  ]
}

Agrupar por várias propriedades

Adicione mais propriedades dentro dos groupby parênteses para criar divisões mais refinadas:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=groupby((WorkItemType, State), aggregate($count as Count))

Retorna uma linha para cada combinação exclusiva de tipo e estado (por exemplo, Bug/Ativo, Bug/Confirmado, Item de Pendência do Produto/Ativo).

Agrupar em várias entidades

Você pode agrupar entre entidades relacionadas usando propriedades de navegação. Por exemplo, para contar áreas por projeto:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
  $apply=groupby((Project/ProjectName), aggregate($count as Count))

Filtrar resultados agregados

Use filter() dentro $apply para restringir dados antes ou depois da agregação. Encadeia vários filtros usando / (pipe) e coloque o filtro mais seletivo primeiro para melhor desempenho.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=
    filter(Iteration/IterationName eq 'Sprint 89')/
    filter(WorkItemType eq 'User Story')/
    groupby((State), aggregate($count as Count))

Observação

A groupby cláusula é opcional. Use aggregate sozinho para retornar um único valor.

Agregar vários campos em uma única chamada

Liste vários campos dentro de uma única aggregate cláusula, separados por vírgulas, para evitar viagens de ida e volta extras.

/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)

Retorna:

{
  "value": [
    { "SumOfCompletedWork": 1525841.29, "SumOfRemainingWork": 73842.39 }
  ]
}

Calcule propriedades calculadas

Direcione os resultados agregados para compute() para derivar novos valores usando expressões aritméticas (div, add, sub, mul). O exemplo a seguir calcula o percentual de trabalho concluído:

/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)/compute(SumOfCompletedWork div (SumOfCompletedWork add SumOfRemainingWork) as DonePercentage)

Retorna:

{
  "value": [
    { "DonePercentage": 0.9676, "SumOfCompletedWork": 1514698.34, "SumOfRemainingWork": 50715.95 }
  ]
}

Criar uma consulta de diagrama de fluxo cumulativo

A consulta a seguir combina filter, groupbye aggregate em relação à WorkItemBoardSnapshot entidade definida para produzir dados para um diagrama de fluxo cumulativo no Power BI ou excel.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItemBoardSnapshot?
  $apply=
    filter(DateValue gt 2015-07-16Z and DateValue le 2015-08-16Z)/
    filter(BoardName eq 'Stories' and Team/TeamName eq '{teamName}')/
    groupby((DateValue, ColumnName), aggregate(Count with sum as Count))
  &$orderby=DateValue

Essa consulta filtra por um intervalo de datas e uma equipe e um quadro específicos, agrupa por data e coluna do quadro e retorna uma contagem por grupo. Retorna:

{
  "value": [
    { "DateValue": "2015-07-16T00:00:00-07:00", "ColumnName": "Completed", "Count": 324 },
    { "DateValue": "2015-07-16T00:00:00-07:00", "ColumnName": "In Progress", "Count": 5 }
  ]
}

Dica

Quanto menos linhas forem retornadas, mais rápido o Power BI ou o Excel será atualizado. Use intervalos de datas restritos e filtros específicos de quadro e equipe para minimizar o conjunto de resultados.

Usar a IA para agregar dados de acompanhamento de trabalho

Se você configurar o Servidor MCP do Azure DevOps, poderá pedir ao assistente de IA para recuperar dados de item de trabalho em tempo real de sua organização do Azure DevOps e ajudá-lo a elaborar ou solucionar problemas de consultas de agregação OData $apply do Analytics com base nesses dados.

Tarefa Prompt de exemplo
Contagem por estado In <OrganizationName>, draft an Analytics OData $apply query that counts work items grouped by State in <ProjectName>. Use placeholders for <ODataVersion> and any filters I need.
Contar por tipo e estado Create an Analytics OData $apply query for <OrganizationName> that groups WorkItems by WorkItemType and State and returns a count for each group in <ProjectName>.
Filtrar e agregar Write an Analytics OData query that filters WorkItems to bugs with Priority = 1 in <ProjectName>, then groups by Area/AreaPath and State and returns counts.
Soma restante e trabalho concluído Generate an Analytics OData $apply query that filters to Iteration/IterationPath startswith '<IterationPath>' in <ProjectName>, then returns SumOfCompletedWork and SumOfRemainingWork.
Agregar entre equipes Help me create an Analytics OData $apply query for WorkItemBoardSnapshot that filters to BoardName '<BoardName>' and Team/TeamName '<TeamName>' in <ProjectName>, then groups by DateValue and ColumnName and returns Count.
Explicar cada cláusula Explain what each part of this $apply query does and how to adjust it for a different iteration: <ODataQueryOrUrl>.
Depurar erros de $apply This Analytics OData query returns a 400 error. Diagnose the $apply syntax and suggest a corrected query: <ODataQueryOrUrl>.
Validar resultados Given this Analytics OData query for <OrganizationName>/<ProjectName>: <ODataQueryOrUrl>, tell me what columns and shape of JSON to expect back, and what common mistakes to check if results look wrong.

Dica

Se você estiver usando o Visual Studio Code, o modo de agente será especialmente útil para realizar iterações sobre consultas de agregação: refinar filtros, solucionar a sintaxe $apply e validar resultados.

Próxima etapa