Compartilhar via


Agregar dados de acompanhamento de trabalho usando o Analytics

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

Você pode obter uma soma de seus dados de acompanhamento de trabalho de duas maneiras usando o Analytics com OData. O primeiro método retorna uma contagem simples de itens de trabalho com base em sua consulta OData. O segundo método retorna um resultado formatado em JSON com base em sua consulta OData que exerce a Extensão de Agregação OData.

Este artigo se baseia nas informações fornecidas em Construir consultas OData para o Analytics e Definir consultas básicas usando o OData Analytics. Além disso, as consultas neste artigo se concentram na recuperação de dados de item de trabalho, no entanto, os princípios se aplicam à consulta de outros conjuntos de entidades.

Neste artigo, você aprenderá sobre:

  • Sobre a extensão de agregação OData
  • Como usar a Extensão de Agregação para OData
  • Como agrupar e filtrar resultados agregados
  • Como agregar dados para gerar um diagrama de fluxo cumulativo

Para saber como gerar contagens simples, consulte Retornar uma contagem de itens (sem outros dados) e Retornar uma contagem de itens e dados.

Observação

O serviço do Analytics é habilitado automaticamente e tem suporte na produção para todos os Azure DevOps Services. A integração do Power BI e o acesso ao feed OData do serviço do Analytics estão em disponibilidade geral. Encorajamos você a usá-lo e nos dar feedback. Os dados disponíveis dependem da versão. A versão mais recente com suporte é v2.0, e a 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 do Analytics estão em disponibilidade geral. Encorajamos você a usá-lo e nos dar feedback. Se você atualizou de Azure DevOps Server 2019, poderá instalar o serviço do Analytics durante a atualização.

Os dados disponíveis dependem da versão. A versão mais recente com suporte é v2.0, e a 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 está em versão prévia para Azure DevOps Server 2019. Você pode habilitá-lo ou instalá-lo para uma coleção de projetos. A integração do Power BI e o acesso ao feed OData do serviço do Analytics estão em versão prévia. Encorajamos você a usá-lo e nos dar feedback.

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

O que é a Extensão de Agregação para OData?

O Analytics depende do OData para criar consultas sobre seus dados de acompanhamento de trabalho. As agregações no OData são obtidas usando uma extensão que introduz a $apply palavra-chave. Temos alguns exemplos de como usar essa palavra-chave abaixo. Saiba mais sobre a extensão em Extensão OData para Agregação de Dados.

Agregar dados usando a extensão de agregação OData

Agora que você viu como fazer contagens simples, vamos examinar como disparar agregações usando o $apply token em que o formato básico no final da URL é o seguinte:

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

Em que:

  • {entitySetName} é a entidade que precisa ser consultada para
  • {columnToAggregate} é a coluna de agregação
  • {aggregationType} especificará o tipo de agregação usada
  • {newColumnName} especifica o nome da coluna com valores após a agregação.

Dados agregados usando a extensão apply

Usando a $apply extensão, você pode obter contagens, somas e informações adicionais ao consultar seus dados de acompanhamento de trabalho.

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 a cláusula groupby

A extensão de agregação OData também dá suporte a uma groupby cláusula idêntica à cláusula SQL GROUP BY . Você pode usar essa cláusula para dividir rapidamente os números com mais detalhes.

Por exemplo, a cláusula a seguir retorna uma contagem de itens de trabalho:

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

Adicione a groupby cláusula para retornar uma contagem de itens de trabalho por tipo:

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

Ele retorna um resultado semelhante a este exemplo:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(WorkItemType,Count)","value":[
    {
      "@odata.id":null,"WorkItemType":"Bug","Count":3
    },
    {
      "@odata.id":null,"WorkItemType":"Product Backlog Item","Count":13
    }
  ]
}

Você também pode agrupar por várias propriedades, como neste exemplo:

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

Ele retorna um resultado semelhante a este exemplo:

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(WorkItemType,State,Count)",
  "value": [
    {
      "@odata.id": null,
      "State": "Active",
      "WorkItemType": "Bug",
      "Count": 2
    },
    {
      "@odata.id": null,
      "State": "Committed",
      "WorkItemType": "Bug",
      "Count": 1
    },
    {
      "@odata.id": null,
      "State": "Active",
      "WorkItemType": "Product Backlog Item",
      "Count": 5
    },
    {
      "@odata.id": null,
      "State": "Committed",
      "WorkItemType": "Product Backlog Item",
      "Count": 8
    }
  ]
}

Você também pode agrupar entre entidades, no entanto, o agrupamento OData difere de como você normalmente pensaria sobre isso.

Por exemplo, suponha que você queira saber quantas áreas estão em cada projeto em uma organização ou coleção. No OData, "contar todas as áreas e agrupá-las por projeto" é equivalente a "me dar todos os projetos e uma contagem de áreas para cada projeto". Isso resulta em uma consulta semelhante a:

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

Filtrar resultados agregados

Você também pode filtrar resultados agregados, no entanto, eles são aplicados de forma um pouco diferente do que quando você não está usando a agregação. O Google Analytics avalia os filtros ao longo de um canal, portanto, é sempre melhor fazer a filtragem mais discreta primeiro.

Os filtros são semelhantes a este exemplo:

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

Você não precisa fornecer a groupby cláusula. Você pode simplesmente usar a aggregate cláusula para retornar um único valor.

Gere várias agregações em uma única chamada

Você pode querer fornecer várias informações. Um exemplo é a soma do trabalho concluído e separadamente a soma do trabalho restante. Nesse caso, você pode fazer chamadas separadas ou uma única chamada da seguinte maneira:

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

Ele retornará um resultado semelhante a este exemplo:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
    {
      "@odata.id":null,"SumOfCompletedWork":1525841.2900000005,"SumOfRemainingWork":73842.39
    }
  ]
}

Gerar propriedades calculadas para uso em uma única chamada

Talvez seja necessário usar uma expressão matemática para calcular propriedades para uso em um conjunto de resultados. Um exemplo é a soma do trabalho concluído que é dividida pela soma do trabalho concluído mais a soma do trabalho restante para calcular a porcentagem de trabalho concluído. Nesse caso, você pode usar este exemplo:

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

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
    {
      "@odata.id":null,"DonePercentage":0.96760221857946638,"SumOfRemainingWork":50715.95,"SumOfCompletedWork":1514698.3400000033
    }
  ]
}

Gerar um Diagrama de Fluxo Cumulativo a partir de dados agregados

Digamos que você queira criar um diagrama de fluxo cumulativo no Power BI. Você pode usar uma consulta semelhante à abaixo:

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

Ele retorna um resultado semelhante a este exemplo. Você pode usá-lo diretamente na visualização de dados de sua escolha.

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemBoardSnapshot(DateValue,ColumnName,Count)",
  "value": [
    {
      "@odata.id": null,
      "DateValue": "2015-07-16T00:00:00-07:00",
      "Count": 324,
       "ColumnName": "Completed"
    },
    {
      "@odata.id": null,
      "DateValue": "2015-07-16T00:00:00-07:00",
      "Count": 5,
      "ColumnName": "In Progress"
    }
  ]
}

Vamos dar uma olhada no que essa consulta realmente faz:

  • Filtra os dados para uma equipe específica
  • Filtra os dados para uma lista de pendências específica
  • Retorna uma contagem de itens de trabalho.

Ao atualizar o Power BI ou o Excel, quanto menos linhas forem necessárias, mais rápida será a atualização.

Próximas etapas