Surveillance de GraphQL

Découvrez l' GraphQL de surveillance.

Informations complémentaires

Prise en charge du traçage côté client

Pour cette technologie, Instana prend en charge le traçage côté client pour les langages et environnements d'exécution suivants :

Suivi des opérations GraphQL

Instana offre le traçage des requêtes, mutations et abonnements de GraphQL.

Pour chaque opération, nous capturons

Notez que nous ne capturons que les clés d'argument et non les valeurs fournies.

Prenons l'exemple de requête suivant :

  query GetUsers {
    Users(active: true) {
      id
      email
      address
    }
    Orders {
      items
    }
  }
 

Pour cette requête, nous capturerions les éléments suivants :

Balise d'appel Valeur
call.graphql.operationType query
call.graphql.operationName GetUsers
call.graphql.arguments Users.active
call.graphql.fields Users.id, Users.email, Users.address, Orders.items

Les valeurs capturées sont affichées dans les détails de l'appel. Cela permet de voir immédiatement quels sont les programmes de résolution GraphQL impliqués dans le traitement de l'opération GraphQL, ce qui facilite l'identification des raisons possibles de la lenteur des réponses.

Ces balises peuvent également être utilisées pour rechercher des appels et des traces dans la vue Analytics, en ajoutant des filtres via le bouton « Plus ». Par exemple, pour rechercher toutes les opérations GraphQL impliquant le type d'objet Orders, il vous suffit de cliquer sur "Plus" pour ajouter un filtre pour les appels où la balise d'appel call.graphql.fields contient Orders. Ou, après avoir défini la balise sur call.graphql.fields, vérifiez les options proposées dans la liste déroulante "Valeur" pour inspecter les types d'objets et les zones qui ont été demandés sur la période sélectionnée. Un autre cas d'utilisation consisterait à trouver tous les appels ayant accès à une zone particulière ou d'utiliser un certain argument en ajoutant un filtre "contient" pour la balise call.graphql.fields ou call.graphql.arguments avec le nom de la zone ou de l'argument en question.

Suivi des abonnements GraphQL

Les clients GraphQL peuvent demander à un serveur GraphQL de les avertir des modifications apportées au modèle de données sous-jacent au moyen d'abonnements GraphQL.

Chaque fois qu'un client reçoit une mise à jour due à l'un de ses abonnements GraphQL actifs, nous consignons la trace de cette mise à jour d'abonnement en tant qu'appel du serveur GraphQL au client. En d'autres termes, Instana met l'accent sur le traçage distribué des abonnements en documentant l'impact des mutations sur le serveur et les abonnés affectés.

Trace montrant une mutation et les mises à jour de l'abonné qui en résultent.

Les appels représentant des mises à jour d'abonnement sont balisés avec subscription-update comme valeur de la balise call.graphql.operationType . Pour faciliter l'analyse de l'impact d'un abonnement particulier, tous les appels de mise à jour d'abonnement sont regroupés dans le service GraphQL Subscribers , que chaque type d'abonnement représente comme un noeud final distinct.