Przykładowy raport czasu trwania potoku
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
W tym artykule pokazano, jak uzyskać czas trwania potoku lub czas potrzebny na uruchomienie potoku. Ten raport jest podobny do metryki podsumowania czasu trwania na wykresie "Czas trwania potoku" raportu Czas trwania potoku.
Na poniższej ilustracji przedstawiono przykład raportu czasu trwania dla określonego potoku dla wszystkich przebiegów potoku od września 2022 r. do 15 grudnia 2022 r.
Ważne
Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne dla usług Azure DevOps Services i Azure DevOps Server 2020 i nowszych wersji. Przykładowe zapytania podane w tym artykule są prawidłowe tylko w przypadku usługi Azure DevOps Server 2020 i nowszych wersji oraz zależą od wersji 3.0 w wersji zapoznawczej lub nowszej. Zachęcamy do korzystania z tych zapytań i przekazywania opinii.
Wymagania wstępne
- Dostęp: być członkiem projektu z co najmniej dostępem podstawowym.
- Uprawnienia: domyślnie członkowie projektu mają uprawnienia do wykonywania zapytań w usłudze Analytics i tworzenia widoków.
- Aby uzyskać więcej informacji na temat innych wymagań wstępnych dotyczących włączania usługi i funkcji oraz ogólnych działań śledzenia danych, zobacz Uprawnienia i wymagania wstępne dotyczące dostępu do analizy.
Uwaga
W tym artykule założono, że zapoznasz się z omówieniem przykładowych raportów przy użyciu zapytań OData i masz podstawową wiedzę na temat usługi Power BI.
Przykładowe zapytania
Następujące zapytania PipelineRuns
zestawu jednostek umożliwiają tworzenie różnych, ale podobnych raportów czasu trwania potoku.
Uwaga
Aby określić dostępne właściwości dla celów filtru lub raportu, zobacz Dokumentacja metadanych dla usługi Azure Pipelines. Możesz filtrować zapytania lub zwracać właściwości przy użyciu dowolnej z Property
wartości dostępnych EntityType
w elemecie EntitySet
lub NavigationPropertyBinding Path
. Każda z nich EntitySet
odpowiada elementowi EntityType
. Aby uzyskać więcej informacji na temat typu danych każdej wartości, zapoznaj się z metadanymi podanymi dla odpowiedniego EntityType
elementu .
Zwracanie czasu trwania percentyla dla określonego potoku
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
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) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Ciągi podstawienia i podział zapytań
Zastąp następujące ciągi wartościami. Nie dołączaj nawiasów {} do podstawienia. Na przykład jeśli nazwa organizacji to "Fabrikam", zastąp Fabrikam
ciąg {organization}
, a nie {Fabrikam}
.
{organization}
— Nazwa organizacji{project}
— Nazwa projektu zespołowego{pipelinename}
— Nazwa potoku. Przykład:Fabrikam hourly build pipeline
{startdate}
— Data rozpoczęcia raportu. Format: RRRR-MM-DDZ. Przykład:2021-09-01Z
reprezentuje 1 września 2021 r. Nie umieszczaj cudzysłowów ani nawiasów kwadratowych i używaj dwóch cyfr zarówno dla miesiąca, jak i daty.
Podział zapytań
W poniższej tabeli opisano każdą część zapytania.
Część kwerendy
Opis
$apply=filter(
Klauzula Start filter()
.
Pipeline/PipelineName eq '{pipelinename}'
Zwracanie przebiegów potoku dla określonego potoku.
and CompletedDate ge {startdate}
Potok zwracany jest uruchamiany w określonym dniu lub po określonej dacie.
and (SucceededCount eq 1 or PartiallySucceededCount eq 1)
Zwracanie tylko pomyślnych lub częściowo pomyślnych przebiegów.
)
Zamknij filter()
klauzulę.
/compute(
Klauzula Start compute()
.
percentile_cont(TotalDurationSeconds, 0.5) as Duration50thPercentileInSeconds,
Oblicz 50. percentyl czasu trwania potoku wszystkich przebiegów potoku, które spełniają kryteria filtrowania.
percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds,
Oblicz 80. percentyl czasu trwania potoku wszystkich przebiegów potoku, które spełniają kryteria filtrowania.
percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds)
Oblicz 95. percentyl czasu trwania potoku wszystkich przebiegów potoku, które spełniają kryteria filtrowania.
/groupby(
Klauzula Start groupby()
.
(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds))
Grupuj odpowiedź według Duration50thPercentileInSeconds
, Duration80thPercentileInSeconds
i Duration95thPercentileInSeconds
zakończ klauzulę groupby
.
Zwracanie czasu trwania percentyla dla określonego identyfikatora potoku
Nazwy potoków można zmienić. Aby upewnić się, że raporty usługi Power BI nie przerywają zmiany nazwy potoku, użyj identyfikatora potoku, a nie nazwy potoku. Identyfikator potoku można uzyskać z adresu URL strony przebiegów potoku.
https://dev.azure.com/{organization}/{project}/_build?definitionId= {pipelineid}
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
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.5) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Zwracaj czasy trwania percentylu dla określonego potoku, filtruj według gałęzi
Aby wyświetlić czas trwania potoku tylko dla określonej gałęzi , użyj następujących zapytań. Aby utworzyć raport, wykonaj następujące dodatkowe kroki wraz z opisem w sekcji Zmień typ danych kolumny i Utwórz raport wykresu kolumnowego Klastrowane.
- Rozwiń
Branch
węzeł w plikuBranch.BranchName
. - Dodaj pole Branch.BranchName do osi X.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
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, BranchSK) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8, BranchSK) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95, BranchSK) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Branch/BranchName)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Zwracanie czasu trwania percentylu dla wszystkich potoków projektu
Aby wyświetlić czas trwania wszystkich potoków projektu w jednym raporcie, użyj następujących zapytań. Aby utworzyć raport, wykonaj następujące dodatkowe kroki wraz z opisem w sekcji Zmień typ danych kolumny i Utwórz raport wykresu kolumnowego Klastrowane.
- Rozwiń
Pipeline
węzeł w plikuPipeline.PipelineName
. - Dodaj pole PIpeline.PipelineName do osi X.
Zobacz również Podsumowanie wyników dla wszystkich potoków przykładowego raportu, który zawiera szczegółowe instrukcje , zgodnie z wymaganiami w tym miejscu.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
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.5, PipelineId) as Duration50thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.8, PipelineId) as Duration80thPercentileInSeconds, "
&"percentile_cont(TotalDurationSeconds, 0.95, PipelineId) as Duration95thPercentileInSeconds) "
&"/groupby( "
&"(Duration50thPercentileInSeconds, Duration80thPercentileInSeconds,Duration95thPercentileInSeconds, Pipeline/PipelineName)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Zmienianie typu danych kolumny
Z menu Przekształć zmień typ danych dla następujących kolumn na Liczba dziesiętna. Aby dowiedzieć się, jak to zrobić, zobacz Przekształcanie typu danych kolumny.
Duration50thPercentileInSeconds
Duration80thPercentileInSeconds
Duration95thPercentileInSeconds
(Opcjonalnie) Zmienianie nazwy pól kolumn
Możesz zmienić nazwy pól kolumn. Możesz na przykład zmienić nazwę kolumny Pipeline.PipelineName
na Pipeline Name
, lub TotalCount
na Total Count
. Aby dowiedzieć się, jak to zrobić, zobacz Zmienianie nazwy pól kolumn.
Zamknij zapytanie i zastosuj zmiany
Po zakończeniu wszystkich przekształceń danych wybierz pozycję Zamknij i zastosuj z menu Narzędzia główne , aby zapisać zapytanie i wrócić do karty Raport w usłudze Power BI.
Tworzenie raportu wykresu kolumnowego grupowanego
W usłudze Power BI w obszarze Wizualizacje wybierz raport Wykres kolumnowy grupowany. W przykładzie przyjęto założenie, że nazwa kolumn nie została zmieniona.
Dodaj następujące pola do osi Y, kliknij prawym przyciskiem myszy każde pole i upewnij się, że wybrano pozycję Suma .
Duration50thPercentileInSeconds
Duration80thPercentileInSeconds
Duration95thPercentileInSeconds
Aby zmienić tytuł raportu, legendę lub inne wizualizacje raportu, wybierz ikonę Formatuj ikonę pędzla do malowania wizualizacji w okienku Wizualizacje i dostosuj co najmniej jedno ustawienie.
Raport powinien wyglądać podobnie jak na poniższej ilustracji.