Monitoraggio di GraphQL
Scopri come monitorare GraphQL.
Informazioni aggiuntive
Tracciamento supportato lato client
Monitoraggio delle operazioni dell' GraphQL
Instana offre il tracciamento per le query, le mutazioni e le sottoscrizioni dell' GraphQL.
Per ogni operazione, cattura
- il tipo di operazione (
query,mutationosubscription-update), - il nome operazione (se fornito),
- tutti i tipi di oggettocoinvolti,
- gli argomenti utilizzati per ciascun tipo di oggetto e
- i campi selezionati per ogni tipo di oggetto.
Tenere presente che vengono catturate solo le chiavi dell'argomento, ma non i valori forniti.
Prendiamo la seguente query come esempio:
query GetUsers {
Users(active: true) {
id
email
address
}
Orders {
items
}
}
Per questa query, è possibile catturare:
| Tag chiamata | Valore |
|---|---|
| call.graphql.operationType | query |
| call.graphql.operationName | GetUsers |
| call.graphql.arguments | Users.active |
| call.graphql.fields | Users.id, Users.email, Users.address, Orders.items |
I valori acquisiti vengono visualizzati nei dettagli della chiamata. Ciò consente di individuare immediatamente quali resolver GraphQL sono stati coinvolti nell'elaborazione dell'operazione GraphQL , semplificando l'individuazione delle possibili cause di risposte lente.
Questi tag possono essere utilizzati anche per cercare chiamate e tracciati nella vista Analisi, aggiungendo filtri tramite il pulsante "Altro". Ad esempio, per ricercare tutte le operazioni GraphQL che riguardano il tipo di oggetto Orders , fare clic su "Altro" per aggiungere un filtro per le chiamate in cui la tag di chiamata call.graphql.fields contiene Orders. In alternativa, dopo aver impostato il tag su call.graphql.fields, controllare le opzioni suggerite nell'elenco a discesa "Valore" per esaminare quali tipi di oggetto e campi sono stati richiesti nell'intervallo di tempo selezionato. Un altro caso di utilizzo potrebbe essere quello di trovare tutte le chiamate che accedono a un particolare campo o di utilizzare un determinato argomento aggiungendo un filtro "contiene" per call.graphql.fields o call.graphql.arguments con il nome campo / argomento in questione.
Monitoraggio degli abbonamenti a GraphQL
I client GraphQL possono chiedere a un server GraphQL di notificare loro le modifiche nel modello di dati sottostante mediante sottoscrizioniGraphQL.
Ogni volta che un client riceve un aggiornamento a causa di una delle sue sottoscrizioni GraphQL attive, tracciamo questo aggiornamento della sottoscrizione come una chiamata dal server GraphQL al client. In altre parole, " Instana " concentra il tracciamento distribuito delle sottoscrizioni sulla documentazione dell 'impatto che le modifiche hanno sul server e sugli abbonati interessati.

Le chiamate che rappresentano gli aggiornamenti della sottoscrizione sono contrassegnate con subscription-update come valore per la tag call.graphql.operationType . Per semplificare l'analisi dell'impatto di una particolare sottoscrizione, tutte le chiamate di aggiornamento della sottoscrizione sono raggruppate nel servizio GraphQL Subscribers , che ogni tipo di sottoscrizione rappresenta come un endpoint separato.