Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Jede GraphQL-Abfrage und -Mutation, die über Ihre Fabric-API für GraphQL ausgeführt wird, generiert detaillierte Vorgangsprotokolle, die Leistungsmetriken, Abfragetext, Authentifizierungsdetails und Ausführungsergebnisse erfassen. Diese Protokolle werden automatisch gesammelt und in der Überwachungsdatenbank Ihres Arbeitsbereichs gespeichert und bieten Einblicke in die Verwendung Ihrer GraphQL-APIs und deren Leistung.
GraphQL-Vorgangsprotokolle sind Teil der Arbeitsbereichsüberwachungsfunktion von Fabric. Wenn Sie die Arbeitsbereichsüberwachung aktivieren, erstellt Fabric eine Eventhouse-Datenbank in Ihrem Arbeitsbereich, die kontinuierlich Protokolle aller GraphQL-APIs sammelt. Sie können diese Protokolle mithilfe von KQL (Kusto Query Language) abfragen, um Probleme zu beheben, die Leistung zu optimieren, Verwendungsmuster nachzuverfolgen und sicherzustellen, dass Ihre APIs SLA-Anforderungen erfüllen.
Voraussetzungen
So greifen Sie auf GraphQL-Vorgangsprotokolle zu und abfragen:
- Aktivieren der Arbeitsbereichüberwachung in Ihrem Fabric-Arbeitsbereich
- Zugreifen auf die für Ihren Arbeitsbereich erstellte Eventhouse-KQL-Datenbank
- Vertrautheit mit der Kusto Query Language (KQL) zum Abfragen der Protokolle
Sobald die Überwachung aktiviert ist, werden GraphQL-Vorgänge automatisch in zwei Tabellen protokolliert: GraphQLMetrics für aggregierte Metriken und GraphQLLog für detaillierte Vorgangsprotokolle.
Wer GraphQL-Vorgangsprotokolle verwendet
Betriebsprotokolle und Überwachung sind für Folgendes unerlässlich:
- Fabric-Arbeitsbereichsadministratoren überwachen die GraphQL-API-Nutzung, Leistung und Kapazitätsnutzung
- Datentechniker verfolgen Datenzugriffsmuster und optimieren Fabric Lakehouse- und Warehouse-Abfragen
- DevOps-Teams , die sicherstellen, dass Produktionsanwendungen, die Fabric-Daten verbrauchen, SLA-Anforderungen erfüllen
- Fabric-Kapazitätsadministratoren , die API-Verbrauchsmetriken für die Kapazitätsplanung und die Kostenverwaltung verstehen
Verwenden Sie Vorgangsprotokolle, wenn Sie die Leistung und Verwendung Ihrer Fabric GraphQL-APIs überwachen, beheben oder analysieren müssen.
GraphQL-Vorgangsprotokolle
Ein Protokollereignis für jede Abfrage, die von der Fabric-API für GraphQL in den verbundenen Datenquellen ausgeführt wird, wird in zwei ergänzenden Tabellen gespeichert:
- GraphQLMetrics: Enthält aggregierte Metrikdaten mit Zeitkornzusammenfassungen, ideal für Leistungsüberwachung und Trendanalyse
- GraphQLLog: Enthält detaillierte Vorgangsprotokolle mit vollständigen Abfragetext- und Ausführungsdetails, ideal für die Problembehandlung bestimmter Abfragen
Verwenden Sie die folgenden Protokolle, um:
- Identifizieren von Verhaltensänderungen und potenzieller API-Beeinträchtigungen
- Erkennen ungewöhnlicher oder ressourcenintensiver Abfragen
- Identifizieren Sie Benutzer und Anwendungen mit der höchsten Anzahl von Abfragen.
- Analysieren der Abfrageleistung und Trends
- Beheben des Problems langsamer Abfragen
- Diagnostizieren von Problemen mit bestimmten GraphQL-Abfragen
GraphQLMetrics-Tabelle
In der GraphQLMetrics Tabelle werden aggregierte Metriken für GraphQL-Vorgänge gespeichert. Verwenden Sie diese Tabelle für Leistungsüberwachung, Kapazitätsplanung und Identifizierung von Trends im Laufe der Zeit.
Diese Tabelle enthält die folgenden Spalten:
| Spaltenname | type | BESCHREIBUNG |
|---|---|---|
| Timestamp | datetime | Der Zeitstempel (UTC) des Zeitpunkts, zu dem der Protokolleintrag generiert wurde, als der Datensatz von der Datenquelle erstellt wurde. |
| ItemId | Zeichenfolge | Eindeutige ID der Ressource, die die Daten protokolliert. |
| ItemKind | Zeichenfolge | Typ des Artefakts, das den Vorgang protokolliert. |
| Artikelname | Zeichenfolge | Der Name der Fabric-Artefaktprotokollierung für diesen Vorgang. |
| WorkspaceId | Zeichenfolge | Eindeutiger Bezeichner des Fabric-Arbeitsbereichs, der das Artefakt enthält, das vom Vorgang betroffen ist. |
| WorkspaceName | Zeichenfolge | Name des Fabric-Arbeitsbereichs, der das Artefakt enthält. |
| CapacityId | Zeichenfolge | Eindeutiger Bezeichner der Kapazität, die das Artefakt hostet, das vom Vorgang betroffen ist. |
| CustomerTenantId | Zeichenfolge | Kundenmandanten-ID, in der der Vorgang ausgeführt wurde. |
| PlatformMonitoringTableName | Zeichenfolge | Der Name der Tabelle, zu der Datensätzen gehört (oder der zertifizierte Ereignistyp des Datensatzes). Das Format lautet <WorkloadName> + [OperationType>]+ <TelemetryType> |
| Region | Zeichenfolge | Die Region der Ressource, die das Ereignis ausgibt, z. B USA, Osten oder Frankreich, Süden. |
| MetricTimeGrain | Zeichenfolge | Aggregationsintervall der Metrik (ISO 8601 Duration). |
| MetricUnitName | Zeichenfolge | Einheit der Metrik |
| MetricSumValue | long | Der aggregierte Summenwert einer Metrik während einer einzelnen Minute. |
| DatasourceTypes | dynamisch | Array von DataSource-Typen, die vom Modell verwendet werden. |
| ResultCode | Zeichenfolge | Fehlercode der fehlgeschlagenen Aktivitäten, der verwendet wird, um den Verbrauch auf die Zuverlässigkeit auszudehnen. |
| Status | Zeichenfolge | Der Status des Vorgangs. Die Abfrage war erfolgreich/erfolgreich mit Fehlern/fehlerhaft. |
GraphQLLog-Tabelle
In der GraphQLLog Tabelle werden detaillierte Vorgangsprotokolle für jede GraphQL-Abfrageausführung gespeichert. Verwenden Sie diese Tabelle, um bestimmte Abfragen zu behandeln, Abfragetext zu analysieren und Fehler oder Leistungsprobleme zu untersuchen.
Weitere Informationen zu den Ereignissen und einem Drilldown zum ExecutionMetrics-Ereignis finden Sie unter Ereignisse und Schema.
Diese Tabelle enthält die folgenden Spalten:
| Spaltenname | type | BESCHREIBUNG |
|---|---|---|
| Timestamp | datetime | Der Zeitstempel (UTC) des Zeitpunkts, zu dem der Protokolleintrag generiert wurde, als der Datensatz von der Datenquelle erstellt wurde. |
| Vorgangsname | Zeichenfolge | Der Name des Vorgangs. |
| ItemId | Zeichenfolge | Eindeutige ID der Ressource, die die Daten protokolliert. |
| ItemKind | Zeichenfolge | Typ des Artefakts, das den Vorgang protokolliert. |
| Artikelname | Zeichenfolge | Der Name der Fabric-Artefaktprotokollierung für diesen Vorgang. |
| WorkspaceId | Zeichenfolge | Eindeutiger Bezeichner des Fabric-Arbeitsbereichs, der das Artefakt enthält, das vom Vorgang betroffen ist. |
| WorkspaceName | Zeichenfolge | Name des Fabric-Arbeitsbereichs, der das Artefakt enthält. |
| CapacityId | Zeichenfolge | Eindeutiger Bezeichner der Kapazität, die das Artefakt hostet, das vom Vorgang betroffen ist. |
| CorrelationId | Zeichenfolge | Stamm-Aktivitäts-ID. |
| OperationId | Zeichenfolge | Eindeutiger Bezeichner für den protokollierten Vorgang. |
| Identität | dynamisch | Benutzer- und Anspruchsdetails. Der Benutzer, der dem gemeldeten Vorgang zugeordnet ist. |
| CustomerTenantId | Zeichenfolge | Kundenmandanten-ID, in der der Vorgang ausgeführt wurde. |
| DurationMs | long | Verstrichene CPU-Zeit, die überschritten wurde, während alle erforderlichen Vorgänge verarbeitet wurden. Einheit in Millisekunden. |
| Status | Zeichenfolge | Der Status des Vorgangs. Die Abfrage war erfolgreich/erfolgreich mit Fehlern/fehlerhaft. |
| Ebene | Zeichenfolge | Metadaten, die vom Plattformüberwachungsteam benötigt werden. |
| Region | Zeichenfolge | Die Region der Ressource, die das Ereignis ausgibt, z. B USA, Osten oder Frankreich, Süden. |
| PlatformMonitoringTableName | Zeichenfolge | Der Name der Tabelle, zu der Datensätzen gehört (oder der zertifizierte Ereignistyp des Datensatzes). Das Format lautet <WorkloadName> + [OperationType>]+ <TelemetryType> |
| QueryText | Zeichenfolge | Der Text der Abfrage. |
| GraphQLOverheadDurationMs | long | Der GraphQL-Overhead in ms für eine Datenebenenanforderung. |
| ProcessedBytes | long | Verarbeitetes Datenvolume in Byte. |
| TransportProtocol | Zeichenfolge | Transportprotokoll für eine Anforderung. |
| QueryResultMessage | Zeichenfolge | Diese Dimension wird verwendet, um dem Ergebnis eines Abfragevorgangs zusätzlichen Kontext zu geben. |
Beispielabfragen
Verwenden Sie diese KQL-Abfragen, um Ihre GraphQL-Vorgangsprotokolle zu analysieren. Sie können diese Abfragen direkt im Eventhouse-Abfrage-Editor in Ihrem Arbeitsbereich ausführen.
Ermitteln von langsamen Abfragen
Identifizieren Sie GraphQL-Abfragen, die länger als 5 Sekunden dauern, um folgendes auszuführen:
GraphQLLog
| where DurationMs > 5000
| project Timestamp, ItemName, DurationMs, QueryText, Status, Identity
| order by DurationMs desc
| take 20
Die häufigsten Benutzer nach Abfrageanzahl
Suchen Sie, welche Benutzer oder Anwendungen die meisten GraphQL-Anforderungen stellen:
GraphQLLog
| summarize QueryCount = count() by Identity
| order by QueryCount desc
| take 10
Fehlerratenanalyse
Berechnen der Fehlerrate für GraphQL-Vorgänge im Laufe der Zeit:
GraphQLLog
| summarize
TotalQueries = count(),
FailedQueries = countif(Status == "failed"),
ErrorRate = (countif(Status == "failed") * 100.0) / count()
by bin(Timestamp, 1h)
| order by Timestamp desc
Die meisten ressourcenintensiven Abfragen
Identifizieren Sie Abfragen, die die größte Datenmenge verarbeiten:
GraphQLLog
| where ProcessedBytes > 0
| project Timestamp, ItemName, ProcessedBytes, QueryText, DurationMs
| order by ProcessedBytes desc
| take 20
Abfrageleistungstrends
Analysieren Sie die durchschnittliche Abfrageleistung in den letzten 24 Stunden:
GraphQLMetrics
| where Timestamp > ago(24h)
| summarize
AvgDuration = avg(MetricSumValue),
MaxDuration = max(MetricSumValue),
QueryCount = count()
by bin(Timestamp, 1h), ItemName
| order by Timestamp desc
Weitere Beispiele für die Arbeitsbereichüberwachung finden Sie im Fabric-Beispiel-GitHub-Repository .