Partilhar via


Agregar dados de acompanhamento de trabalho usando o Google Analytics

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

Você pode obter uma soma dos seus dados de acompanhamento de trabalho de uma das 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 JSON com base em sua consulta OData que exerce a extensão de agregação OData.

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

Neste artigo você vai aprender:

  • 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.

Nota

O serviço Analytics é automaticamente ativado e suportado na produção para todos os Azure DevOps Services. A integração do Power BI e o acesso ao feed OData do serviço Analytics estão geralmente disponíveis. Recomendamos a sua utilização e solicitamos que nos envie os seus comentários. Os dados disponíveis dependem da versão. A última versão suportada é v2.0, e a versão de pré-visualização mais recente é v4.0-preview. Para obter mais informações, consulte o artigo Controlo de Versões da API OData.

Nota

O serviço Analytics é instalado automaticamente e suportado 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. Recomendamos a sua utilização e solicitamos que nos envie os seus comentários. Se tiver atualizado a partir 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 é v2.0, e a versão de pré-visualização mais recente é v4.0-preview. Para obter mais informações, consulte o artigo Controlo de Versões da API OData.

Nota

O serviço Analytics está em pré-visualização para o Azure DevOps Server 2019. Pode ativá-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 Analytics estão em pré-visualização. Recomendamos a sua utilização e solicitamos que nos envie os seus comentários.

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

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

O Google 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 esta palavra-chave abaixo. Saiba mais sobre a extensão em OData Extension for Data Aggregation.

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

Agora que você já viu como fazer contagens simples, vamos rever como acionar agregações usando o $apply token onde 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
  • {columnToAggregate} é a coluna de agregação
  • {aggregationType} especificará o tipo de agregação usado
  • {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.

Devolver 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 identificador do último item de trabalho

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

Resultados do grupo usando a cláusula groupby

A extensão de agregação OData também oferece suporte a uma groupby cláusula idêntica à cláusula SQL GROUP BY . Você pode usar essa cláusula para detalhar 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 pensa sobre isso.

Por exemplo, suponha que você queira saber quantas áreas existem em cada projeto em uma organização ou coleção. No OData, "contar todas as áreas e agrupá-las por projeto" equivale a "dar-me 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 ligeiramente diferente do que quando você não está usando a agregação. O Google Analytics avalia os filtros ao longo de um tubo, por isso é 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))

Nota

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

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

Talvez você queira 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 do 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. Em seguida, 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óximos passos