AWS Lambda
В этом руководстве настраивается интеграция:
| ✅ Логи | ✅ Метрики | ✅ Трейсы |
Установка Lambda-слоёв OpenTelemetry
Проект 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
Последние версии слоев можно найти в репозитории OpenTelemetry Lambda Layers на GitHub.
- Настройте следующие переменные окружения в вашей функции Lambda в разделе «Configuration» > «Environment variables».
- Javascript
- Python
- Java
- Ruby
Установка Lambda-слоя коллектора OpenTelemetry
Lambda-слой коллектора позволяет пересылать логи, метрики и трейсы из вашей Lambda-функции в ClickStack без влияния на время отклика из-за задержек экспортера.
Чтобы установить слой коллектора:
- В разделе Layers нажмите «Add a layer».
- Выберите вариант Specify an ARN и укажите правильный ARN в зависимости от архитектуры, не забудьте заменить
<region>на ваш регион (например,us-east-2):
- x86_64
- arm64
- Добавьте следующий файл
collector.yamlв ваш проект, чтобы настроить коллектор на отправку данных в ClickStack:
- Добавьте следующую переменную среды:
Проверка установки
После развертывания слоёв вы должны увидеть трассировки, автоматически
собираемые из вашей Lambda-функции в HyperDX. Процессоры decouple и batching
могут вносить задержку в сбор телеметрии, поэтому появление трассировок
в интерфейсе может происходить с задержкой. Чтобы отправлять пользовательские логи или метрики, вам нужно инструментировать ваш код с помощью языковых SDKS OpenTelemetry.
Диагностика и устранение неполадок
Пользовательское инструментирование не отправляет данные
Если вы не видите свои вручную определённые трассировки или другую телеметрию, возможно, вы используете несовместимую версию пакета OpenTelemetry API. Убедитесь, что версия вашего пакета OpenTelemetry API совпадает с версией, включённой в AWS Lambda, или ниже неё.
Включение отладочных логов SDK
Установите переменную окружения OTEL_LOG_LEVEL в значение DEBUG, чтобы включить отладочное логирование
SDK OpenTelemetry. Это поможет убедиться, что слой автоинструментирования
корректно выполняет инструментирование вашего приложения.
Включение отладочных логов коллектора
Чтобы отладить проблемы с коллектором, вы можете включить отладочные логи, изменив конфигурационный файл коллектора, добавив экспортер logging и установив уровень логирования телеметрии в debug, чтобы включить более подробное логирование в Lambda-слое коллектора.