Consultar datos de tendencia

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

Examinar las tendencias en los datos y realizar comparaciones de período a período son aspectos importantes de los informes y el análisis de datos. Analytics admite estas funcionalidades.

Nota:

El servicio Analytics se habilita automáticamente y se admite en producción para todos los servicios de Azure DevOps. La integración de Power BI y el acceso a la fuente OData del servicio Analytics están disponibles con carácter general. Le recomendamos que lo use y nos envíe sus comentarios. Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0y la versión preliminar más reciente es v4.0-preview. Para obtener más información, consulte Control de versiones de la API de OData.

Nota:

El servicio Analytics se instala y admite automáticamente en producción para todas las colecciones de proyectos nuevas para Azure DevOps Server 2020 y versiones posteriores. La integración de Power BI y el acceso a la fuente OData del servicio Analytics están disponibles con carácter general. Le recomendamos que lo use y nos envíe sus comentarios. Si ha actualizado desde Azure DevOps Server 2019, puede instalar el servicio Analytics durante la actualización.

Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0y la versión preliminar más reciente es v4.0-preview. Para obtener más información, consulte Control de versiones de la API de OData.

Nota:

El servicio Analytics está en versión preliminar para Azure DevOps Server 2019. Puede habilitarlo o instalarlo para una colección de proyectos. La integración y el acceso de Power BI a la fuente OData del servicio Analytics se encuentran en versión preliminar. Le recomendamos que lo use y nos envíe sus comentarios.

Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0y la versión preliminar más reciente es v4.0-preview. Para obtener más información, consulte Control de versiones de la API de OData.

Los datos de tendencia se exponen en los conjuntos de entidades WorkItemSnapshot y WorkItemBoardSnapshot. Se construyen para que cada elemento de trabajo, desde el día en que se creó hasta hoy, exista para cada día. Para una organización con un solo elemento de trabajo creado hace un año, hay 365 filas en esta entidad. En el caso de los proyectos grandes, estas entidades no serían prácticas para usarlas con herramientas de cliente.

¿Cuál es la solución? Use las extensiones de agregación.

En este artículo, aprenderá lo siguiente:

  • Creación de una consulta básica para datos de tendencias

Con las extensiones de agregación de OData, puede devolver datos agregados de Azure DevOps que sean favorables a los informes. Por ejemplo, podría mostrar la tendencia de errores para el mes de marzo. Las tendencias de errores son una parte común y crítica de la administración de cualquier proyecto, por lo que puede ponerlo en buen uso inmediatamente.

Nota:

Los ejemplos que se muestran en este documento se basan en una dirección URL de Azure DevOps Services, tendrá que sustituir en la dirección URL de Azure DevOps Server.

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

Construcción de una consulta básica para los datos de tendencia

Hay algunos requisitos básicos que necesita para consultar eficazmente la tabla WorkItemSnapshot:

  • Filtre los datos por fecha.
  • La agregación debe agruparse por, al menos, fecha. Si no es así, la respuesta tendrá una advertencia.

La consulta para crear un informe de tendencias de errores es similar al ejemplo siguiente:

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

Devuelve un resultado similar al ejemplo siguiente:

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
  "value": [
    {
      "@odata.id": null,
      "State": "Active",
      "DateValue": "2016-03-01T00:00:00-08:00",
      "Count": 2666
    },
    {
      "@odata.id": null,
      "State": "Closed",
      "DateValue": "2016-03-01T00:00:00-08:00",
      "Count": 51408
    }
  ]
}

Esta consulta generará como máximo 31 * (number of bug states). El error predeterminado tiene tres estados:

  • Activas
  • Resuelto
  • Closed

Como máximo, esta consulta devolverá 93 filas sin importar cuántos miles de registros existen realmente. Proporciona una forma mucho más compacta de devolver datos.

Echemos un vistazo a una variación en este ejemplo. Quiere ver la tendencia de errores de una iteración o una versión que comienza con una iteración y termina con otra.

Para construir esa consulta, haga lo siguiente:

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

Devuelve un resultado similar al ejemplo siguiente:

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
  "value": [
    {
      "@odata.id": null,
      "State": "Active",
      "DateValue": "2016-04-04T00:00:00-07:00",
      "Count": 320
    },
    {
      "@odata.id": null,
      "State": "Closed",
      "DateValue": "2016-04-04T00:00:00-07:00",
      "Count": 38
    }
  ]
}

En esta consulta, hay dos diferencias clave. Se ha agregado una cláusula filter para filtrar los datos a una iteración específica y las fechas se comparan ahora con las fechas de inicio y finalización de la iteración frente a una fecha codificada de forma rígida.

Nota:

Si la agregación no se usa en la consulta en tablas de instantáneas, verá la advertencia "La consulta especificada no incluye una cláusula $select o $apply que se recomienda para todas las consultas". en la respuesta.