Freigeben über


Abfragen von Trenddaten

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

Die Untersuchung von Trends in Daten und das Erstellen von Periodenvergleichen sind wichtige Aspekte der Berichterstellung und Datenanalyse. Analytics unterstützt diese Funktionen.

Hinweis

Der Analysedienst wird automatisch aktiviert und in der Produktion für alle Azure DevOps-Dienste unterstützt. Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind allgemein verfügbar. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben. Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Hinweis

Der Analysedienst wird automatisch installiert und in der Produktion für alle neuen Projektsammlungen für Azure DevOps Server 2020 und höhere Versionen unterstützt. Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind allgemein verfügbar. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben. Wenn Sie ein Upgrade von Azure DevOps Server 2019 durchgeführt haben, können Sie den Analysedienst während des Upgrades installieren.

Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Hinweis

Der Analysedienst befindet sich in der Vorschau für Azure DevOps Server 2019. Sie können es für eine Projektsammlung aktivieren oder installieren. Die Power BI-Integration und der Zugriff auf den OData-Feed des Analytics-Diensts befinden sich in der Vorschau. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben.

Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Trenddaten werden in den Entitätssätzen WorkItemSnapshot und WorkItemBoardSnapshot verfügbar gemacht. Sie werden so konstruiert, dass jedes Arbeitselement, von dem Tag an, an dem es bis heute erstellt wurde, für jeden Tag existiert. Für eine Organisation mit nur einer Arbeitsaufgabe, die vor einem Jahr erstellt wurde, gibt es 365 Zeilen in dieser Entität. Bei großen Projekten wären diese Entitäten für die Verwendung mit Clienttools unpraktisch.

Was ist die Lösung? Verwenden Sie die Aggregationserweiterungen.

In diesem Artikel finden Sie Informationen zu Folgendem:

  • Erstellen einer einfachen Abfrage für Trenddaten

Mithilfe der OData-Aggregationserweiterungen können Sie aggregierte Daten aus Azure DevOps zurückgeben, die der Berichterstellung förderlich sind. So könnten Sie z. B. fehlertrend für den Monat März anzeigen. Fehlertrends sind ein häufiger und wichtiger Bestandteil der Verwaltung jedes Projekts, sodass Sie es sofort verwenden können.

Hinweis

Die beispiele in diesem Dokument basieren auf einer Azure DevOps Services-URL, die Sie in Ihrer Azure DevOps Server-URL ersetzen müssen.

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

Erstellen einer einfachen Abfrage für Trenddaten

Es gibt einige grundlegende Anforderungen, die Sie benötigen, um die WorkItemSnapshot-Tabelle effektiv abzufragen:

  • Filtern Sie die Daten nach Datum.
  • Die Aggregation sollte mindestens nach Datum gruppiert werden. Wenn dies nicht der Fehler ist, wird als Antwort eine Warnung angezeigt.

Die Abfrage zum Erstellen eines Fehlertrendberichts sieht wie im folgenden Beispiel aus:

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

Es gibt ein Ergebnis zurück, das dem folgenden Beispiel ähnelt:

{
  "@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
    }
  ]
}

Diese Abfrage wird höchstens 31 * (number of bug states)erzeugt. Der Standardfehler weist drei Zustände auf:

  • Aktiv
  • Gelöst
  • Geschlossen

Diese Abfrage gibt höchstens 93 Zeilen zurück, unabhängig davon, wie viele Tausend Datensätze tatsächlich vorhanden sind. Es bietet eine wesentlich kompaktere Form der Rückgabe von Daten.

Sehen wir uns eine Variante in diesem Beispiel an. Sie möchten den Fehlertrend für eine Iteration oder eine Version sehen, die mit einer Iteration beginnt und mit einer anderen endet.

Führen Sie zum Erstellen dieser Abfrage das folgende Beispiel aus:

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

Es gibt ein Ergebnis zurück, das dem folgenden Beispiel ähnelt:

{
  "@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
    }
  ]
}

In dieser Abfrage gibt es zwei wichtige Unterschiede. Wir haben eine Filterklausel hinzugefügt, um die Daten in eine bestimmte Iteration zu filtern, und die Datumsangaben werden jetzt mit dem Anfangs- und Enddatum der Iteration verglichen und ein hartcodiertes Datum.

Hinweis

Wenn die Aggregation in Ihrer Abfrage in Momentaufnahme Tabellen nicht verwendet wird, wird die Warnung "Die angegebene Abfrage enthält keine $select oder $apply Klausel, die für alle Abfragen empfohlen wird." in der Antwort angezeigt.