Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Każde zapytanie GraphQL i mutacja wykonywane za pośrednictwem interfejsu API sieci szkieletowej dla języka GraphQL generuje szczegółowe dzienniki operacji, które przechwytują metryki wydajności, tekst zapytania, szczegóły uwierzytelniania i wyniki wykonywania. Te dzienniki są automatycznie zbierane i przechowywane w bazie danych monitorowania obszaru roboczego, zapewniając wgląd w sposób używania interfejsów API języka GraphQL i sposobu ich działania.
Dzienniki operacji graphQL są częścią możliwości monitorowania obszaru roboczego sieci Szkieletowej. Po włączeniu monitorowania obszaru roboczego sieć szkieletowa tworzy bazę danych usługi Eventhouse w obszarze roboczym, która stale zbiera dzienniki ze wszystkich interfejsów API graphQL. Możesz wykonywać zapytania dotyczące tych dzienników przy użyciu języka KQL (Kusto Query Language), aby rozwiązać problemy, zoptymalizować wydajność, śledzić wzorce użycia i upewnić się, że interfejsy API spełniają wymagania umowy SLA.
Wymagania wstępne
Aby uzyskać dostęp do dzienników operacji programu GraphQL i wykonywać względem ich zapytań:
- Włączanie monitorowania obszaru roboczego w obszarze roboczym usługi Fabric
- Uzyskiwanie dostępu do bazy danych KQL usługi Eventhouse utworzonej dla obszaru roboczego
- Znajomość języka KQL (Kusto Query Language) na potrzeby wykonywania zapytań dotyczących dzienników
Po włączeniu monitorowania operacje graphQL są automatycznie rejestrowane w dwóch tabelach: GraphQLMetrics dla zagregowanych metryk i GraphQLLog szczegółowych dzienników operacji.
Kto używa dzienników operacji GraphQL
Dzienniki operacji i monitorowanie są niezbędne dla:
- Administratorzy obszaru roboczego sieci szkieletowej monitorujący użycie interfejsu API GraphQL, wydajność i zużycie pojemności
- Inżynierowie danych śledzący wzorce dostępu do danych i optymalizowanie zapytań usługi Fabric lakehouse i magazynu
- Zespoły DevOps zapewniające aplikacje produkcyjne korzystające z danych sieci Szkieletowej spełniają wymagania umowy SLA
- Administratorzy pojemności sieci szkieletowej rozumieją metryki użycia interfejsu API na potrzeby planowania pojemności i zarządzania kosztami
Użyj dzienników operacji, gdy musisz monitorować, rozwiązywać problemy lub analizować wydajność i użycie interfejsów API graphQL usługi Fabric.
Dzienniki operacji programu GraphQL
Zdarzenie dziennika dla każdego zapytania uruchamianego przez interfejs API sieci szkieletowej dla języka GraphQL w połączonych źródłach danych jest przechowywane w dwóch uzupełniających tabelach:
- GraphQLMetrics: zawiera zagregowane dane metryk z podsumowaniami ziarna czasu, idealne do monitorowania wydajności i analizy trendów
- GraphQLLog: zawiera szczegółowe dzienniki operacji z pełnym tekstem zapytania i szczegółami wykonywania, idealne do rozwiązywania problemów z określonymi zapytaniami
Użyj następujących dzienników, aby:
- Identyfikowanie zmian zachowania i potencjalnego obniżenia wydajności interfejsu API
- Wykrywanie nietypowych lub dużych zasobów zapytań
- Identyfikowanie użytkowników i aplikacji z największą liczbą zapytań
- Analizowanie wydajności zapytań i trendów
- Rozwiązywanie problemów z wolnymi zapytaniami
- Diagnozowanie problemów z określonymi zapytaniami GraphQL
Tabela GraphQLMetrics
Tabela GraphQLMetrics przechowuje zagregowane metryki dla operacji GraphQL. Ta tabela służy do monitorowania wydajności, planowania pojemności i identyfikowania trendów w czasie.
Ta tabela zawiera następujące kolumny:
| Nazwa kolumny | Typ | Opis |
|---|---|---|
| Sygnatura czasowa | data/godzina | Sygnatura czasowa (UTC) czasu wygenerowania wpisu dziennika podczas tworzenia rekordu przez źródło danych. |
| ItemId | ciąg | Unikatowy identyfikator rejestrowania danych przez zasób. |
| ItemKind | ciąg | Typ rejestrowania artefaktu operacji. |
| Nazwa_produktu | ciąg | Nazwa artefaktu sieci szkieletowej rejestrowania tej operacji. |
| WorkspaceId | ciąg | Unikatowy identyfikator obszaru roboczego sieć szkieletowa, który zawiera artefakt, na którym działa |
| Nazwa obszaru roboczego | ciąg | Nazwa obszaru roboczego Sieć szkieletowa zawierająca artefakt. |
| Identyfikator pojemności | ciąg | Unikatowy identyfikator pojemności obsługującej artefakt, na który działa. |
| CustomerTenantId | ciąg | Identyfikator dzierżawy klienta, w którym wykonano operację. |
| PlatformMonitoringTableName | ciąg | Nazwa tabeli do rekordów należy (lub certyfikowany typ zdarzenia rekordu). Format to <WorkloadName> + [OperationType]+ >TelemetryType<> |
| Region (Region) | ciąg | Region zasobu emitujący zdarzenie; na przykład Wschodnie stany USA lub Francja Południowa. |
| MetricTimeGrain | ciąg | Ziarno czasu metryki (czas trwania ISO 8601). |
| MetricUnitName | ciąg | Jednostka metryki. |
| MetricSumValue | długi | Zagregowana wartość sumy metryki w ciągu jednej minuty. |
| DatasourceTypes | dynamiczna | Tablica typów źródła danych, które są używane przez model. |
| Kod wyniku | ciąg | Kod błędu działań, których działanie zakończyło się niepowodzeniem, używane do rozszerzania użycia na niezawodność. |
| Stan | ciąg | Stan operacji. Zapytanie zostało wykonane pomyślnie/pomyślnie z błędami/niepowodzeniem. |
Tabela GraphQLLog
Tabela GraphQLLog przechowuje szczegółowe dzienniki operacji dla każdego wykonywania zapytań GraphQL. Ta tabela służy do rozwiązywania problemów z określonymi zapytaniami, analizowania tekstu zapytania i badania błędów lub problemów z wydajnością.
Aby uzyskać więcej informacji na temat zdarzeń i przechodzenia do szczegółów zdarzenia ExecutionMetrics , zobacz Zdarzenia i schemat.
Ta tabela zawiera następujące kolumny:
| Nazwa kolumny | Typ | Opis |
|---|---|---|
| Sygnatura czasowa | data/godzina | Sygnatura czasowa (UTC) czasu wygenerowania wpisu dziennika podczas tworzenia rekordu przez źródło danych. |
| OperationName | ciąg | Nazwa operacji. |
| ItemId | ciąg | Unikatowy identyfikator rejestrowania danych przez zasób. |
| ItemKind | ciąg | Typ rejestrowania artefaktu operacji. |
| Nazwa_produktu | ciąg | Nazwa artefaktu sieci szkieletowej rejestrowania tej operacji. |
| WorkspaceId | ciąg | Unikatowy identyfikator obszaru roboczego Sieć szkieletowa, który zawiera artefakt, na którym działa. |
| Nazwa obszaru roboczego | ciąg | Nazwa obszaru roboczego Sieć szkieletowa zawierająca artefakt. |
| Identyfikator pojemności | ciąg | Unikatowy identyfikator pojemności obsługującej artefakt, na który działa. |
| CorrelationId | ciąg | Identyfikator działania głównego. |
| Identyfikator operacji | ciąg | Unikatowy identyfikator rejestrowanej operacji. |
| Tożsamość | dynamiczna | Szczegóły użytkownika i oświadczenia. Użytkownik skojarzony z zgłaszaną operacją. |
| CustomerTenantId | ciąg | Identyfikator dzierżawy klienta, w którym wykonano operację. |
| DurationMs | długi | Upłynął czas procesora CPU, który minął, podczas przetwarzania wszystkich wymaganych operacji. Jednostka jest wyrażona w milisekundach. |
| Stan | ciąg | Stan operacji. Zapytanie zostało wykonane pomyślnie/pomyślnie z błędami/niepowodzeniem. |
| Poziom | ciąg | Metadane wymagane przez zespół ds. monitorowania platformy. |
| Region (Region) | ciąg | Region zasobu emitujący zdarzenie; na przykład Wschodnie stany USA lub Francja Południowa. |
| PlatformMonitoringTableName | ciąg | Nazwa tabeli do rekordów należy (lub certyfikowany typ zdarzenia rekordu). Format to <WorkloadName> + [OperationType]+ >TelemetryType<> |
| Tekst zapytania | ciąg | Tekst zapytania. |
| GraphQLOverheadDurationMs | długi | Obciążenie graphQL w ms dla żądania płaszczyzny danych. |
| Przetworzone bajty | długi | Przetworzony wolumin danych w bajtach. |
| TransportProtocol | ciąg | Protokół transportu dla żądania. |
| QueryResultMessage | ciąg | Ten wymiar służy do nadawania dodatkowego kontekstu wynikowi operacji zapytania. |
Przykładowe zapytania
Użyj tych zapytań KQL do analizowania dzienników operacji graphQL. Te zapytania można uruchamiać bezpośrednio w edytorze zapytań usługi Eventhouse w obszarze roboczym.
Odnajdowanie wolnych zapytań
Zidentyfikuj zapytania GraphQL, które będą wykonywane dłużej niż 5 sekund:
GraphQLLog
| where DurationMs > 5000
| project Timestamp, ItemName, DurationMs, QueryText, Status, Identity
| order by DurationMs desc
| take 20
Najwięcej użytkowników według liczby zapytań
Znajdź użytkowników lub aplikacje, którzy robią najwięcej żądań GraphQL:
GraphQLLog
| summarize QueryCount = count() by Identity
| order by QueryCount desc
| take 10
Analiza szybkości błędów
Oblicz współczynnik błędów dla operacji GraphQL w czasie:
GraphQLLog
| summarize
TotalQueries = count(),
FailedQueries = countif(Status == "failed"),
ErrorRate = (countif(Status == "failed") * 100.0) / count()
by bin(Timestamp, 1h)
| order by Timestamp desc
Większość zapytań intensywnie korzystających z zasobów
Zidentyfikuj zapytania, które przetwarzają największą ilość danych:
GraphQLLog
| where ProcessedBytes > 0
| project Timestamp, ItemName, ProcessedBytes, QueryText, DurationMs
| order by ProcessedBytes desc
| take 20
Trendy wydajności zapytań
Analizowanie średniej wydajności zapytań w ciągu ostatnich 24 godzin:
GraphQLMetrics
| where Timestamp > ago(24h)
| summarize
AvgDuration = avg(MetricSumValue),
MaxDuration = max(MetricSumValue),
QueryCount = count()
by bin(Timestamp, 1h), ItemName
| order by Timestamp desc
Aby uzyskać więcej przykładów monitorowania obszaru roboczego, odwiedź stronę Monitorowanie obszaru roboczego w repozytorium GitHub przykłady sieci szkieletowej.