Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ogni query GraphQL e la mutazione eseguite tramite l'API fabric per GraphQL genera log delle operazioni dettagliati che acquisiscono metriche delle prestazioni, testo di query, dettagli di autenticazione e risultati di esecuzione. Questi log vengono raccolti e archiviati automaticamente nel database di monitoraggio dell'area di lavoro, fornendo visibilità sul modo in cui vengono usate le API GraphQL e su come vengono eseguite.
I log delle operazioni graphQL fanno parte della funzionalità di monitoraggio dell'area di lavoro di Fabric. Quando si abilita il monitoraggio dell'area di lavoro, Fabric crea un database eventhouse nell'area di lavoro che raccoglie continuamente i log da tutte le API GraphQL. È possibile eseguire query su questi log usando KQL (Kusto Query Language) per risolvere i problemi, ottimizzare le prestazioni, tenere traccia dei modelli di utilizzo e assicurarsi che le API soddisfino i requisiti del contratto di servizio.
Prerequisiti
Per accedere ai log delle operazioni graphQL ed eseguire query:
- Abilitare il monitoraggio dell'area di lavoro nell'area di lavoro Infrastruttura
- Accedere al database KQL di Eventhouse creato per l'area di lavoro
- Familiarità con il linguaggio di query Kusto (KQL) per l'esecuzione di query sui log
Dopo aver abilitato il monitoraggio, le operazioni GraphQL vengono registrate automaticamente in due tabelle: GraphQLMetrics per le metriche aggregate e GraphQLLog per i log delle operazioni dettagliate.
Chi usa i log delle operazioni graphQL
I log delle operazioni e il monitoraggio sono essenziali per:
- Amministratori dell'area di lavoro infrastruttura che monitora l'utilizzo, le prestazioni e il consumo di capacità dell'API GraphQL
- Data engineer che monitora i modelli di accesso ai dati e ottimizza le query di fabric lakehouse e warehouse
- I team DevOps garantiscono che le applicazioni di produzione che usano i dati di Fabric soddisfino i requisiti del contratto di servizio
- Amministratori della capacità dell'infrastruttura che comprende le metriche di consumo delle API per la pianificazione della capacità e la gestione dei costi
Usare i log delle operazioni quando è necessario monitorare, risolvere i problemi o analizzare le prestazioni e l'utilizzo delle API GraphQL di Fabric.
Log delle operazioni graphQL
Un evento di log per ogni query eseguita dall'API fabric per GraphQL nelle origini dati connesse viene archiviato in due tabelle complementari:
- GraphQLMetrics: contiene dati delle metriche aggregati con riepiloghi con granularità temporale, ideale per il monitoraggio delle prestazioni e l'analisi delle tendenze
- GraphQLLog: contiene log delle operazioni dettagliati con dettagli completi sul testo della query e sull'esecuzione, ideale per la risoluzione dei problemi relativi a query specifiche
Usare questi log per:
- Identificare le modifiche del comportamento e la potenziale riduzione delle prestazioni delle API
- Rilevare query insolite o con elevato carico di risorse
- Identificare utenti e applicazioni con il maggior numero di query
- Analizzare le prestazioni e le tendenze delle query
- Risolvere i problemi di query lente
- Diagnosticare i problemi relativi a query GraphQL specifiche
Tabella GraphQLMetrics
La GraphQLMetrics tabella archivia le metriche aggregate per le operazioni GraphQL. Usare questa tabella per il monitoraggio delle prestazioni, la pianificazione della capacità e l'identificazione delle tendenze nel tempo.
Questa tabella contiene le colonne seguenti:
| Nome colonna | Tipo | Descrizione |
|---|---|---|
| Timestamp: | datetime | Timestamp (UTC) di quando la voce di log è stata generata quando il record è stato creato dall'origine dati. |
| ItemId | string | ID univoco della risorsa che registra i dati. |
| ItemKind | string | Tipo di elemento che registra l'operazione. |
| ItemName | string | Nome dell'artefatto fabric che registra questa operazione. |
| WorkspaceId | string | Identificatore univoco dell'area di lavoro Infrastruttura che contiene l'artefatto utilizzato |
| WorkspaceName | string | Nome dell'area di lavoro Infrastruttura contenente l'artefatto. |
| CapacityId | string | Identificatore univoco della capacità che ospita l'artefatto su cui viene eseguito l'esecuzione. |
| CustomerTenantId | string | ID tenant del cliente, in cui è stata eseguita l'operazione. |
| PlatformMonitoringTableName | string | Il nome della tabella ai record appartiene (o al tipo di evento certificato del record). Il formato è <WorkloadName> + [OperationType>]+ <TelemetryType> |
| Paese | string | Area della risorsa che emette l'evento; ad esempio Stati Uniti orientali o Francia meridionale. |
| MetricTimeGrain | string | Intervallo di tempo della metrica (durata ISO 8601). |
| MetricUnitName | string | Unità della metrica. |
| MetricSumValue | long | Valore di somma aggregato di una metrica durante un singolo minuto. |
| DatasourceTypes | dynamic | Matrice di tipi DataSource utilizzati dal modello. |
| ResultCode | string | Codice errore delle attività non riuscite, usato per estendere l'utilizzo all'affidabilità. |
| Stato | string | Stato dell'operazione. La query è stata eseguita correttamente con errori o errori. |
Tabella GraphQLLog
La GraphQLLog tabella archivia i log delle operazioni dettagliati per ogni esecuzione di query GraphQL. Usare questa tabella per la risoluzione dei problemi relativi a query specifiche, l'analisi del testo delle query e l'analisi di errori o problemi di prestazioni.
Per altre informazioni sugli eventi e un drill-down nell'evento ExecutionMetrics , vedere Eventi e schema.
Questa tabella contiene le colonne seguenti:
| Nome colonna | Tipo | Descrizione |
|---|---|---|
| Timestamp: | datetime | Timestamp (UTC) di quando la voce di log è stata generata quando il record è stato creato dall'origine dati. |
| OperationName | string | Nome dell'operazione. |
| ItemId | string | ID univoco della risorsa che registra i dati. |
| ItemKind | string | Tipo di elemento che registra l'operazione. |
| ItemName | string | Nome dell'artefatto fabric che registra questa operazione. |
| WorkspaceId | string | Identificatore univoco dell'area di lavoro Infrastruttura che contiene l'artefatto su cui viene eseguito l'operazione. |
| WorkspaceName | string | Nome dell'area di lavoro Infrastruttura contenente l'artefatto. |
| CapacityId | string | Identificatore univoco della capacità che ospita l'artefatto su cui viene eseguito l'esecuzione. |
| CorrelationId | string | ID attività radice. |
| OperationId | string | Identificatore univoco per l'operazione registrata. |
| Identità | dynamic | Dettagli utente e attestazione. Utente associato all'operazione segnalata. |
| CustomerTenantId | string | ID tenant del cliente, in cui è stata eseguita l'operazione. |
| DurationMs | long | Tempo di CPU trascorso che è trascorso mentre tutte le operazioni necessarie sono state elaborate. L'unità è espressa in millisecondi. |
| Stato | string | Stato dell'operazione. La query è stata eseguita correttamente con errori o errori. |
| Livello | string | Metadati richiesti dal team di monitoraggio della piattaforma. |
| Paese | string | Area della risorsa che emette l'evento; ad esempio Stati Uniti orientali o Francia meridionale. |
| PlatformMonitoringTableName | string | Il nome della tabella ai record appartiene (o al tipo di evento certificato del record). Il formato è <WorkloadName> + [OperationType>]+ <TelemetryType> |
| QueryText | string | Testo della query. |
| GraphQLOverheadDurationMs | long | Overhead graphQL in ms per una richiesta del piano dati. |
| ProcessedBytes | long | Volume di dati elaborato in byte. |
| TransportProtocol | string | Protocollo di trasporto per una richiesta. |
| QueryResultMessage | string | Questa dimensione viene utilizzata per fornire contesto aggiuntivo al risultato di un'operazione di query. |
Query di esempio
Usare queste query KQL per analizzare i log delle operazioni di GraphQL. È possibile eseguire queste query direttamente nell'editor di query eventhouse all'interno dell'area di lavoro.
Trovare le query lente
Identificare le query GraphQL che richiedono più di 5 secondi per l'esecuzione:
GraphQLLog
| where DurationMs > 5000
| project Timestamp, ItemName, DurationMs, QueryText, Status, Identity
| order by DurationMs desc
| take 20
Utenti principali per numero di query
Individuare gli utenti o le applicazioni che effettuano la maggior parte delle richieste GraphQL:
GraphQLLog
| summarize QueryCount = count() by Identity
| order by QueryCount desc
| take 10
Analisi della frequenza degli errori
Calcolare la frequenza degli errori per le operazioni GraphQL nel tempo:
GraphQLLog
| summarize
TotalQueries = count(),
FailedQueries = countif(Status == "failed"),
ErrorRate = (countif(Status == "failed") * 100.0) / count()
by bin(Timestamp, 1h)
| order by Timestamp desc
La maggior parte delle query a elevato utilizzo di risorse
Identificare le query che elaborano la quantità massima di dati:
GraphQLLog
| where ProcessedBytes > 0
| project Timestamp, ItemName, ProcessedBytes, QueryText, DurationMs
| order by ProcessedBytes desc
| take 20
Tendenze delle prestazioni delle query
Analizzare le prestazioni medie delle query nelle ultime 24 ore:
GraphQLMetrics
| where Timestamp > ago(24h)
| summarize
AvgDuration = avg(MetricSumValue),
MaxDuration = max(MetricSumValue),
QueryCount = count()
by bin(Timestamp, 1h), ItemName
| order by Timestamp desc
Per altri esempi di monitoraggio dell'area di lavoro, visitare il monitoraggio dell'area di lavoro nel repository GitHub degli esempi di Infrastruttura.