Añada anotaciones y metadatos a los segmentos con X-Ray SDK for Node.js - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Añada anotaciones y metadatos a los segmentos con X-Ray SDK for Node.js

Puede registrar información adicional acerca de las solicitudes, el entorno o su aplicación con anotaciones y metadatos. Puede añadir anotaciones y metadatos a los segmentos que SDK crea el X-Ray o a los subsegmentos personalizados que cree.

Las anotaciones son pares de clave-valor con valores de cadena, numéricos o booleanos. Las anotaciones se indexan para su uso con expresiones de filtro. Utilice las anotaciones para registrar los datos que desee utilizar para agrupar las trazas en la consola o al llamar a. GetTraceSummariesAPI

Los metadatos son pares de clave-valor con valores de cualquier tipo, por ejemplo objetos y listas, pero que no se indexan para utilizarlos con expresiones de filtro. Utilice los metadatos para registrar datos adicionales que desee almacenar en el rastro, pero que no necesite usar para hacer búsquedas.

Además de anotaciones y metadatos, también puede registrar cadenas de ID de usuario en los segmentos. IDsLos usuarios se graban en un campo independiente en los segmentos y se indexan para usarlos en la búsqueda.

Grabación de anotaciones con X-Ray SDK para Node.js

Utilice anotaciones para registrar información sobre segmentos o subsegmentos que desee indexar para las búsquedas.

Requisitos de anotación
  • Teclas: la clave de una anotación de X-Ray puede tener hasta 500 caracteres alfanuméricos. No puede utilizar espacios o símbolos que no sean puntos o puntos (.)

  • Valores: el valor de una anotación de X-Ray puede tener hasta 1000 caracteres Unicode.

  • Número de anotaciones: puede utilizar hasta 50 anotaciones por traza.

Para registrar anotaciones
  1. Obtenga una referencia al segmento o subsegmento actual.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Llame a addAnnotation con una clave de cadena y un valor booleano, numérico o de cadena.

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

    El siguiente ejemplo muestra cómo llamar putAnnotation con una clave de cadena que incluye un punto y un valor booleano, numérico o de cadena.

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

SDKRegistra las anotaciones como pares clave-valor en un annotations objeto del documento de segmento. Si llama dos veces a addAnnotation con la misma clave, se sobrescriben los valores previamente registrados en ese segmento o subsegmento.

Para encontrar rastros que tengan anotaciones con valores específicos, utilice la palabra clave annotation[key] en una expresión de filtro.

ejemplo app.js: anotaciones
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) { ...

Grabación de metadatos con X-Ray SDK para Node.js

Utilice los metadatos para registrar información sobre segmentos o subsegmentos que no necesite indexar para las búsquedas. Los valores de los metadatos pueden ser cadenas, números, valores booleanos o cualquier otro objeto que se pueda serializar en un JSON objeto o matriz.

Para registrar metadatos
  1. Obtenga una referencia al segmento o subsegmento actual.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Llame a addMetadata con una clave de cadena, un valor booleano, numérico, de cadena o de objeto y un espacio de nombres de cadena.

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

    o

    Llame a addMetadata con solo una clave y un valor.

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

Si no especificas un espacio de nombres, utilizará. SDK default Si llama dos veces a addMetadata con la misma clave, se sobrescriben los valores previamente registrados en ese segmento o subsegmento.

Grabar al usuario IDs con el X-Ray SDK para Node.js

Registre los segmentos de usuario IDs solicitados para identificar al usuario que envió la solicitud. Esta operación no es compatible con AWS Lambda las funciones porque los segmentos de los entornos Lambda son inmutables. La llamada setUser solo se puede efectuar con segmentos, no con subsegmentos.

Para registrar al usuario IDs
  1. Obtenga una referencia al segmento o subsegmento actual.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Llame a setUser() con un ID de cadena del usuario que envió la solicitud.

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

Puede llamar a setUser para registrar el ID de usuario en cuanto la aplicación rápida comience a procesar una solicitud. Si va a utilizar el segmento únicamente para establecer el ID de usuario, puede encadenar las llamadas en una sola línea.

ejemplo app.js: ID de usuario
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) { ...

Para buscar rastros de un ID de usuario, utilice la palabra clave user en una expresión de filtro.