Partilhar via


Consultar dados de tendências com agregação OData

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

Os dados analíticos armazenam instantâneos diários de cada item de trabalho em dois conjuntos de entidades separadas: WorkItemSnapshot (acompanha valores de campo como estado e esforço) e WorkItemBoardSnapshot (acompanha as posições das colunas do quadro). Como cada entidade contém uma linha por item de trabalho por dia, estas tabelas crescem rapidamente. Use extensões de agregação OData para filtrar por data e agrupar os resultados antes de devolver os dados a uma ferramenta cliente.

Este artigo mostra como construir consultas de tendência por intervalo de datas e por iteração, usando $apply com filter, groupby, e aggregate.

Observação

O serviço Analytics é automaticamente habilitado e suportado na produção para todos os serviços nos Serviços de DevOps do Azure. A integração do Power BI e o acesso ao feed OData do serviço Analytics estão geralmente disponíveis. Você é incentivado a usar o feed OData do Google Analytics e fornecer feedback.

Os dados disponíveis dependem da versão. A última versão suportada da API OData é v2.0, e a versão de visualização mais recente é v4.0-preview. Para obter mais informações, consulte o artigo Controlo de Versões da API OData.

Observação

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

Os dados disponíveis dependem da versão. A última versão suportada da API OData é v2.0, e a versão de visualização mais recente é v4.0-preview. Para obter mais informações, consulte o artigo Controlo de Versões da API OData.

Observação

Os exemplos apresentados neste artigo baseiam-se numa URL de Serviços DevOps do Azure. Substitua a URL do Servidor de DevOps do Azure conforme necessário.

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

Sugestão

Pode usar IA para ajudar nesta tarefa mais adiante neste artigo, ou consultar Habilitar assistência de IA com Azure DevOps MCP Server para começar.

Pré-requisitos

Categoria Requerimentos
Níveis de acesso - Membro do projeto.
- Pelo menos acesso básico .
Permissões Por padrão, os membros do projeto têm permissão para consultar o Google Analytics e criar modos de exibição. Para obter mais informações sobre outros pré-requisitos relacionados com a ativação de serviços e funcionalidades e atividades gerais de monitorização de dados, consulte Permissões e pré-requisitos para aceder ao Analytics.

Consultar dados de tendências por intervalo de datas

Ao consultar tabelas snapshot, siga dois requisitos:

  1. Filtrar por data — cada tabela contém uma linha por item de trabalho por dia, por isso uma consulta não filtrada devolve um conjunto de resultados muito grande.
  2. Agrupar por data — se omitir o agrupamento de datas, a resposta inclui um aviso.

A consulta seguinte devolve uma contagem diária de bugs por estado para março de 2016:

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

Devoluções:

{
  "value": [
    { "DateValue": "2016-03-01T00:00:00-08:00", "State": "Active", "Count": 2666 },
    { "DateValue": "2016-03-01T00:00:00-08:00", "State": "Closed", "Count": 51408 }
  ]
}

Esta consulta devolve no máximo 31 dias multiplicados pelo número de estados de erro (Ativo, Resolvido, Fechado) - no máximo 93 linhas, independentemente de quantos itens de trabalho existam.

Consultar dados de tendência por iteração

Em vez de codificar as datas fixamente, filtre por iteração e faça referência às datas de início e fim para que o intervalo de datas se ajuste automaticamente. A Iteration/EndDate eq null verificação trata das iterações que ainda não têm data final.

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

Devoluções:

{
  "value": [
    { "DateValue": "2016-04-04T00:00:00-07:00", "State": "Active", "Count": 320 },
    { "DateValue": "2016-04-04T00:00:00-07:00", "State": "Closed", "Count": 38 }
  ]
}

Observação

Se a sua consulta nas tabelas snapshot não incluir $apply ou $select, a resposta devolve um aviso. Use sempre agregação com conjuntos de entidades snapshot.

Use IA para construir consultas de tendência

Se configurar o Azure DevOps MCP Server, pode usar assistentes de IA para ajudar a construir e resolver problemas de consultas de tendências contra conjuntos de entidades snapshot.

Exemplos de sugestões

Tarefa Exemplo de prompt
Tendência de bugs por período de datas Write an OData trend query that shows the daily bug count by state over the last 30 days in <ProjectName>.
Instantâneo de sprint Create an OData query against WorkItemSnapshot that shows work item counts grouped by date for the current sprint in <ProjectName>.
Filtrar por iteração Generate an OData trend query that uses the iteration start and end dates from <IterationName> to show story point burndown in <ProjectName>.
Tendência das colunas de tabuleiro Write an OData query against WorkItemBoardSnapshot to track work items by board column over the past two weeks in <ProjectName> in the <OrganizationName> organization.
Otimize o desempenho My WorkItemSnapshot trend query for <ProjectName> is timing out. Suggest specific date filters and aggregation to reduce the row count without losing the key metrics.
Comparar sprints Create an OData trend query that compares bug counts between <SprintName> and the previous sprint in <ProjectName> in the <OrganizationName> organization.
Tendência de trabalho restante Write an OData trend query that shows the daily sum of remaining work grouped by Area Path for the current iteration in <ProjectName>.
Detetar alterações de estado Create an OData snapshot query that tracks how many work items moved from Active to Resolved each day over the past <NumberOfDays> days in <ProjectName>.
Análise de alterações de âmbito Generate an OData trend query that shows the daily count of user stories added or removed from <SprintName> by comparing WorkItemSnapshot data in <ProjectName>.

Sugestão

Se estiveres a usar Visual Studio Code, o modo agente é especialmente útil para iterar em consultas de tendências — refinar intervalos de datas, resolver $apply problemas de sintaxe e validar resultados de snapshots.

Próximo passo