Freigeben über


Trendbericht zur Pipelinedauer

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

In diesem Artikel wird gezeigt, wie Sie einen Bericht erstellen, der zeigt, wie lange ihre Pipeline in der Regel erfolgreich abgeschlossen werden muss. Der tägliche Trend des Pipelinedauerberichts ähnelt dem Trenddiagramm der Pipelinerate des Pipelinepassrateberichts.

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

Screenshot des Trendberichts

Wichtig

Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind in der Regel für Azure DevOps Services und Azure DevOps Server 2020 und höhere Versionen verfügbar. Die in diesem Artikel bereitgestellten Beispielabfragen gelten nur für Azure DevOps Server 2020 und höhere Versionen und hängen von version 3.0-preview oder höher ab. Wir empfehlen Ihnen, diese Abfragen zu verwenden und uns Feedback zu geben.

Voraussetzungen

Hinweis

In diesem Artikel wird davon ausgegangen, dass Sie eine Übersicht über Beispielberichte mit OData-Abfragen lesen und ein grundlegendes Verständnis von Power BI haben.

Beispielabfragen

Sie können die folgenden Abfragen des PipelineRuns Entitätssatzes verwenden, um unterschiedliche, aber ähnliche Trendberichte für pipelinedauern zu erstellen.

Hinweis

Informationen zum Ermitteln verfügbarer Eigenschaften für Filter- oder Berichtszwecke 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 NavigationPropertyBinding PathEntityType verwenden, die Property mit einem EntitySetverfügbar sind. Jede EntitySet entspricht einem EntityType. Weitere Informationen zum Datentyp der einzelnen Werte erhalten Sie in den Metadaten, die für den entsprechenden Wert EntityTypebereitgestellt werden.

Abrufen eines 80. quantilen Dauertrends für eine angegebene Pipeline

Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" 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/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. 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} - Name Ihres Teamprojekts
  • {pipelinename} - Ihr Pipelinename. Beispiel: Fabrikam hourly build pipeline
  • {startdate} - Das Datum, an dem Der Bericht beginnt. Format: JJJJ-MM-DDZ. Beispiel: 2021-09-01Z steht für den 1. September 2021. Schließen Sie keine Anführungszeichen oder eckigen Klammern ein, und verwenden Sie zwei Ziffern sowohl für Monat als auch für Datum.

Abfrageaufschlüsselung

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

Abfrageteil

Beschreibung


$apply=filter(

Startklausel filter() .

Pipeline/PipelineName eq '{pipelinename}'

Die Rückgabepipeline wird für die angegebene Pipeline ausgeführt.

and CompletedDate ge {startdate}

Die Rückgabepipeline wird am oder nach dem angegebenen Datum ausgeführt.

and (SucceededCount eq 1 or PartiallySucceededCount eq 1)

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

)

Close-Klausel filter() .

/compute(

Startklausel compute() .

percentile_cont(TotalDurationSeconds, 0.8,CompletedDateSK) as Duration80thPercentileInSeconds)

Berechnen Sie das 80. Quantil der Pipelinedauer aller Pipelineläufe, die den Filterkriterien entsprechen.

/groupby(

Start groupby()

(Duration80thPercentileInSeconds, CompletedOn/Date))

Gruppieren Nach Datum des Abschlusses der Pipelineausführung und berechnete Tagesdauer des 80. Quantils.

&$orderby=CompletedOn/Date asc

Ordnen Sie die Antwort nach abschlussdatum an.

Filtern nach Pipeline-ID und nicht nach Pipelinename

Pipelines können umbenannt werden. 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 Pipelineausführungsseite abrufen.

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

Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" 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/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. Quantils zusammen mit dem Trend der 80. Quantildauer

Möglicherweise möchten Sie den Dauertrend anzeigen, der mit einem anderen Quantilwert berechnet wird. Die folgenden Abfragen stellen 50. und 90. Quantilpipelinedauer zusammen mit 80. Quantil bereit.

Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" 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/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 Verzweigung

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

  • Erweitern Branch in Branch.BranchName.
  • Wählen Sie den Power BI-Visualisierungsschnitt aus, und fügen Sie es zum Feld des Datenschnitts hinzuBranch.BranchName.
  • Wählen Sie die Pipeline aus dem Datenschnitt aus, für die der Trend der Pipelinedauer angezeigt werden muss.

Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" 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/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

Dauertrend für alle Projektpipelinen

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 die folgenden zusätzlichen Schritte zusammen mit den im Datentyp "Spalte ändern" beschriebenen Schritten und den Abschnitten "Liniendiagramm erstellen" aus.

  • Erweitern Pipeline in Pipeline.PipelineName.
  • Wählen Sie "Datenschnitt" im Bereich "Visualisierungen" aus, und fügen Sie den Pipeline.PipelineNam Datenschnittfeld hinzu.
  • Wählen Sie die Pipeline aus dem Datenschnitt aus, für den Sie den Trend der Pipelinedurchlaufrate anzeigen müssen.

Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" 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/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 zurückgeben, die mehrere Felder enthalten. In diesem Fall möchten Sie die CompletedOn Spalte erweitern, um sie zu CompletedOn.Datereduzieren.
Informationen zum Erweitern von Arbeitselementen finden Sie unter Transformieren von Analysedaten zum Generieren von Power BI-Berichten.

Ändern des Spaltendatentyps

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

(Optional) Umbenennen von Spaltenfeldern

Sie können Spaltenfelder umbenennen. Sie können z. B. die Spalte Pipeline.PipelineName Pipeline Namein oder TotalCount in Total Count. Informationen dazu finden Sie unter Umbenennen von Spaltenfeldern.

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

Nachdem Sie alle Datentransformationen abgeschlossen haben, wählen Sie "Schließen" und "Übernehmen " im Menü "Start " aus, um die Abfrage zu speichern und zur Registerkarte "Bericht " in Power BI zurückzukehren.

Screenshot der Option

Erstellen des Liniendiagrammberichts

  1. Wählen Sie in Power BI unter "Visualisierungen" den Bericht "Liniendiagramm" aus.

    Screenshot der Auswahl von Visualisierungsfeldern für Pipelines wird der Trendbericht

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

  3. Klicken Sie Duration80thPercentileInSeconds mit der rechten Maustaste auf die Y-Achse , und stellen Sie sicher, dass Summe ausgewählt ist.

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

Screenshot des Trendberichts