View a markdown version of this page

Utilisation AWS X-Ray pour suivre les demandes dans AWS AppSync - AWS AppSync GraphQL

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation AWS X-Ray pour suivre les demandes dans AWS AppSync

Vous pouvez l'utiliser AWS X-Ray pour suivre les demandes au fur et à mesure qu'elles sont exécutées dans AWS AppSync. Vous pouvez l'utiliser X-Ray AWS AppSync dans toutes les AWS régions où X-Ray c'est disponible. X-Ray vous donne un aperçu détaillé de l'ensemble d'une requête GraphQL. Cela vous permet d'analyser les latences dans vos API et leurs résolveurs et sources de données sous-jacents. Vous pouvez utiliser une carte des X-Ray services pour visualiser la latence d'une demande, y compris les AWS services qui y sont intégrés X-Ray. Vous pouvez également configurer des règles d'échantillonnage pour indiquer X-Ray quelles demandes enregistrer et à quelles fréquences d'échantillonnage, en fonction des critères que vous spécifiez.

Pour plus d'informations sur l'échantillonnage dans X-Ray, voir Configuration des règles d'échantillonnage dans la AWS X-Ray console.

Installation et configuration

Vous pouvez activer le X-Ray traçage pour une API GraphQL via la AWS AppSync console.

  1. Connectez-vous à la AWS AppSync console.

  2. Choisissez Paramètres dans le volet de navigation.

  3. Sous X-Ray, activez Activer X-Ray.

  4. Choisissez Enregistrer. X-Ray le traçage est désormais activé pour votre API.

Si vous utilisez le AWS CLI ou AWS CloudFormation, vous pouvez également activer le X-Ray suivi lorsque vous créez une nouvelle AWS AppSync API ou que vous mettez à jour une AWS AppSync API existante en définissant la xrayEnabled propriété surtrue.

Lorsque le X-Ray traçage est activé pour une AWS AppSync API, un rôle Gestion des identités et des accès AWS lié à un service est automatiquement créé dans votre compte avec les autorisations appropriées. Cela permet AWS AppSync d'envoyer des traces de X-Ray manière sécurisée.

Suivi de votre API avec X-Ray

Echantillonnage

En utilisant les règles d'échantillonnage, vous pouvez contrôler la quantité de données que vous enregistrez dans AWS AppSync, mais aussi modifier le comportement d'échantillonnage à la volée sans modifier ni redéployer votre code. Par exemple, cette règle échantillonne les demandes à l'API GraphQL avec l'ID d'API 3n572shhcpfokwhdnq1ogu59v6.

  • Rule name (Nom de règle) : test-sample

  • Priority (Priorité) : 10

  • Reservoir size (Taille du réservoir) : 10

  • Fixed rate (Fréquence fixe) : 10

  • Service name (Nom du service) : *

  • Service type (Type de service) : AWS::AppSync::GraphQLAPI

  • HTTP method (Méthode HTTP) : *

  • Resource ARN (ARN des ressources) : arn:aws:appsync:us-west-2:123456789012:apis/3n572shhcpfokwhdnq1ogu59v6

  • Host (Hôte)  *

Présentation des suivis

Lorsque vous activez le X-Ray suivi pour votre API GraphQL, vous pouvez utiliser la page détaillée du X-Ray suivi pour examiner les informations de latence détaillées relatives aux requêtes adressées à votre API. L'exemple suivant montre la vue du suivi ainsi que la carte des services pour cette demande spécifique. La demande a été adressée à une API appelée postAPI avec un type Post, dont les données sont contenues dans une table Amazon DynamoDB appelée. PostTable-Example

L'image de suivi suivante correspond à la requête GraphQL suivante :

query getPost { getPost(id: "1") { id title } }

Le résolveur de la getPost requête utilise la source de données DynamoDB sous-jacente. La vue de trace suivante montre l'appel à DynamoDB, ainsi que les latences des différentes étapes de l'exécution de la requête :

Carte de suivi montrant le flux des requêtes PostAPI depuis le client DynamoDB avec les détails du calendrier.
  • Dans l'image précédente, /getPost représente le chemin d'accès complet à l'élément en cours de résolution. Dans ce cas, getPost étant un champ sur le type Query racine, il apparaît directement après la racine du chemin d’accès.

  • requestMappingTemplateEvaluation représente le temps passé par AWS AppSync à évaluer le modèle de mappage de demande pour cet élément dans la requête.

  • Query.getPost représente un type et un champ (au format Type.field). Il peut contenir plusieurs sous-segments, en fonction de la structure de l'API et de la demande en cours de suivi.

    • DynamoDB représente la source de données attachée à ce résolveur. Il contient la latence nécessaire à l'appel réseau à DynamoDB pour résoudre le champ.

    • responseMappingTemplateEvaluation représente le temps passé par AWS AppSync à évaluer le modèle de mappage de réponse pour cet élément dans la requête.

Lorsque vous visualisez les traces dans X-Ray, vous pouvez obtenir des informations contextuelles et de métadonnées supplémentaires sur les sous-segments du AWS AppSync segment en choisissant les sous-segments et en explorant la vue détaillée.

Pour certaines requêtes profondément imbriquées ou complexes, notez que le segment envoyé à X-Ray by AWS AppSync peut être plus grand que la taille maximale autorisée pour les documents de segment, telle que définie dans Documents de AWS X-Ray segment. X-Ray n'affiche pas les segments qui dépassent la limite.