Esta guía integra:
Instalación de las capas de Lambda de OpenTelemetry
El proyecto OpenTelemetry proporciona capas de Lambda independientes para:
- Instrumentar automáticamente el código de su función Lambda mediante la auto-instrumentación de OpenTelemetry.
- Reenviar los logs, las métricas y las trazas recopilados a ClickStack.
Agregar la capa de autoinstrumentación específica del lenguaje
Las capas de Lambda de autoinstrumentación específicas del lenguaje instrumentan automáticamente el código de su función Lambda con el paquete de autoinstrumentación de OpenTelemetry correspondiente a su lenguaje.
Cada lenguaje y Region tiene su propio ARN de capa.
Si su Lambda ya está instrumentada con un SDK de OpenTelemetry, puede omitir este paso.
Para comenzar:
- En la sección Layers, haga clic en “Add a layer”
- Seleccione “Specify an ARN” y elija el ARN correcto según el lenguaje; asegúrese de reemplazar
<region> por su región (p. ej., us-east-2):
Javascript
Python
Java
Ruby
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-nodejs-0_7_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-python-0_7_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-javaagent-0_6_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-ruby-0_1_0:1
Las versiones más recientes de las capas se pueden encontrar en el repository de GitHub de OpenTelemetry Lambda Layers.
- Configure las siguientes variables de entorno en su función Lambda, en “Configuration” > “Environment variables”.
Javascript
Python
Java
Ruby
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler
OTEL_PROPAGATORS=tracecontext
OTEL_TRACES_SAMPLER=always_on
Instalación de la capa Lambda del collector de OpenTelemetry
La capa Lambda del collector te permite reenviar logs, métricas y trazas desde tu función Lambda a ClickStack sin afectar los tiempos de respuesta por la latencia del exportador.
Para instalar la capa del collector:
- En la sección Layers, haz clic en “Add a layer”
- Selecciona “Specify an ARN” y elige el ARN correcto según la arquitectura; asegúrate de reemplazar
<region> por tu región (p. ej., us-east-2):
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-collector-amd64-0_8_0:1
arn:aws:lambda:<region>:184161586896:layer:opentelemetry-collector-arm64-0_8_0:1
- Agrega el siguiente archivo
collector.yaml a tu proyecto para configurar el collector y enviar datos a ClickStack:
# collector.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
processors:
batch:
decouple:
exporters:
otlphttp:
endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
compression: gzip
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp]
metrics:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp]
logs:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp]
# collector.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
processors:
batch:
decouple:
exporters:
otlphttp:
endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
headers:
authorization: <YOUR_INGESTION_API_KEY>
compression: gzip
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp]
metrics:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp]
logs:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp]
- Agrega la siguiente variable de entorno:
OPENTELEMETRY_COLLECTOR_CONFIG_FILE=/var/task/collector.yaml
Comprobación de la instalación
Después de desplegar las capas, ahora debería empezar a ver en HyperDX las trazas recopiladas automáticamente
de su función Lambda. Los procesadores decouple y batching
pueden introducir un retraso en la recopilación de telemetría, por lo que las trazas pueden
tardar en aparecer. Para emitir logs o métricas personalizados, deberá instrumentar su código con los
SDKs de OpenTelemetry específicos de su lenguaje.
La instrumentación personalizada no envía datos
Si no ves las trazas que definiste manualmente ni otros datos de telemetría, es
posible que estés usando una versión incompatible del paquete de la API de OpenTelemetry. Asegúrate de que tu
paquete de la API de OpenTelemetry tenga, como mínimo, la misma versión o una versión inferior a la
versión incluida en AWS Lambda.
Habilitar logs de depuración del SDK
Establece la variable de entorno OTEL_LOG_LEVEL en DEBUG para habilitar los logs de depuración del
SDK de OpenTelemetry. Esto te ayudará a verificar que la capa de autoinstrumentación
esté instrumentando correctamente tu aplicación.
Habilitar los logs de depuración del collector
Para depurar problemas del collector, puedes habilitar los logs de depuración modificando el archivo de configuración del collector para añadir el exportador logging y establecer el nivel de logs de telemetría en debug, con el fin de habilitar un logging más detallado desde la capa Lambda del collector.
# collector.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
exporters:
logging:
verbosity: detailed
otlphttp:
endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
compression: gzip
service:
telemetry:
logs:
level: "debug"
pipelines:
traces:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp, logging]
metrics:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp, logging]
logs:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp, logging]
# collector.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
exporters:
logging:
verbosity: detailed
otlphttp:
endpoint: "<YOU_OTEL_COLLECTOR_HTTP_ENDPOINT>"
headers:
authorization: <YOUR_INGESTION_API_KEY>
compression: gzip
service:
telemetry:
logs:
level: "debug"
pipelines:
traces:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp, logging]
metrics:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp, logging]
logs:
receivers: [otlp]
processors: [batch, decouple]
exporters: [otlphttp, logging]
Última modificación el 10 de junio de 2026