Trendbericht zur Pipelinedurchlaufrate

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

In diesem Artikel erfahren Sie, wie Sie einen Bericht erstellen, der den Tagespassratetrend einer Pipeline anzeigt. Die Passrate einer Pipeline wird als Prozentsatz der erfolgreichen Pipelineläufe für die Gesamtleitung definiert. Es ist vergleichbar mit dem Diagramm "Passrate Trend" des Pipelinedurchlaufratenberichts. Die folgende Abbildung zeigt ein Beispiel für einen solchen Trend.

Screenshot des Berichts

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

  • Um Analytics-Daten anzuzeigen und den Dienst abzufragen, müssen Sie Mitglied eines Projekts mit oder höherer Basiszugriff sein. Standardmäßig erhalten alle Projektmitglieder Berechtigungen zum Abfragen von Analytics und zum Definieren von Analytics-Ansichten.
  • Weitere Informationen zu weiteren Voraussetzungen für die Dienst- und Featureaktivierung sowie allgemeine Datennachverfolgungsaktivitäten finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics.

Hinweis

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

Beispielabfragen

Sie können die folgenden Abfragen des PipelineRuns Entitätssatzes verwenden, um unterschiedliche, aber ähnliche Passrate-Trendberichte 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 finden Sie in den Metadaten, die für den entsprechenden EntityTypebereitgestellt werden.

Zinstrend für eine benannte Pipeline

Die folgenden Abfragen geben die Pipelineausführung für eine bestimmte Pipeline aus einem angegebenen Startdatum zurück.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. 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 CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$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 CanceledCount ne 1

Lassen Sie die Ausführung der abgebrochenen Pipeline aus.

)

Close-Klausel filter() .

/groupby(

Startklausel groupby() .

(CompletedOn/Date),

Gruppieren nach Abschluss der Pipelineausführung.

aggregate

Startklausel aggregate für alle Pipelineläufe, die den Filterkriterien entsprechen.

($count as TotalCount,

Zählen Sie die Gesamtanzahl der Läufe als TotalCount.

SucceededCount with sum as SucceededCount ,

Zählen Sie die Anzahl der erfolgreichen Ausführungen als SucceededCount.

FailedCount with sum as FailedCount,

Zählen Sie die Anzahl der fehlgeschlagenen Ausführungen als FailedCount.

PartiallySucceededCount with sum as PartiallySucceededCount))

Zählen Sie die Anzahl der teilweise erfolgreichen Ausführungen als PartiallySucceededCount. Schließen aggregate() und groupby() Klauseln.

/compute(

Anfang der compute() Klausel.

SucceededCount mul 100.0 div TotalCount as PassRate,

Berechnen Sie PassRate jeden Tag, indem Sie die Anzahl der erfolgreichen Ausführungen durch die Anzahl der Gesamtläufe dividieren.

FailedCount mul 100.0 div TotalCount as FailRate,

Berechnen Sie FailRate jeden Tag, indem Sie die Anzahl der fehlgeschlagenen Ausführungen durch die Anzahl der Gesamtläufe dividieren.

PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate)

Berechnen Sie PartiallySuccessfulRate jeden Tag, indem Sie die Anzahl der teilweise erfolgreichen Ausführungen durch die Anzahl der Gesamtläufe dividieren.

&$orderby=CompletedOn/Date asc

Ordnen Sie das Ergebnis in aufsteigender Reihenfolge basierend auf dem Datum der Pipelineausführung an.

Zinstrend für eine Pipeline-ID

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}

Die folgenden Abfragen geben die Pipelineausführung für eine bestimmte Pipeline-ID aus einem angegebenen Startdatum zurück.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. 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 CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Zinstrend, Nach Verzweigung filtern

Sie können den Passratetrend einer Pipeline nur für eine bestimmte Verzweigung 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 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 Verzweigung aus dem Datenschnitt aus, für die Sie den Passratetrend anzeigen müssen.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. 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 CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(Branch/BranchName, CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Passrate trend, filter by build reason

Möglicherweise möchten Sie den Passratetrend einer Pipeline nur aus bestimmten Buildgründen anzeigen (Manual / BatchedCI, Pull Request usw.). 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.

  • Wählen Sie "Datenschnitt" im Bereich "Visualisierungen" aus, und fügen Sie den RunReason Datenschnittfeld hinzu.
  • Wählen Sie die Pipeline aus dem Datenschnitt aus, für die Sie den Passratetrend anzeigen müssen.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. 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 CanceledCount ne 1 "
        &") "
        &"/groupby( "
            &"(RunReason, CompletedOn/Date), "
                &"aggregate "
                &"($count as TotalCount, "
            &"SucceededCount with sum as SucceededCount , "
                &"FailedCount with sum as FailedCount, "
            &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
        &"/compute( "
    &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Zinstrend für alle Projektpipelinen

Verwenden Sie die folgenden Abfragen, um den Passratetrend für alle Pipelines des Projekts in einem einzigen Bericht 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 Pipeline in Pipeline.PipelineName.
  • Wählen Sie "Datenschnitt" im Bereich "Visualisierungen" aus, und fügen Sie das Feld Pipeline.PipelineName zum Feld des Datenschnitts hinzu.
  • Wählen Sie die Buildpipeline aus dem Datenschnitt aus, für den Sie den Passratetrend anzeigen müssen.

Weitere Informationen finden Sie in der Ergebniszusammenfassung für alle Pipelines-Beispielbericht mit detaillierten ähnlichen Schritten wie hier erforderlich.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. 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 CanceledCount ne 1 "
                &") "
        &"/groupby( "
        &"(Pipeline/PipelineName, CompletedOn/Date), "
            &"aggregate "
                &"($count as TotalCount, "
                &"SucceededCount with sum as SucceededCount , "
            &"FailedCount with sum as FailedCount, "
                &"PartiallySucceededCount with sum as PartiallySucceededCount)) "
            &"/compute( "
        &"SucceededCount mul 100.0 div TotalCount as PassRate, "
    &"FailedCount mul 100.0 div TotalCount as FailRate, "
    &"PartiallySucceededCount mul 100.0 div TotalCount as PartiallySuccessfulRate) "
    &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Optional) Abfrage umbenennen

Sie können die Standardabfragebezeichnung Query1 in aussagekräftiger umbenennen. Geben Sie einfach im Bereich Abfrageeinstellungen einen neuen Namen ein.

Screenshot: Menüoptionen für Power BI-Abfragen, Abfrage umbenennen.

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 folgenden Spalten. Informationen dazu finden Sie unter Transformieren eines Spaltendatentyps.

  • PassRateund FailRatePartiallySuccessfulRate Spalten bis " Dezimalzahl".
  • TotalCountzum Wer le Number.

(Optional) Umbenennen von Spaltenfeldern

Sie können Spaltenfelder umbenennen. Sie können z. B. die Spalte Pipeline.PipelineNamePipeline 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 passrate Trendliniendiagramm-Bericht.

  2. Zu X-Achse hinzufügenCompletedOn.Date. Klicken Sie mit der rechten Maustaste auf das Feld, und wählen Sie "CompletedOn.Date" aus.

  3. Fügen Sie PassRate der Y-Achse hinzu, und klicken Sie mit der rechten Maustaste darauf, um sicherzustellen, dass Summe ausgewählt ist.

  4. Wenn Sie den Berichtstitel ändern möchten, wählen Sie im Bereich "Visualisierungen" das Symbol "Formatieren des visuellen Pinsels" aus, wählen Sie "Allgemein" aus, erweitern Sie "Titel", und ersetzen Sie den vorhandenen Text.

    Die folgende Abbildung zeigt den resultierenden Bericht.

    Screenshot des Power BI-Beispielpipelines