Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Wie lange dauert es, bis verschiedene Aufgaben abgeschlossen sind? Dieser Artikel enthält die Abfragen, aus denen Sie einen Bericht für eine bestimmte Pipeline und ihre Aufgaben generieren können. Das folgende Bild listet zum Beispiel das 50., 80. und 95. Perzentil in Sekunden für alle Aufgaben auf, die für eine bestimmte Pipeline vom 1. September bis zum 15. Dezember 2022 abgeschlossen wurden.
Wichtig
Power BI-Integration und Zugriff auf den OData-Feed des Diensts Analytics sind für Azure DevOps Services und Azure DevOps Server 2020 und höhere Versionen grundsätzlich verfügbar. Die Beispielabfragen in diesem Artikel gelten nur für Azure DevOps Server 2020 und höhere Versionen und hängen von v3.0 (Vorschau) oder höher ab. Wir empfehlen, diese Abfragen zu verwenden und uns Feedback zu übermitteln.
| Kategorie | Anforderungen |
|---|---|
| Zugriffsebenen |
-
Projektmitglied. - Mindestens Basic-Zugriff |
| Berechtigungen | Standardmäßig verfügen Projektmitglieder über die Berechtigung zum Abfragen von Analysen und Erstellen von Ansichten. Weitere Informationen zu anderen Voraussetzungen für die Dienst- und Featureaktivierung sowie allgemeine Aktivitäten zur Datennachverfolgung finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics. |
Hinweis
Dieser Artikel setzt voraus, dass Sie die Übersicht über Beispielberichte mit OData-Abfragen gelesen haben und über grundlegende Kenntnisse von Power BI verfügen.
Beispielabfragen
Sie fragen die Entitätsgruppe PipelineRunActivityResults? ab, um Informationen zur Aufgabendauer zu erhalten.
Hinweis
Informationen dazu, wie man verfügbare Eigenschaften für Filter- oder Berichtszwecke bestimmt, finden Sie unter Metadatenreferenz für Azure-Pipelines. Sie können Ihre Abfragen filtern oder Eigenschaften zurückgeben, indem Sie einen der Werte unter oder PropertyEntityType verwenden, die NavigationPropertyBinding Path mit einem EntitySetverfügbar sind. Jede EntitySet entspricht einem EntityType. Weitere Informationen zum Datentyp der einzelnen Werte können Sie den Metadaten zu betreffenden EntityType entnehmen.
Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster Daten abrufen>Leere Abfrage ein. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and PipelineRunCompletedOn/Date ge {startdate} "
&"and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded') "
&"and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1) "
&") "
&"/compute( "
&"percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName)) "
&"&$orderby=TaskDuration50thPercentileInSeconds desc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Ersetzungszeichenfolgen und Abfrageaufschlüsselung
Ersetzen Sie die folgenden Zeichenfolgen durch Ihre Werte. Schließen Sie keine Klammern {} in Ihre Ersetzung ein. Wenn Ihr Organisationsname beispielsweise "Fabrikam" lautet, ersetzen Sie {organization} durch Fabrikam, nicht {Fabrikam}.
-
{organization}: Name Ihrer Organisation -
{project}: Ihr Teamprojektname -
{pipelinename}: Pipelinename. Beispiel:Fabrikam hourly build pipeline -
{startdate}: Datum, an dem der Bericht beginnen soll. Format: JJJJ-MM-TTZ. Beispiel:2021-09-01Zsteht für den 1. September 2021. Geben Sie keine Anführungszeichen oder eckigen Klammern ein, und verwenden Sie jeweils zwei Ziffern für den Monat und den Tag.
Abfrageaufschlüsselung
In der folgenden Tabelle werden die einzelnen Teile der Abfrage beschrieben.
Abfrageteil
Beschreibung
$apply=filter(
Starten Sie die Klausel filter().
Pipeline/PipelineName eq '{pipelinename}'
Gibt die Pipelineausführungen für die angegebene Pipeline an.
and PipelineRunCompletedOn/Date ge {startdate}
Aufgabenergebnisse für eine Pipeline zurückgeben, die am oder nach dem angegebenen Datum ausgeführt wurde.
and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')
Aufgabenergebnisse nur für erfolgreiche oder teilweise erfolgreiche Pipeline-Läufe zurückgeben.
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
Pipeline-Ausführungen, die abgebrochen, übersprungen oder aufgegeben wurden, nicht berücksichtigen.
)
Schließt die filter()-Klausel.
/compute(
Starten Sie die Klausel compute().
percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,
Für jede Aufgabe das 50. Perzentil der Aufgabendauer für alle Aufgaben berechnen, die den Filterkriterien entsprechen.
percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,
Für jede Aufgabe das 80. Perzentil der Aufgabendauer für alle Aufgaben berechnen, die den Filterkriterien entsprechen.
percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)
Für jede Aufgabe das 95. Perzentil der Aufgabendauer für alle Aufgaben berechnen, die den Filterkriterien entsprechen.
/groupby(
Beginnen Sie die Klausel groupby() .
(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))
Gruppieren Sie nach Aufgabe des Pipeline-Laufs und berechnen Sie tageweise die 50-prozentige Aufgabendauer, die 80-prozentige Aufgabendauer und die 95-prozentige Aufgabendauer.
&$orderby=TaskDuration50thPercentileInSeconds desc
Ordnen Sie die Antwort nach der Aufgabe mit der höchsten 50. Perzentil-Dauer.
(Optional) Abfrage umbenennen
Sie können die Standardabfragebezeichnung Query1 in aussagekräftiger umbenennen. Geben Sie einfach im Bereich Abfrageeinstellungen einen neuen Namen ein.
Ändern des Datentyps einer Spalte
Ändern Sie im Menü Transformation den Datentyp für die folgenden Spalten in Decimal Number**.. Wie das geht, erfahren Sie unter Transformation eines Spalten-Datentyps.
-
TaskDuration80thPercentileInSeconds
-
TaskDuration80thPercentileInSeconds
-
TaskDuration95thPercentileInSeconds.
(Optional) Umbenennen von Spaltenfeldern
Sie können Spaltenfelder umbenennen. Sie können z.B. die folgenden Spalten umbenennen, so dass sie besser angezeigt werden können. Informationen dazu finden Sie unter Umbenennen von Spaltenfeldern.
| Ursprünglicher Feldname | Umbenanntes Feld |
|---|---|
TaskDisplayName |
Aufgabenname |
TaskDuration50thPercentileInSeconds |
50. Perzentil |
TaskDuration80thPercentileInSeconds |
80. Perzentil |
TaskDuration95thPercentileInSeconds |
95. Perzentil |
Schließen Sie die Abfrage, und wenden Sie Ihre Änderungen an.
Nachdem Sie alle Datentransformationen abgeschlossen haben, wählen Sie im Menü Start die Option Übernehmen schließen & aus, um die Abfrage zu speichern und zur Registerkarte Bericht in Power BI zurückzukehren.
Erstellen des Berichts in Tabellenform
Wählen Sie in Power BI unter Visualisierungen den Bericht Tabelle. Die Felder wurden umbenannt, wie im Abschnitt Spaltenfelder umbenennen angegeben.
Fügen Sie die folgenden Felder in der angegebenen Reihenfolge zu den Spalten hinzu.
- Aufgabenname
- 50. Perzentil
- 80. Perzentil
- 95. Perzentil
Wenn Sie den Berichtstitel ändern möchten, wählen Sie das Pinsel-Symbol Visuelles Element formatieren aus dem Fenster Visualisierungen aus, wählen Sie Allgemein aus, erweitern Sie Titel, und ersetzen Sie den vorhandenen Text.
Das folgende Bild zeigt einen Ausschnitt aus dem resultierenden Bericht.