Ce guide intègre :
| ✅ Logs | ✅ Métriques | ✅ Traces |
Installer les couches Lambda OpenTelemetry
Le projet OpenTelemetry fournit des couches Lambda distinctes pour :
- Instrumenter automatiquement le code de votre fonction Lambda avec l’auto-instrumentation OpenTelemetry.
- Transférer les logs, métriques et traces collectés vers ClickStack.
Ajout de la couche d’auto-instrumentation spécifique au langage
Les couches Lambda d’auto-instrumentation spécifiques au langage instrumentent automatiquement le code de votre fonction Lambda avec le paquet d’auto-instrumentation OpenTelemetry adapté au langage concerné.
Chaque langage et chaque région disposent de leur propre ARN de couche.
Si votre fonction Lambda est déjà instrumentée avec un SDK OpenTelemetry, vous pouvez ignorer cette étape.
Pour commencer :
- Dans la section Layers, cliquez sur “Add a layer”
- Sélectionnez “Specify an ARN” et choisissez l’ARN approprié selon le langage, en veillant à remplacer
<region> par votre région (par ex. 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
Les dernières versions des couches sont disponibles dans le dépôt GitHub OpenTelemetry Lambda Layers.
- Configurez les variables d’environnement suivantes dans votre fonction Lambda sous “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
Installation de la couche Lambda du collector OpenTelemetry
La couche Lambda du collector vous permet d’acheminer les logs, les métriques et les traces de votre fonction Lambda vers ClickStack sans allonger les temps de réponse à cause de la latence de l’exporter.
Pour installer la couche du collector :
- Dans la section Layers, cliquez sur “Add a layer”
- Sélectionnez “specify an ARN” et choisissez l’ARN approprié selon l’architecture, en veillant à remplacer
<region> par votre région (par ex. 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
- Ajoutez le fichier
collector.yaml suivant à votre projet pour configurer le collector afin d’envoyer les données à ClickStack :
Managed ClickStack
ClickStack Open Source
# 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]
- Ajoutez la variable d’environnement suivante :
OPENTELEMETRY_COLLECTOR_CONFIG_FILE=/var/task/collector.yaml
Vérification de l’installation
Après avoir déployé les couches, vous devriez maintenant voir dans HyperDX les traces automatiquement
collectées depuis votre fonction Lambda. Les processeurs decouple et batching
peuvent introduire un délai dans la collecte de la télémétrie ; l’affichage des traces peut donc être
retardé. Pour émettre des logs ou des métriques personnalisés, vous devrez instrumenter votre code à l’aide des
OpenTelemetry SDKs spécifiques à votre langage.
L’instrumentation personnalisée n’envoie pas de données
Si vous ne voyez pas les traces que vous avez définies manuellement ni d’autres données de télémétrie, il se peut que vous
utilisiez une version incompatible du paquet de l’API OpenTelemetry. Assurez-vous que la
version de votre paquet de l’API OpenTelemetry est identique ou inférieure à celle
incluse dans AWS Lambda.
Activer les logs de débogage du SDK
Définissez la variable d’environnement OTEL_LOG_LEVEL sur DEBUG pour activer les logs de débogage du SDK OpenTelemetry. Cela permet de vérifier que la couche d’auto-instrumentation instrumente correctement votre application.
Activer les logs de débogage du collector
Pour résoudre les problèmes du collector, vous pouvez activer les logs de débogage en modifiant votre fichier de configuration du collector
afin d’ajouter l’exporter logging et de définir le niveau de log de la télémétrie
sur debug pour activer une journalisation plus détaillée depuis la couche Lambda du collector.
Managed ClickStack
ClickStack Open Source
# 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]
Dernière modification le 25 juin 2026