Share via


Consultar dados de acompanhamento de trabalho usando o Analytics

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Você pode consultar seus dados de controle de trabalho do Azure DevOps usando as consultas básicas fornecidas neste artigo. Essas consultas atendem às necessidades diárias e, ao mesmo tempo, demonstram vários recursos do Google Analytics. Você pode adaptar a maioria dessas consultas para atender às suas necessidades.

Este artigo baseia-se nas informações fornecidas em Construir consultas OData para referência de Análise e Metadados para o Azure Boards Analytics.

Observação

O serviço Analytics é automaticamente habilitado e suportado na produção para todos os Serviços de DevOps do Azure. A integração do Power BI e o acesso ao feed OData do Serviço de Análise estão disponíveis para o público em geral. Nós encorajamos você a usá-lo e nos dar feedback. Os dados disponíveis dependem da versão. A versão mais recente suportada é v2.0, e a versão de visualização mais recente é v4.0-preview. Para obter mais informações, consulte Controle de versão da API OData.

Observação

O serviço Analytics é automaticamente instalado e suportado na produção para todas as novas coleções de projetos do 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 para o público em geral. Nós encorajamos você a usá-lo e nos dar feedback. Se você atualizou do Azure DevOps Server 2019, poderá instalar o serviço do Google Analytics durante a atualização.

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

Observação

O serviço Analytics está em pré-visualização para o Azure DevOps Server 2019. Você pode habilitá-lo ou instalá-lo para uma coleção de projeto. A integração do Power BI e o acesso ao feed OData do Serviço de Análise estão em Pré-visualização. Nós encorajamos você a usá-lo e nos dar feedback.

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

Pré-requisitos

  • Para exibir dados do Analytics e consultar o serviço, você precisa ser membro de um projeto com acesso básico ou superior. Por padrão, todos os membros do projeto recebem permissões para consultar Análise e definir exibições do Analytics.
  • Para saber mais sobre outros pré-requisitos relacionados à habilitação de serviços e recursos e atividades gerais de acompanhamento de dados, consulte Permissões e pré-requisitos para acessar o Analytics.

Todos os exemplos têm como escopo um projeto no Azure DevOps. Para obter exemplos de escopo no nível da organização ou do Servidor de DevOps do Azure, consulte Consultas de escopo de projeto e escopo da organização.

Dica

Você pode usar a extensão WIQL para OData do Azure DevOps Marketplace para gerar rapidamente uma consulta OData com base em uma consulta de item de trabalho na página Consultas . Esta extensão suporta a conversão de lista simples de itens de trabalho e itens de trabalho e links diretos. As extensões não são recursos com suporte do Azure Boards e, portanto, não são suportados pela equipe do produto. Para perguntas, sugestões ou problemas que você tem ao usar essas extensões, visite a página de extensão correspondente.

Filtrar itens de trabalho com base em uma Data Alterada

Você consulta o conjunto de WorkItems entidades para listar itens de trabalho que atendem aos critérios de campo.

A consulta a seguir retorna itens de lista de pendências do produto, bugs e recursos que têm uma data alterada maior que 12 de dezembro de 2021.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
  $select=WorkItemId, WorkItemType, Title, State 
  &$expand=AssignedTo($select=UserEmail)
  &$filter=(Project/ProjectName eq 'Fabrikam Fiber'
    AND (WorkItemType eq 'Product Backlog Item' or WorkItemType eq 'Bug' or WorkItemType eq 'Feature')
    AND ChangedOn/Date ge 2021-12-16T23:44:15.619Z)
  &$orderby=WorkItemType desc 

Filtrar itens de trabalho com base na Área

Você pode modificar a consulta a seguir para listar todos os itens de trabalho em um caminho de área específico.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Area/AreaPath eq '{area path}'
  &$select=WorkItemId, Title, State

Exemplo de consulta:

Por exemplo, a sintaxe a seguir consulta a contagem de itens de trabalho para cada projeto definido para a organização fabrikam .

https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$apply=groupby((Project/ProjectName), aggregate($count as Count))

Exemplo de resposta:

E a resposta retorna dados para os cinco projetos a seguir.

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(Project(ProjectName),Count)",
   "value":[
      {
         "@odata.id":null,
         "Count":2,
         "Project":{
            "@odata.id":null,
            "ProjectName":"Basic Fabrikam"
         }
      },
      {
         "@odata.id":null,
         "Count":19,
         "Project":{
            "@odata.id":null,
            "ProjectName":"Demo 11"
         }
      },
      {
         "@odata.id":null,
         "Count":188,
         "Project":{
            "@odata.id":null,
            "ProjectName":"Fabrikam Fiber"
         }
      },
      {
         "@odata.id":null,
         "Count":89,
         "Project":{
            "@odata.id":null,
            "ProjectName":"MyFirstProject"
         }
      },
      {
         "@odata.id":null,
         "Count":2,
         "Project":{
            "@odata.id":null,
            "ProjectName":"MyPublicProject"
         }
      }
   ]
}

Filtrar itens de trabalho com base na Iteração

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Iteration/IterationPath eq '{iteration path}'
  &$select=WorkItemId, Title, State

Exemplo de consulta:

Por exemplo, a sintaxe a seguir consulta itens de trabalho para o projeto Fabrikam Fiber em Iteration Path=Fabrikam Fiber\Release 1\Sprint 6.

https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$select=WorkItemId, WorkItemType, Title, State&$expand=Iteration($select=IterationPath)&$filter=(Project/ProjectName eq 'Fabrikam Fiber' AND WorkItemType ne '' AND Iteration/IterationPath eq 'Fabrikam Fiber\Release 1\Sprint 6')

Exemplo de resposta:

E a resposta retorna dados para os quatro itens de trabalho a seguir.

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration(IterationPath))",
   "value":[
      {
         "WorkItemId":361,
         "Title":"Hello World Web Site",
         "WorkItemType":"Product Backlog Item",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      },
      {
         "WorkItemId":1126,
         "Title":"web site task",
         "WorkItemType":"Task",
         "State":"To Do",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      },
      {
         "WorkItemId":1136,
         "Title":"Add a new task with two new tags",
         "WorkItemType":"Task",
         "State":"To Do",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      },
      {
         "WorkItemId":1140,
         "Title":"New task - test for Blocked",
         "WorkItemType":"Task",
         "State":"To Do",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      }
   ]
}

Recuperar itens para uma iteração

Você pode recuperar todos os itens de trabalho para uma determinada iteração que se enquadram entre o primeiro dia da iteração e o último dia da iteração. Aqui, sua consulta é restrita pelos dados contidos nos dados de controle de trabalho.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Iteration/IterationPath eq '{iteration path}' 
    and ChangedDate ge Iteration/StartDate 
    and ChangedDate le Iteration/EndDate
  &$select=WorkItemId, Title, State

Filtrar itens de trabalho que contêm marcas específicas

O operador any é usado aqui porque há uma coleção de tags que podem ser associadas a um item de trabalho. De uma perspectiva de uso, o formato é: {Navigation Property}/any(d:d/{Field Name} {operator} {expression}). Qualquer item não cercado por colchetes ({}) é um literal. Existem algumas variações. Por exemplo, você não precisa usar "d" como usado na expressão acima. Seguir este formato mantém a simplicidade.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Tags/any(d:d/TagName eq '{tag name}')
  &$select=WorkItemId, Title, State

Filtrar itens de trabalho para uma equipe específica

Use a consulta a seguir para listar itens de trabalho para uma equipe específica.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Teams/any(d:d/TeamName eq '{team name}')
  &$select=WorkItemId, Title, State

Filtrar itens de trabalho com base em um campo que já tenha um valor específico

A consulta a seguir é semelhante a uma consulta de item de trabalho que usa o operador Was Ever .

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=WorkItemType eq '{Type}'
     and Revisions/any(r:r/ResolvedBy/UserName eq '{User}') 

Exemplo de consulta:

A consulta a seguir retorna os itens de trabalho que já foram atribuídos a Jamal Hartnett cujo email é 'fabrikamfiber4@hotmail.com' para o projeto Fabrikam Fiber .

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?
  $select=WorkItemType, Title, State, 
  &$expand=AssignedTo($select=UserEmail), Area($select=AreaPath)
  &$filter=(WorkItemType ne '' AND State ne '' AND Revisions/any(r:r/AssignedTo/UserEmail eq 'fabrikamfiber4@hotmail.com'))
  &$orderby=WorkItemType asc

Exemplo de resposta:

A resposta retorna dois itens de trabalho.

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/Design%20Agile/_odata/v4.0-preview/$metadata#WorkItems(Priority,WorkItemType,Title,State,TagNames,AssignedTo(UserEmail),Area(AreaPath))",
   "value":[
      {
         "Title":"New home page design",
         "WorkItemType":"Feature",
         "State":"Closed",
         "AssignedTo":{
            "UserEmail":"fabrikamfiber4@hotmail.com"
         },
         "Area":{
            "AreaPath":"Design Agile"
         }
      },
      {
         "Title":"Check performance",
         "WorkItemType":"User Story",
         "State":"New",
         "AssignedTo":{
            "UserEmail":"fabrikamfiber4@hotmail.com"
         },
         "Area":{
            "AreaPath":"Design Agile"
         }
      }
   ]
}

Recuperar as equipes atribuídas em um Caminho de Área

A consulta a seguir retorna os nomes das equipes atribuídas aos caminhos de área na área Gerenciamento de Contas do projeto Fabrikam Fibra .

> https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/Areas?
>      $filter=startswith(AreaPath,'Fabrikam Fiber\Account Management')
>      &$select=AreaPath&$expand=Teams($select=TeamName)
>```
The response returns three area paths and the names of several teams assigned to each. 

> [!div class="tabbedCodeSnippets"]
```OData
> @odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Areas(AreaPath,Teams(TeamName))"
> value	
> 0	
>   AreaPath             "Fabrikam Fiber\\Account Management\\Customer Profile"
>   Teams	
>       0	
>           TeamName     "Organization Management"
>       1	
>           TeamName     "Fabrikam Team"
>       2	
>           TeamName     "Customer Profile"
> 1	
>   AreaPath             "Fabrikam Fiber\\Account Management\\Shopping Cart"
>   Teams	
>       0	
>           TeamName     "Organization Management"
>       1	
>           TeamName     "Shopping Cart"
>       2	
>           TeamName     "Fabrikam Team"
> 2	
>   AreaPath             "Fabrikam Fiber\\Account Management"
>   Teams	
>       0	
>           TeamName     "Organization Management"
>       1	
>           TeamName     "Fabrikam Team"

Retornar o histórico de um item de trabalho específico

Você consulta o conjunto de entidades para listar o WorkItemRevisions histórico do item de trabalho. A consulta a seguir retorna o valor do Título, Estado e Caminho de Iteração para cada revisão de um item de trabalho especificado.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItemRevisions?
  $filter=WorkItemId eq {Id}
  &$select=WorkItemId, Title, State, Iteration Path

Observação

Sempre que uma alteração é feita em um item de trabalho, incluindo uma alteração no valor de classificação da pilha, uma revisão é criada. Para saber mais sobre dados históricos, consulte Aplicando filtros a dados históricos.

Exemplo de consulta:

Por exemplo, a sintaxe a seguir consulta revisões para ID=1145 no projeto Fabrikam Fiber.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItemRevisions?$select=WorkItemId, Title, State&$expand=Iteration($select=IterationPath)&$filter=(Project/ProjectName eq 'Fabrikam Fiber' AND WorkItemId eq 1145 AND State ne '' AND Revision gt 1)

Exemplo de resposta:

E a resposta retorna dados para as quatro revisões:

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItemRevisions(WorkItemId,Title,State,Iteration(IterationPath))",
   "value":[
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Future"
         }
      },
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Future"
         }
      },
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 2"
         }
      },
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"Done",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 2"
         }
      }
   ]
}