安装 OpenTelemetry Lambda layer
OpenTelemetry 项目提供了独立的 Lambda layer,分别用于:- 使用 OpenTelemetry 自动插桩功能,自动为 Lambda 函数代码添加插桩。
- 将采集到的日志、指标和链路追踪转发到 ClickStack。
添加特定语言的自动插桩 layer
特定语言的自动插桩 Lambda layer 会使用适用于相应语言的 OpenTelemetry 自动插桩包,自动为你的 Lambda 函数代码启用插桩。 每种语言和区域都有各自对应的 layer ARN。 如果你的 Lambda 已经通过 OpenTelemetry SDK 完成插桩,则可以跳过此步骤。 开始使用:- 在 Layers 部分中点击 “Add a layer”
- 选择 specify an ARN,并根据语言选择正确的 ARN;请确保将
<region>替换为你的区域 (例如us-east-2) :
- Javascript
- Python
- Java
- Ruby
- 在 Lambda 函数的 “Configuration” > “Environment variables” 下配置以下环境变量。
- Javascript
- Python
- Java
- Ruby
安装 OpenTelemetry collector Lambda layer
collector Lambda layer 可让你将 Lambda 函数 的日志、指标和链路追踪转发到 ClickStack,且不会因 exporter 延迟而影响响应时间。 安装 collector layer:- 在 Layers 部分中,点击 “Add a layer”
- 选择指定 ARN,并根据架构选择正确的 ARN。请确保将
<region>替换为你的区域 (例如:us-east-2) :
- x86_64
- arm64
- 将以下
collector.yaml文件添加到你的项目中,以将 collector 配置为发送到 ClickStack:
- 托管 ClickStack
- ClickStack Open Source
- 添加以下环境变量:
检查安装
部署这些 layer 后,你现在应该能在 HyperDX 中看到从 Lambda 函数自动收集到的链路追踪。decouple 和 batching
处理器可能会导致可观测数据收集出现延迟,因此链路追踪可能不会立即显示。若要发送自定义日志或指标,你需要使用特定语言的
OpenTelemetry SDK 为代码添加埋点。
故障排查
自定义插桩未发送
如果你看不到手动定义的 链路追踪 或其他遥测数据,可能是因为你使用了与 OpenTelemetry API 包不兼容的版本。请确保你的 OpenTelemetry API 包版本至少与 AWS Lambda 中包含的版本相同或更低。启用 SDK 调试日志
将OTEL_LOG_LEVEL 环境变量设置为 DEBUG,以启用
OpenTelemetry SDK 的调试日志。这有助于确保自动插桩 layer
已正确对您的应用程序进行插桩。
启用 collector 调试日志
要排查 collector 问题,可以修改 collector 配置文件,添加logging exporter,并将 遥测数据 的
日志级别设置为 debug,以启用 collector Lambda layer 的更详细日志。
- 托管 ClickStack
- ClickStack Open Source