Udostępnij za pośrednictwem


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.

Zrzut ekranu przedstawiający raport kolumny Czas trwania klastra potoków usługi Power BI.

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

  • Aby wyświetlić dane analizy i wykonać zapytanie dotyczące usługi, musisz być członkiem projektu z dostępem podstawowym lub większym. Domyślnie wszyscy członkowie projektu otrzymują uprawnienia do wykonywania zapytań w usłudze Analytics i definiowania widoków analizy.
  • Aby dowiedzieć się więcej o innych wymaganiach 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 znasz artykuł Omówienie 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 EntitySetlub NavigationPropertyBinding Path . Każda z nich EntitySet odpowiada elementowi EntityType. Aby dowiedzieć się więcej o typie danych każdej wartości, przejrzyj metadane podane dla odpowiedniego EntityTypeelementu .

Zwracanie czasu trwania percentyla dla określonego potoku

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 Fabrikamcią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, Duration80thPercentileInSecondsi 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}

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 pliku Branch.BranchName.
  • Dodaj pole Branch.BranchName do osi X.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 pliku Pipeline.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.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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.

Zrzut ekranu przedstawiający opcję zamknij i zastosuj Edytor Power Query.

Tworzenie raportu wykresu kolumnowego grupowanego

  1. 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.

    Zrzut ekranu przedstawiający kolumnę Wizualizacje i pola w kolumnie Klastrowane potoki usługi Power BI.

  2. 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
  3. 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.

Zrzut ekranu przedstawiający raport kolumny Czas trwania klastra przykładowych potoków usługi Power BI.