Trendbeispielbericht zur Pipelinedauer

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

In diesem Artikel wird gezeigt, wie Sie einen Bericht erstellen, der zeigt, wie lange Ihre Pipeline typischerweise benötigt, um erfolgreich abgeschlossen zu werden. Der tägliche Trend des Berichts über die Pipelinedauer ähnelt dem Diagramm "Pipelinedauer" des Berichts "Pipelinedauer".The daily trend of pipeline duration report is similar to the Pipeline duration chart.

Die folgende Abbildung zeigt ein Beispiel für einen Dauertrendbericht.

Screenshot des Power BI Pipelines Dauer-Trendberichts.

Hinweis

Die Beispielabfragen in diesem Artikel erfordern v3.0-Vorschau oder später des Analytics OData-Feed. Teilen Sie Ihr Feedback.

Kategorie Anforderungen
Zugriffsebenen - Projektmitglied.
– Mindestens einfacher Zugriff.
Erlaubnisse 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 Datenverfolgungsaktivitäten finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics.

Hinweis

In diesem Artikel wird davon ausgegangen, dass Sie Overview von Beispielberichten mithilfe von OData-Abfragen lesen und ein grundlegendes Verständnis von Power BI haben.

Beispielabfragen

Verwenden Sie die folgenden Abfragen des PipelineRuns Entitätssatzes, um andere, aber ähnliche Trendberichte für pipelinedauern zu erstellen.

Hinweis

Informationen zum Suchen verfügbarer Eigenschaften zum Filtern oder Melden finden Sie in der Metadata-Referenz für Azure Pipelines. Sie können Abfragen filtern oder Eigenschaften zurückgeben, indem Sie einen beliebigen Property Wert verwenden, der unter einem EntityTypeoder einem beliebigen NavigationPropertyBinding Path für ein EntitySetObjekt aufgeführten Wert definiert ist. Jede EntitySet entspricht einem EntityType, der den Datentyp für jede Eigenschaft dokumentiert.

Abrufen des 80. Perzentil-Trends der Dauer für eine bestimmte Pipeline

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Ersetzungszeichenfolgen und Abfrageaufschlüsselung

Ersetzen Sie die folgenden Zeichenfolgen durch Ihre Werte. Klammern nicht einschließen {} in Ihrer Ersetzung Wenn Ihr Organisationsname z. B. "Fabrikam" lautet, ersetzen Sie {organization} durch Fabrikam, nicht durch {Fabrikam}.

  • {organization} - Name Ihrer Organisation
  • {project} - Name Ihres Teamprojekts
  • {pipelinename} - Der Name Ihrer Pipeline. Beispiel: Fabrikam hourly build pipeline
  • {startdate} - Das Datum, um den Bericht zu beginnen. Format: YYYY-MM-DD gefolgt von Z (UTC-Indikator). Beispiel: 2026-09-01Z steht für den 1. September 2026. Schließen Sie keine Anführungszeichen oder Klammern ein.

Abfrageaufschlüsselung

In der folgenden Tabelle werden die einzelnen Teile der Abfrage beschrieben.

Abfrageteil

Beschreibung


$apply=filter(

Startklausel filter() .

Pipeline/PipelineName eq '{pipelinename}'

Gibt die Pipelineausführungen für die angegebene Pipeline an.

and CompletedDate ge {startdate}

Gibt die Pipelineausführungen am oder nach dem angegebenen Datum an.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

Gibt nur die erfolgreichen oder teilweise erfolgreichen Ausführungen zurück.

)

Die filter()-Klausel schließen.

/compute(

Startklausel compute() .

percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds)

Berechnet das 80. Perzentil der Pipeline-Dauer für alle Ausführungen der Pipeline, die den Filterkriterien entsprechen.

/groupby(

Startet die groupby() Klausel.

(Duration80thPercentileInSeconds, CompletedOn/Date))

Gruppiert nach Abschlussdatum und der berechneten 80. Perzentil-Dauer der Pipeline.

&$orderby=CompletedOn/Date asc

Sortiert die Antwort nach Abschlussdatum.

Filtern nach Pipeline-ID und nicht nach Pipelinename

Sie können Pipelines umbenennen. Um sicherzustellen, dass die Power BI Berichte beim Ändern des Pipelinenamens nicht unterbrechen, verwenden Sie die Pipeline-ID anstelle des Pipelinenamens. Sie können die Pipeline-ID über die URL der Pipeline-Run-Seite abrufen.

https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"PipelineId eq {pipelineId} "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Abrufen des 50. und 90. Perzentils zusammen mit dem Trend der 80-prozentigen Dauer

Möglicherweise möchten Sie den mit anderen Quantilwerten berechneten Dauertrend anzeigen. Die folgenden Abfragen liefern das 50. und 90. Perzentil der Pipeline-Dauer zusammen mit dem 80.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.5,CompletedDateSK) as Duration50thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds, "
                &"percentile_cont(TotalDurationSeconds, 0.90,CompletedDateSK) as Duration90thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds, Duration90thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Filtern nach Zweig

Verwenden Sie die folgenden Abfragen, um den Dauertrend einer Pipeline nur für eine bestimmte Verzweigung anzuzeigen. Führen Sie zum Erstellen des Berichts diese zusätzlichen Schritte zusammen mit den Schritten aus, die im Datentyp "Spalte ändern " und "Erstellen der Abschnitte des Liniendiagramms " beschrieben sind.

  • Erweitern Branch in Branch.BranchName.
  • Wählen Sie Power BI Visualization Slicer und fügen Sie Branch.BranchName zu dem Felddes Slicers hinzu.
  • Wählen Sie im Slicer den Branch aus, für den Sie den Trend der Pipeline-Dauer sehen möchten.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"Pipeline/PipelineName eq '{pipelinename}' "
                &"and CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
        &") "
        &"/compute( "
            &"percentile_cont(TotalDurationSeconds, 0.8,BranchSK, CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, Branch/BranchName, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Dauer-Trend für alle Pipelines eines Projekts

Möglicherweise möchten Sie den Dauertrend für alle Pipelines des Projekts in einem einzigen Bericht anzeigen. Führen Sie zum Erstellen des Berichts diese zusätzlichen Schritte zusammen mit den Schritten aus, die im Datentyp "Spalte ändern " und "Erstellen der Abschnitte des Liniendiagramms " beschrieben sind.

  • Erweitern Pipeline in Pipeline.PipelineName.
  • Wählen Sie Slicer aus dem Bereich Visualisierungen und fügen Sie Pipeline.PipelineName zum Feld des Slicers hinzu.
  • Wählen Sie die Pipeline aus dem Datenschnitt aus, für die Sie den Dauertrend anzeigen möchten.

Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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/PipelineRuns?"
        &"$apply=filter( "
                &"CompletedDate ge {startdate} "
                &"and (SucceededCount eq 1 or PartiallySucceededCount eq 1) "
                &") "
        &"/compute( "
        &"percentile_cont(TotalDurationSeconds, 0.8,PipelineId, CompletedDateSK) as Duration80thPercentileInSeconds) "
            &"/groupby( "
                &"(Duration80thPercentileInSeconds, Pipeline/PipelineName, CompletedOn/Date)) "
                &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Erweitern von Spalten in Power Query-Editor

Vor dem Erstellen des Berichts müssen Sie Spalten erweitern, die Datensätze mit mehreren Feldern zurückgeben. In diesem Fall möchten Sie die CompletedOn Spalte erweitern, um sie zu CompletedOn.Date zu vereinfachen.
Informationen zum Erweitern von Arbeitsaufgaben finden Sie unter Transform Analytics-Daten zum Generieren von Power BI Berichten.

Ändern des Spaltendatentyps

Ändern Sie im Menü "Transformieren " den Datentyp für Duration80thPercentileInSeconds"Dezimalzahl". Informationen dazu finden Sie unter Transformieren eines Spaltendatentyps.

(Optional) Umbenennen von Spaltenfeldern

Sie können Spaltenfelder umbenennen, um benutzerfreundlicher zu werden. Informationen dazu finden Sie unter Umbenennen von Spaltenfeldern.

Schließen Sie die Abfrage, und wenden Sie Ihre Änderungen an.

Wenn Sie alle Datentransformationen abgeschlossen haben, wählen Sie Schließen & Anwenden aus dem Menü Start. Diese Aktion speichert die Abfrage und gibt Sie in Power BI zur Registerkarte Report zurück.

Screenshot der Option

Erstellen Sie den Liniendiagrammbericht

  1. Wählen Sie in Power BI unter Visualizations den Liniendiagramm-Bericht aus.

    Screenshot der Visualisierungsfeldauswahl für den Trendbericht zur Laufzeit von Pipelines.

  2. Fügen Sie CompletedOn.Date zur X-Achse hinzu, klicken Sie mit der rechten Maustaste darauf und wählen Sie CompletedOn.Date anstelle von Datumshierarchie aus.

  3. Fügen Sie Duration80thPercentileInSeconds zur Y-Achse hinzu, indem Sie mit der rechten Maustaste darauf klicken und sicherstellen, dass Summe ausgewählt ist.

Der angezeigte Bericht sollte ähnlich wie in der folgenden Abbildung aussehen.

Screenshot des Power BI Beispiels Pipelines Dauer-Trendbericht.