Trendrapport voor de duur van pijplijntaken
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Als u de tijd wilt visualiseren die nodig is om taken te voltooien voor een specifieke pijplijn, kunt u een trendrapport maken. In de volgende afbeelding ziet u bijvoorbeeld het 80e percentiel in seconden voor alle taken die zijn voltooid voor een specifieke pijplijn van 1 september tot en met 15 december 2022.
Belangrijk
Power BI-integratie en -toegang tot de OData-feed van de Analytics-service zijn algemeen beschikbaar voor Azure DevOps Services en Azure DevOps Server 2020 en latere versies. De voorbeeldquery's in dit artikel zijn alleen geldig voor Azure DevOps Server 2020 en latere versies en zijn afhankelijk van versie v3.0 of hoger. We raden u aan deze query's te gebruiken en ons feedback te geven.
Vereisten
- Toegang: Wees lid van een project met ten minste basistoegang .
- Machtigingen: projectleden zijn standaard gemachtigd om query's uit te voeren op Analytics en weergaven te maken.
- Zie Machtigingen en vereisten voor toegang tot Analyse voor meer informatie over andere vereisten met betrekking tot het inschakelen van services en functies en algemene activiteiten voor het bijhouden van gegevens.
Notitie
In dit artikel wordt ervan uitgegaan dat u overzicht van voorbeeldrapporten leest met behulp van OData-query's en basiskennis hebt van Power BI.
Voorbeeldquery's
U kunt de volgende query's van de PipelineRunActivityResults?
entiteitsset gebruiken om verschillende maar vergelijkbare trendrapporten voor taakduur te maken.
Notitie
Als u de beschikbare eigenschappen voor filter- of rapportdoeleinden wilt bepalen, raadpleegt u de naslaginformatie over metagegevens voor Azure Pipelines. U kunt uw query's filteren of eigenschappen retourneren met behulp van een van de Property
waarden onder een EntityType
of NavigationPropertyBinding Path
waarden die beschikbaar zijn met een EntitySet
. Elk EntitySet
komt overeen met een EntityType
. Raadpleeg voor meer informatie over het gegevenstype van elke waarde de metagegevens die voor de bijbehorende EntityType
waarde zijn opgegeven.
Trend van taakduur voor opgegeven pijplijnnaam
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and TaskDisplayName eq '{taskname}' "
&"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.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Uitsplitsing van tekenreeksen en query's vervangen
Vervang de volgende tekenreeksen door uw waarden. Neem geen vierkante haken {} op bij uw vervanging. Als de naam van uw organisatie bijvoorbeeld Fabrikam is, vervangt u door {organization}
Fabrikam
, niet {Fabrikam}
.
{organization}
- Naam van uw organisatie{project}
- De naam van uw teamproject{pipelinename}
- De naam van uw pijplijn. Voorbeeld:Fabrikam hourly build pipeline
{startdate}
- De datum waarop het rapport moet worden gestart. Indeling: JJJJ-MM-DDZ. Voorbeeld:2021-09-01Z
vertegenwoordigt 1 september 2021. Plaats geen aanhalingstekens of vierkante haken en gebruik twee cijfers voor zowel maand als datum.
Uitsplitsing van query's
In de volgende tabel wordt elk deel van de query beschreven.
Queryonderdeel
Beschrijving
$apply=filter(
Begincomponent filter()
.
Pipeline/PipelineName eq '{pipelinename}'
Retourneer taakresultaten voor een specifieke pijplijn.
and TaskDisplayName eq '{taskname}'
Retourneer taakresultaten voor een specifieke taak.
and PipelineRunCompletedOn/Date ge {startdate}
Retourneer taakresultaten voor pijplijnuitvoeringen op of na de opgegeven datum.
and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')
Retourneer taakresultaten voor alleen geslaagde of gedeeltelijk geslaagde pijplijnuitvoeringen.
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
Laat pijplijnuitvoeringen weg die zijn geannuleerd, overgeslagen of afgeslagen.
)
Sluit filter()
de component.
/compute(
Begincomponent compute()
.
percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds)
Bereken voor elke dag het 80e percentiel van de taakduur van alle taken die voldoen aan de filtercriteria.
/groupby(
Begincomponent groupby()
.
(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date))
Groepeer op datum van voltooiing van pijplijnuitvoering en berekende 80e percentieltaakduur.
&$orderby=PipelineRunCompletedOn/Date asc
Bestel het antwoord op voltooide datum.
Trend van taakduur voor een pijplijn, pijplijn-id opgeven
De naam van pijplijnen kan worden gewijzigd. Gebruik de pijplijn-id in plaats van de naam van de pijplijn om ervoor te zorgen dat de Power BI-rapporten niet worden verbroken wanneer de naam van de pijplijn wordt gewijzigd. U kunt de pijplijn-id verkrijgen via de URL van de pagina pijplijnenuitvoeringen.
https://dev.azure.com/{organization}/{project}/_build?definitionId={pipelineid}
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineId eq {pipelineid} "
&"and TaskDisplayName eq '{taskname}' "
&"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.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration80thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
50e, 80e en 90e percentieltaakduurtrend voor een pijplijn
Als u de trend van de taakduur wilt weergeven die wordt berekend met behulp van andere percentielwaarde, gebruikt u de volgende query die de duur van de taak 50e en 95e percentiel geeft, samen met het 80e percentiel.
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&"Pipeline/PipelineName eq '{pipelinename}' "
&"and TaskDisplayName eq '{taskname}' "
&"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, PipelineRunCompletedDateSK) as TaskDuration50thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.8, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.95, PipelineRunCompletedDateSK) as TaskDuration95thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds, TaskDuration95thPercentileInSeconds, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Trend van taakduur voor een pijplijn gefilterd op vertakking
Gebruik de volgende query om de duurtrend van een taak voor een bepaalde vertakking weer te geven. Ga als volgt te werk om het rapport te maken:
- Uitbreiden
Branch
naarBranch.BranchName
- Kolomgegevenstype wijzigen
- Het rapport Lijndiagram maken
- Selecteer Slicer in het deelvenster Visualisaties en voeg de
Branch.BranchName
slicer toe aan het veld van de slicer - Selecteer de vertakking in de slicer waarvoor u de trend van de taakduur wilt zien.
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/PipelineRunActivityResults?"
&"$apply=filter( "
&" Pipeline/PipelineName eq '{pipelinename}' "
&" and TaskDisplayName eq '{taskname}' "
&" 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.8, BranchSK, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&" (TaskDuration80thPercentileInSeconds, Branch/BranchName, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Trend van taakduur voor alle pijplijntaken
Gebruik de volgende query om de trend van de taakduur voor alle pijplijntaken in één rapport weer te geven. Ga als volgt te werk om het rapport te maken:
- Kolomgegevenstype wijzigen
- Het rapport Lijndiagram maken
- Selecteer Slicer in het deelvenster Visualisaties en voeg de
TaskDisplayName
slicer toe aan het veld van de slicer - Selecteer de taak in de slicer waarvoor u de trend van de taakduur wilt zien.
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
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.8, TaskDisplayName, PipelineRunCompletedDateSK) as TaskDuration80thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration80thPercentileInSeconds, TaskDisplayName, PipelineRunCompletedOn/Date)) "
&"&$orderby=PipelineRunCompletedOn/Date asc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Optioneel) Naam van query wijzigen
U kunt de naam van het standaardquerylabel Query1 wijzigen in iets zinvoller. Voer gewoon een nieuwe naam in het deelvenster Queryinstellingen in.
Kolommen uitvouwen in Power Query-editor
Voordat u het rapport maakt, moet u kolommen uitvouwen die records met verschillende velden retourneren. In dit geval wilt u de kolom uitbreiden om deze PipelineRunCompletedOn
plat PipelineRunCompletedOn.Date
te maken.
Zie Transform Analytics-gegevens voor het genereren van Power BI-rapporten voor meer informatie over het uitvouwen van werkitems.
Kolomgegevenstype wijzigen
Wijzig in het menu Transformeren het gegevenstype voor de TaskDuration80thPercentileInSeconds
kolom in Decimaal getal. Zie Een kolomgegevenstype transformeren voor meer informatie.
(Optioneel) Kolomvelden een andere naam geven
U kunt de naam van kolomvelden wijzigen. U kunt bijvoorbeeld de naam van de kolom TaskDuration80thPercentileInSeconds
wijzigen in 80th Percentile
. Zie Kolomvelden een andere naam geven.
Sluit de query en pas uw wijzigingen toe
Zodra u al uw gegevenstransformaties hebt voltooid, kiest u Sluiten en toepassen in het menu Start om de query op te slaan en terug te keren naar het tabblad Rapport in Power BI.
Het rapport Lijndiagram maken
Kies in Power BI onder Visualisaties het rapport Lijndiagram .
Toevoegen
PipelineRunCompletedOn.Date
aan X-as. Klik met de rechtermuisknop op het veld en kies PipelineRunCompletedOn.Date in plaats van datumhiërarchie.Voeg deze
TaskDuration80thPercentileInSeconds
toe aan de Y-as en klik er met de rechtermuisknop op om ervoor te zorgen dat Som is geselecteerd.Als u de rapporttitel wilt wijzigen, selecteert u het pictogram Uw visuele verfborstel opmaken in het deelvenster Visualisaties, selecteert u Algemeen, vouwt u Titel uit en vervangt u de bestaande tekst.
In de volgende afbeelding ziet u het resulterende rapport.