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.
Generación de subsegmentos personalizados con el SDK de X-Ray para Node.js
Los subsegmentos amplían el segmento de un rastro con detalles sobre el trabajo realizado para atender una solicitud. Cada vez que usted realiza una llamada con un cliente instrumentado, el SDK de X-Ray registra la información generada en un subsegmento. Puede crear subsegmentos adicionales para agrupar otros subsegmentos, medir el rendimiento de una sección de código o registrar anotaciones y metadatos.
Subsegmentos Express personalizados
nota
Aviso de SDK/Daemon mantenimiento de X-Ray: el 25 de febrero de 2026, el AWS X-Ray SDKs/Daemon entrará en modo de mantenimiento, donde AWS se limitarán las versiones de X-Ray SDK y Daemon para abordar únicamente los problemas de seguridad. Para obtener más información sobre la cronología del soporte, consulte Cronología de X-Ray SDK y Daemon Support. Recomendamos migrar a. OpenTelemetry Para obtener más información sobre la migración a OpenTelemetry, consulte Migración de una instrumentación de rayos X a una instrumentación. OpenTelemetry
Para crear un subsegmento personalizado para una función que realiza llamadas a servicios posteriores, utilice la función captureAsyncFunc.
ejemplo app.js: subsegmentos personalizados Express
var AWSXRay = require('aws-xray-sdk');
app.use(AWSXRay.express.openSegment('MyApp'));
app.get('/', function (req, res) {
var host = 'api.example.com';
AWSXRay.captureAsyncFunc('send', function(subsegment) {
sendRequest(host, function() {
console.log('rendering!');
res.render('index');
subsegment.close();
});
});
});
app.use(AWSXRay.express.closeSegment());
function sendRequest(host, cb) {
var options = {
host: host,
path: '/',
};
var callback = function(response) {
var str = '';
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function () {
cb();
});
}
http.request(options, callback).end();
};En este ejemplo, la aplicación crea un subsegmento personalizado denominado send para realizar llamadas a la función sendRequest. captureAsyncFunc transfiere un subsegmento que debe cerrar dentro de la función de devolución de llamada cuando se completen las llamadas asíncronas que realiza.
Para las funciones síncronas, puede utilizar la función captureFunc, la cual cierra de forma automática el subsegmento en cuanto el bloque de funciones termina de ejecutarse.
Cuando crea un subsegmento dentro de un segmento o de otro subsegmento, el SDK de X-Ray para Node.js genera un ID para dicho subsegmento y registra la hora de inicio y la hora de finalización.
ejemplo Subsegmentos con metadatos
"subsegments": [{
"id": "6f1605cd8a07cb70",
"start_time": 1.480305974194E9,
"end_time": 1.4803059742E9,
"name": "Custom subsegment for UserModel.saveUser function",
"metadata": {
"debug": {
"test": "Metadata string from UserModel.saveUser"
}
},Subsegmentos personalizados de Lambda
El SDK está configurado para crear automáticamente un segmento de fachada de marcador de posición cuando detecta que se está ejecutando en Lambda. Para crear un subsegmento básico, que creará un nodo AWS::Lambda::Function único en el mapa de rastros de X-Ray, llame y reasigne el segmento de fachada. Si crea manualmente un nuevo segmento con un nuevo ID (mientras comparte el ID de registro de seguimiento, el ID principal y la decisión de muestreo) podrá enviar un nuevo segmento.
ejemplo app.js - subsegmentos personalizados manuales
const segment = AWSXRay.getSegment(); //returns the facade segment
const subsegment = segment.addNewSubsegment('subseg');
...
subsegment.close();
//the segment is closed by the SDK automatically