Aggiungi annotazioni e metadati ai segmenti con X-Ray for Node.js SDK - AWS X-Ray

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiungi annotazioni e metadati ai segmenti con X-Ray for Node.js SDK

È possibile registrare informazioni aggiuntive sulle richieste, sull'ambiente o sull'applicazione con annotazioni e metadati. È possibile aggiungere annotazioni e metadati ai segmenti creati da X-Ray o ai sottosegmenti personalizzati SDK creati dall'utente.

Le annotazioni sono coppie chiave-valore con stringhe, numeri o valori booleani. Le annotazioni sono indicizzate per essere utilizzate con le espressioni di filtro. Utilizza le annotazioni per registrare i dati che desideri utilizzare per raggruppare le tracce nella console o quando chiami il. GetTraceSummariesAPI

I metadati sono coppie chiave-valore che possono avere valori di qualsiasi tipo, inclusi oggetti ed elenchi, ma non sono indicizzati per l'uso con le espressioni di filtro. Utilizzate i metadati per registrare dati aggiuntivi che desiderate archiviare nella traccia ma che non è necessario utilizzare con la ricerca.

Oltre ad annotazioni e metadati, sui segmenti puoi anche registrare le stringhe degli ID utente. IDsGli utenti vengono registrati in un campo separato sui segmenti e indicizzati per essere utilizzati nella ricerca.

Registrazione delle annotazioni con SDK X-Ray for Node.js

Utilizza le annotazioni per memorizzare le informazioni su segmenti o sottosegmenti che desideri siano indicizzate per la ricerca.

Requisiti per le annotazioni
  • Chiavi: la chiave per un'annotazione a raggi X può contenere fino a 500 caratteri alfanumerici. Non è possibile utilizzare spazi o simboli diversi da un punto o un punto (.)

  • Valori: il valore di un'annotazione X-Ray può contenere fino a 1.000 caratteri Unicode.

  • Il numero di annotazioni: è possibile utilizzare fino a 50 annotazioni per traccia.

Per registrare le annotazioni
  1. Ottenere un riferimento al segmento o sottosegmento corrente.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Chiamare addAnnotation con una chiave di tipo Stringa e un valore booleano, numerico o di tipo Stringa.

    document.addAnnotation("mykey", "my value");

    L'esempio seguente mostra come effettuare una chiamata putAnnotation con una chiave String che include un punto e un valore booleano, numerico o stringa.

    document.putAnnotation("testkey.test", "my value");

SDKRegistra le annotazioni come coppie chiave-valore in un annotations oggetto nel documento del segmento. Se chiami addAnnotation due volte con la stessa chiave, il valore precedentemente memorizzato nello stesso segmento o sottosegmento viene sovrascritto.

Per trovare tracciamenti con annotazioni contenenti valori specifici, utilizza la parola chiave annotation[key] in un'espressione filtro.

Esempio app.js - Annotazioni
var AWS = require('aws-sdk'); var AWSXRay = require('aws-xray-sdk'); var ddb = AWSXRay.captureAWSClient(new AWS.DynamoDB()); ... app.post('/signup', function(req, res) { var item = { 'email': {'S': req.body.email}, 'name': {'S': req.body.name}, 'preview': {'S': req.body.previewAccess}, 'theme': {'S': req.body.theme} }; var seg = AWSXRay.getSegment(); seg.addAnnotation('theme', req.body.theme); ddb.putItem({ 'TableName': ddbTable, 'Item': item, 'Expected': { email: { Exists: false } } }, function(err, data) { ...

Registrazione di metadati con SDK X-Ray for Node.js

Utilizza i metadati per memorizzare le informazioni su segmenti o sottosegmenti che non è necessario che siano indicizzate per la ricerca. I valori dei metadati possono essere stringhe, numeri, valori booleani o qualsiasi altro oggetto che può essere serializzato in un oggetto o in un array. JSON

Per registrare i metadati
  1. Ottenere un riferimento al segmento o sottosegmento corrente.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Chiamare addMetadata con una chiave di tipo Stringa, un valore booleano, numerico, di tipo Stringa o di tipo oggetto e un namespace di tipo stringa.

    document.addMetadata("my key", "my value", "my namespace");

    oppure

    Invocare addMetadata semplicemente con una chiave e un valore.

    document.addMetadata("my key", "my value");

Se non si specifica uno spazio dei nomi, utilizza. SDK default Se chiami addMetadata due volte con la stessa chiave, il valore precedentemente memorizzato nello stesso segmento o sottosegmento viene sovrascritto.

Utente che registra IDs con X-Ray for Node.js SDK

Registra i segmenti dell'utente IDs su richiesta per identificare l'utente che ha inviato la richiesta. Questa operazione non è compatibile con AWS Lambda le funzioni perché i segmenti negli ambienti Lambda sono immutabili. La chiamata setUser può essere applicata solo ai segmenti, non ai sottosegmenti.

Per registrare l'utente IDs
  1. Ottenere un riferimento al segmento o sottosegmento corrente.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Chiamare setUser() con una stringa che rappresenta l'ID dell'utente che ha inviato la richiesta.

    var user = 'john123'; AWSXRay.getSegment().setUser(user);

È possibile chiamare setUser per registrare l'ID utente non appena l'applicazione Express inizia l'elaborazione di una richiesta. Se usi il segmento per impostare l'ID utente, puoi concatenare le chiamate in un'unica riga.

Esempio app.js - ID utente
var AWS = require('aws-sdk'); var AWSXRay = require('aws-xray-sdk'); var uuidv4 = require('uuid/v4'); var ddb = AWSXRay.captureAWSClient(new AWS.DynamoDB()); ... app.post('/signup', function(req, res) { var userId = uuidv4(); var item = { 'userId': {'S': userId}, 'email': {'S': req.body.email}, 'name': {'S': req.body.name} }; var seg = AWSXRay.getSegment().setUser(userId); ddb.putItem({ 'TableName': ddbTable, 'Item': item, 'Expected': { email: { Exists: false } } }, function(err, data) { ...

Per trovare tracciamenti associati ad un ID utente, utilizza la parola chiave user in un'espressione filtro.