Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Jak długo trwa wykonywanie różnych zadań? Ten artykuł zawiera zapytania, których można użyć do wygenerowania raportu dla określonego potoku i jego zadań. Na przykład, poniższa ilustracja przedstawia 50., 80. i 95. percentyle w sekundach dla wszystkich zakończonych zadań dla określonego potoku.
Uwaga
Przykładowe zapytania w tym artykule wymagają wersji 3.0-preview lub nowszej źródła OData Analytics. Podziel się swoją opinią.
| Kategoria | Wymagania |
|---|---|
| poziomy dostępu |
-
Członek projektu. — Co najmniej dostęp w warstwie podstawowej. |
| Uprawnienia użytkownika | 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 przeczytasz Przegląd przykładowych raportów przy użyciu zapytań OData i masz podstawową wiedzę na temat Power BI.
Przykładowe zapytania
Wykonaj zapytanie dotyczące zestawu jednostek, PipelineRunActivityResults? aby zwrócić informacje o czasie trwania zadania.
Uwaga
Aby znaleźć dostępne właściwości filtrowania lub raportowania, zobacz referencję Metadanych dla usługi Azure Pipelines. Zapytania lub właściwości zwracane można filtrować przy użyciu dowolnej Property wartości zdefiniowanej pod EntityType, lub dowolnej NavigationPropertyBinding Path wartości wymienionej dla EntitySet. Każda EntitySet mapuje na EntityType, który dokumentuje typ danych dla każdej właściwości.
Skopiuj i wklej następujące zapytanie Power BI bezpośrednio do okna Pobierz dane>Blnk Query. 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/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.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds, "
&"percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds) "
&"/groupby( "
&"(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName)) "
&"&$orderby=TaskDuration50thPercentileInSeconds desc "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Ciągi podstawienia i podział zapytań
Zastąp następujące ciągi swoimi wartościami. Nie uwzględniaj nawiasów klamrowych {} w podstawieniu. Jeśli na przykład nazwa organizacji to "Fabrikam", zastąp ciąg {organization}Fabrikam, 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:YYYY-MM-DDnastępnieZ(wskaźnik UTC). Przykład:2026-09-01Zreprezentuje 1 września 2026 r. Nie umieszczaj tekstu w cudzysłowie ani w nawiasach kwadratowych.
Podział zapytań
W poniższej tabeli opisano każdą część zapytania.
Część kwerendy
Opis
$apply=filter(
Rozpocznij filter() klauzulę.
Pipeline/PipelineName eq '{pipelinename}'
Zwracanie przebiegów potoku dla określonego potoku.
and PipelineRunCompletedOn/Date ge {startdate}
Zwróć wyniki zadania dla uruchomienia potoku w dniu lub po określonej dacie.
and (PipelineRunOutcome eq 'Succeed' or PipelineRunOutcome eq 'PartiallySucceeded')
Zwracaj wyniki zadania tylko dla pomyślnych lub częściowo pomyślnych przebiegów potoku.
and (CanceledCount ne 1 and SkippedCount ne 1 and AbandonedCount ne 1)
Pomiń przebiegi potoków, które zostały anulowane, pominięte lub porzucone.
)
Zamknij klauzulę filter() .
/compute(
Rozpocznij compute() klauzulę.
percentile_cont(ActivityDurationSeconds, 0.5, TaskDisplayName) as TaskDuration50thPercentileInSeconds,
Dla każdego zadania oblicz 50. percentyl czasu trwania zadań dla wszystkich zadań spełniających kryteria filtrowania.
percentile_cont(ActivityDurationSeconds, 0.8, TaskDisplayName) as TaskDuration80thPercentileInSeconds,
Dla każdego zadania oblicz 80. percentyl czasu trwania zadań dla wszystkich zadań spełniających kryteria filtrowania.
percentile_cont(ActivityDurationSeconds, 0.95, TaskDisplayName) as TaskDuration95thPercentileInSeconds)
Dla każdego zadania oblicz 95. percentyl czasu trwania zadań dla wszystkich zadań spełniających kryteria filtrowania.
/groupby(
Uruchom klauzulę groupby() .
(TaskDuration50thPercentileInSeconds, TaskDuration80thPercentileInSeconds,TaskDuration95thPercentileInSeconds, TaskDisplayName))
Grupuj według nazwy zadania oraz obliczonych wartości czasu trwania zadania dla 50., 80. i 95. percentyla.
&$orderby=TaskDuration50thPercentileInSeconds desc
Uporządkuj odpowiedzi według zadania z najwyższym 50. percentylem czasu trwania.
(Opcjonalnie) Zmienianie nazwy zapytania
Możesz zmienić nazwę domyślnej etykiety zapytania Query1 na bardziej zrozumiałą. Wprowadź nową nazwę w okienku Ustawienia zapytania .
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.
TaskDuration50thPercentileInSecondsTaskDuration80thPercentileInSecondsTaskDuration95thPercentileInSeconds
(Opcjonalnie) Zmienianie nazwy pól kolumn
Możesz zmienić nazwy pól kolumn. Możesz na przykład zmienić nazwy następujących kolumn, aby były bardziej przyjazne dla wyświetlania. Aby dowiedzieć się, jak to zrobić, zobacz Zmienianie nazwy pól kolumn.
| Oryginalna nazwa pola | Zmieniono nazwę pola |
|---|---|
TaskDisplayName |
Nazwa zadania |
TaskDuration50thPercentileInSeconds |
50. percentyl |
TaskDuration80thPercentileInSeconds |
80. percentyl |
TaskDuration95thPercentileInSeconds |
95 percentyl |
Zamknij zapytanie i zastosuj zmiany
Po zakończeniu wszystkich przekształceń danych wybierz pozycję Zamknij i zastosuj z menu Narzędzia główne . Ta akcja zapisuje zapytanie i zwraca cię do karty Report w Power BI.
Utwórz raport tabelaryczny
W Power BI w obszarze Visualizations wybierz raport Table. Zmień nazwę pól zgodnie z opisem w sekcji Zmienianie nazwy pól kolumny .
Dodaj następujące pola do kolumn w określonej kolejności:
- Nazwa zadania
- 50 Percentyl
- 80. percentyl
- 95. percentyl
Aby zmienić tytuł raportu, wybierz ikonę Formatuj wizualizację pędzla do malowania w okienku Wizualizacje , wybierz pozycję Ogólne, rozwiń pozycję Tytuł i zastąp istniejący tekst.
Na poniższej ilustracji przedstawiono część wynikowego raportu.