Это руководство интегрируется с:
| ✅ Журналы | ✅ Метрики | ✅ Трассировка |
Установка слоёв OpenTelemetry для Lambda
Проект OpenTelemetry предоставляет отдельные слои Lambda для следующих задач:
- Автоматически инструментировать код вашей Lambda-функции с помощью средств автоинструментирования OpenTelemetry.
- Передавать собранные журналы, метрики и трассировку в ClickStack.
Добавление слоя автоинструментирования для конкретного языка
Слои автоинструментирования Lambda для конкретных языков автоматически добавляют в код вашей Lambda-функции пакет автоинструментирования OpenTelemetry для соответствующего языка.
Для каждого языка и региона используется свой ARN слоя.
Если ваша Lambda-функция уже инструментирована с помощью OpenTelemetry SDK, этот шаг можно пропустить.
Чтобы начать:
- В разделе Layers нажмите “Add a layer”
- Выберите specify an ARN и укажите правильный ARN в зависимости от языка, обязательно заменив
<region> на свой регион (например, 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
Последние версии слоев доступны в репозитории OpenTelemetry Lambda Layers на GitHub.
- Настройте следующие переменные окружения для вашей Lambda-функции в разделе “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
Установка слоя Lambda для OpenTelemetry Collector
Слой Lambda для коллектора позволяет пересылать журналы, метрики и трассировку из вашей функции Lambda в ClickStack без влияния на время отклика из-за задержки экспортера.
Чтобы установить слой коллектора:
- В разделе Layers нажмите “Add a layer”
- Выберите specify an ARN и укажите правильный ARN в зависимости от архитектуры, обязательно заменив
<region> на свой регион (например, 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
- Добавьте в проект следующий файл
collector.yaml, чтобы настроить коллектор на отправку данных в 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]
- Добавьте следующую переменную окружения:
OPENTELEMETRY_COLLECTOR_CONFIG_FILE=/var/task/collector.yaml
После развертывания слоев вы должны увидеть в HyperDX трассировки, автоматически
собранные из вашей Lambda-функции. Процессоры decouple и batching
могут вносить задержку в сбор телеметрии, поэтому трассировки могут
появляться не сразу. Чтобы отправлять собственные журналы или метрики, вам потребуется добавить в код инструментацию с помощью
OpenTelemetry SDK для вашего языка.
Пользовательское инструментирование не отправляется
Если вы не видите вручную определённую трассировку или другие данные
телеметрии, возможно, вы используете несовместимую версию пакета OpenTelemetry API. Убедитесь, что версия вашего
пакета OpenTelemetry API не выше версии, включённой в AWS Lambda.
Включение отладочных журналов SDK
Установите для переменной окружения OTEL_LOG_LEVEL значение DEBUG, чтобы включить отладочные журналы OpenTelemetry SDK. Это поможет убедиться, что слой автоинструментирования корректно подключает инструментацию к вашему приложению.
Включение отладочного журнала коллектора
Чтобы упростить отладку проблем с коллектором, можно включить отладочный журнал: для этого измените
файл конфигурации коллектора, добавив экспортёр logging, и установите в разделе telemetry
уровень логирования debug, чтобы включить более подробное логирование в слое Lambda для OpenTelemetry 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]
Последнее изменение 10 июня 2026 г.