Przykładowy raport trendu czasu trwania potoku

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

W tym artykule pokazano, jak utworzyć raport, który pokazuje, jak długo potok zwykle trwa pomyślnie. Dzienny trend raportu czasu trwania potoku jest podobny do wykresu trendu współczynnika potoku w raporcie Szybkość przekazywania potoku.

Na poniższej ilustracji przedstawiono przykład raportu trendu czasu trwania.

Zrzut ekranu przedstawiający raport trendu czasu trwania 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 trendó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 .

Pobieranie trendu czasu trwania 80. 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.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,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.8,CompletedDateSK) as Duration80thPercentileInSeconds)

Oblicz 80. percentyl czasu trwania potoku wszystkich przebiegów potoku, które spełniają kryteria filtrowania.

/groupby(

Rozpocznij grupowanie()

(Duration80thPercentileInSeconds, CompletedOn/Date))

Grupuj według daty ukończenia przebiegu potoku i obliczony dzień mądry 80. czas trwania potoku percentylu.

&$orderby=CompletedOn/Date asc

Zamów odpowiedź według daty ukończenia.

Filtruj według identyfikatora potoku, a nie nazwy 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.8,CompletedDateSK) as Duration80thPercentileInSeconds) "
                &"/groupby( "
                &"(Duration80thPercentileInSeconds, CompletedOn/Date)) "
            &"&$orderby=CompletedOn/Date asc "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Pobierz 50. i 90. percentyl, wraz z 80. trendem czasu trwania percentylu

Możesz wyświetlić trend czasu trwania obliczony przy użyciu innego wartości percentyla. Poniższe zapytania zapewniają 50. i 90. czas trwania potoku percentylu wraz z 80. percentylem.

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,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

Filtruj według gałęzi

Aby wyświetlić trend czasu 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 sekcjach Zmienianie typu danych kolumny i Tworzenie raportu wykresu liniowego.

  • Rozwiń Branch węzeł w pliku Branch.BranchName.
  • Wybierz pozycję Fragmentator wizualizacji usługi Power BI i dodaj Branch.BranchName go do pola fragmentatora.
  • Wybierz potok z fragmentatora, dla którego chcesz zobaczyć trend czasu trwania 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.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

Trend czasu trwania dla wszystkich potoków projektu

Możesz wyświetlić trend czasu trwania dla wszystkich potoków projektu w jednym raporcie. Aby utworzyć raport, wykonaj następujące dodatkowe kroki wraz z opisem w sekcjach Zmienianie typu danych kolumny i Tworzenie raportu wykresu liniowego.

  • Rozwiń Pipeline węzeł w pliku Pipeline.PipelineName.
  • Wybierz pozycję Fragmentator w okienku Wizualizacje i dodaj element Pipeline.PipelineNam do pola fragmentatora.
  • Wybierz potok z fragmentatora, dla którego chcesz zobaczyć trend szybkości przekazywania 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( "
                &"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

Rozwijanie kolumn w Edytor Power Query

Przed utworzeniem raportu należy rozwinąć kolumny zwracające rekordy zawierające kilka pól. W tym przypadku należy rozwinąć kolumnę CompletedOn , aby spłaszczać ją na CompletedOn.Date.
Aby dowiedzieć się, jak rozwinąć elementy robocze, zobacz Transform Analytics data to generate Power BI reports (Przekształcanie danych analizy w celu generowania raportów usługi Power BI).

Zmienianie typu danych kolumny

Z menu Przekształć zmień typ danych dla Duration80thPercentileInSecondswartości Liczba dziesiętna. Aby dowiedzieć się, jak to zrobić, zobacz Przekształcanie typu danych kolumny.

(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 liniowego

  1. W usłudze Power BI w obszarze Wizualizacje wybierz raport Wykres liniowy.

    Zrzut ekranu przedstawiający opcje Pola wizualizacji dla raportu trendu czasu trwania przebiegu potoków.

  2. Dodaj CompletedOn.Date do osi X, kliknij ją prawym przyciskiem myszy i wybierz pozycję CompletedOn.Date, a nie Hierarchia dat.

  3. Dodaj Duration80thPercentileInSeconds do osi Y kliknij ją prawym przyciskiem myszy i upewnij się, że wybrano pozycję Suma .

Wyświetlony raport powinien wyglądać podobnie jak na poniższej ilustracji.

Zrzut ekranu przedstawiający przykładowy raport trendu trwania potoków usługi Power BI.