Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Instrumentation d'un client d'application web

Mode de mise au point
Instrumentation d'un client d'application web - AWS X-Ray

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.

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.

Dans la xray-cognitosuccursale, Scorekeep utilise Amazon Cognito pour permettre aux utilisateurs de créer un compte et de s'y connecter afin de récupérer leurs informations utilisateur depuis un groupe d'utilisateurs Amazon Cognito. Lorsqu'un utilisateur se connecte, Scorekeep utilise un pool d'identités Amazon Cognito pour obtenir des informations d'identification AWS temporaires à utiliser avec le. AWS SDK for JavaScript

Le pool d'identités est configuré pour que les utilisateurs connectés puissent écrire des données de suivi sur AWS X-Ray. L'application web utilise ces informations d'identification pour enregistrer l'ID de l'utilisateur connecté, le chemin du navigateur et la vue des appels du client vers l'API Scorekeep.

La plupart des opérations sont effectuées dans une classe de service nommée xray. Cette classe de service fournit des méthodes permettant de générer les identifiants requis, de créer des segments en cours, de finaliser des segments et d'envoyer des documents de segment à l'API X-Ray.

Exemple public/xray.js— Enregistrez et téléchargez des segments
... service.beginSegment = function() { var segment = {}; var traceId = '1-' + service.getHexTime() + '-' + service.getHexId(24); var id = service.getHexId(16); var startTime = service.getEpochTime(); segment.trace_id = traceId; segment.id = id; segment.start_time = startTime; segment.name = 'Scorekeep-client'; segment.in_progress = true; segment.user = sessionStorage['userid']; segment.http = { request: { url: window.location.href } }; var documents = []; documents[0] = JSON.stringify(segment); service.putDocuments(documents); return segment; } service.endSegment = function(segment) { var endTime = service.getEpochTime(); segment.end_time = endTime; segment.in_progress = false; var documents = []; documents[0] = JSON.stringify(segment); service.putDocuments(documents); } service.putDocuments = function(documents) { var xray = new AWS.XRay(); var params = { TraceSegmentDocuments: documents }; xray.putTraceSegments(params, function(err, data) { if (err) { console.log(err, err.stack); } else { console.log(data); } }) }

Ces méthodes sont appelées dans les fonctions d'en-tête et transformResponse dans les services de ressource utilisés par l'application web pour appeler l'API Scorekeep. Pour inclure le segment client dans la même trace que le segment généré par l'API, l'application Web doit inclure l'ID de trace et l'ID de segment dans un en-tête de suivi (X-Amzn-Trace-Id) que le SDK X-Ray peut lire. Lorsque l'application Java instrumentée reçoit une demande avec cet en-tête, le SDK X-Ray pour Java utilise le même identifiant de trace et fait du segment du client de l'application Web le parent de son segment.

Exemple public/app/services.js— Enregistrement de segments pour les appels de ressources angulaires et écriture d'en-têtes de suivi
var module = angular.module('scorekeep'); module.factory('SessionService', function($resource, api, XRay) { return $resource(api + 'session/:id', { id: '@_id' }, { segment: {}, get: { method: 'GET', headers: { 'X-Amzn-Trace-Id': function(config) { segment = XRay.beginSegment(); return XRay.getTraceHeader(segment); } }, transformResponse: function(data) { XRay.endSegment(segment); return angular.fromJson(data); }, }, ...

La carte de trace obtenue inclut un nœud pour le client de l'application Web.

Carte de traçage avec nœud pour le client Scorekeep.

Les suivis qui contiennent des segments provenant de l'application web affichent l'URL que l'utilisateur voit dans le navigateur (chemins commençant par /#/). Sans l'instrumentation du client, vous obtenez uniquement l'URL de la ressource d'API que l'application web appelle (chemins commençant par /api/).

Liste des suivis avec des suivis montrant l'adresse URL du segment du client.

Rubrique suivante :

Threads de travail

Rubrique précédente :

Instrumentation de scripts
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.