Activar el rastreo de AWS X-Ray
Activar AWS X-Ray
Requisito previo: Instalar la integración de AWS.
- Asegúrate de que los siguientes permisos están presentes en el documento de política para tu rol de AWS/Datadog:
xray:BatchGetTraces,
xray:GetTraceSummaries
El permiso `BatchGetTraces` se utiliza para devolver las trazas completas. El permiso `GetTraceSummaries` se utiliza para obtener una lista de resúmenes de las últimas trazas.
Activa la integración de X-Ray en Datadog.
Si estás utilizando una clave maestra de cliente para cifrar trazas, añade el método kms:Decrypt
a tu política donde el recurso es la clave maestra de cliente utilizada para X-Ray.
Nota: Activar la integración de AWS X-Ray aumenta la cantidad de tramos (spans) indexados utilizados, lo que puede incrementar tu factura.
Activar AWS X-Ray para tus funciones
Para sacar el máximo provecho de la integración de AWS X-Ray:
- Actívalo en tus funciones de Lambda y API Gateways, ya sea utilizando el complemento de Serverless Framework o manualmente; e
- Instala las bibliotecas de rastreo en tus funciones de Lambda.
[Recomendado] Complemento de Datadog Serverless Framework
El complemento de Datadog Serverless Framework activa automáticamente X-Ray para tus funciones de Lambda e instancias de API Gateway. El complemento también añade automáticamente la Datadog Lambda Layer a todas tus funciones de Node.js y Python.
Empieza a utilizar el complemento Serverless Framework y lee la documentación.
Por último, instala e importa la biblioteca de cliente de X-Ray en tu función de Lambda.
Configuración manual
Si no utilizas Serverless Framework para desplegar tu aplicación serverless, sigue estas instrucciones para la configuración manual:
- Navega a la función de Lambda en la consola de AWS que deseas instrumentar. En la sección “Debugging and error handling” (Depuración y gestión de errores), marca la casilla Enable active tracing (Activar rastreo activo). Esto activa el rastreo activo para esa función.
- Navega hasta la consola de API Gateway. Selecciona tu API y, a continuación, la etapa.
- En la pestaña Logs/Tracing (Logs/Rastreo), selecciona Enable X-Ray Tracing (Activar rastreo de X-Ray).
- Para que estos cambios surtan efecto, ve a Resources (Recursos) en el panel de navegación izquierdo y selecciona Actions (Acciones) y haz clic en Deploy API (Desplegar API).
**Nota: Datadog Lambda Layer y la biblioteca de cliente incluyen el SDK de X-Ray como dependencia, por lo que no es necesario instalarlo explícitamente en los proyectos.
Por último, instala e importa la biblioteca de cliente de X-Ray en tu función de Lambda.
Instalación de las bibliotecas de cliente de X-Ray
La biblioteca de cliente de X-Ray ofrece información sobre tus solicitudes HTTP a APIs y sobre las llamadas a DynamoDB, S3, MySQL y PostgreSQL (autoalojado, Amazon RDS y Amazon Aurora), SQS y SNS.
Instala la biblioteca, impórtalo en tus proyectos de Lambda y parchea los servicios que desees instrumentar.
Instala la biblioteca de rastreo de X-Ray
npm install aws-xray-sdk
# for Yarn users
yarn add aws-xray-sdk
Para instrumentar el SDK de AWS:
var AWSXRay = require('aws-xray-sdk-core');
var AWS = AWSXRay.captureAWS(require('aws-sdk'));
Para instrumentar todas las llamadas HTTP descendentes:
var AWSXRay = require('aws-xray-sdk');
AWSXRay.captureHTTPsGlobal(require('http'));
var http = require('http');
Para instrumentar consultas de PostgreSQL:
var AWSXRay = require('aws-xray-sdk');
var pg = AWSXRay.capturePostgres(require('pg'));
var client = new pg.Client();
Para instrumentar consultas de MySQL:
var AWSXRay = require('aws-xray-sdk');
var mysql = AWSXRay.captureMySQL(require('mysql'));
//...
var connection = mysql.createConnection(config);
Para más información sobre la configuración, la creación de subsegmentos y el registro de anotaciones, consulta la documentación de X-Ray Node.js.
Instala la biblioteca de rastreo de X-Ray:
Para parchear todas las bibliotecas por defecto, añade lo siguiente al archivo que contiene tus controladores de Lambda:
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all
patch_all()
Ten en cuenta que el rastreo de aiohttp
requiere una instrumentación específica.
Para más información sobre la configuración, la creación de subsegmentos y el registro de anotaciones, consulta la documentación de X-Ray Python.