使用AWS Distro for OpenTelemetry的Lambda无法向Dynatrace导入数据
问题排查:AWS Lambda通过AWS Distro for OpenTelemetry无法将数据导入Dynatrace
环境信息
- 使用的AWS OTel层ARN:
arn:aws:lambda:us-east-1:901920570463:layer:aws-otel-nodejs-amd64-ver-1-5-0:1 - Lambda函数运行正常,返回结果为
"34.237.128.180\n",但无任何追踪数据导入至Dynatrace
Lambda函数代码
const axios = require('axios'); const url = 'http://checkip.amazonaws.com/'; exports.handler = async (event) => { let response console.log('[START] - OpenTelemetry / Dynatrace'); try { response = await axios({ method: 'post', url:url }); console.log('**************', response?.data) } catch (error) { console.log('ERR: ', error) } console.log('[END] - OpenTelemetry / Dynatrace'); return response?.data; }
Collector配置文件(collector.yaml)
# Token QA ( Ingest Opentelemetry Traces ): receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:55680 http: endpoint: 0.0.0.0:55681 exporters: otlphttp: endpoint: "https://ico19512.live.dynatrace.com/api/v2/otlp/v1/traces" headers: {Authorization: "Api-Token dt0c01......"} service: pipelines: traces: receivers: [otlp] exporters: [otlphttp]
Lambda函数运行日志
START RequestId: b077aa35-b4bc-4604-8e5a-c67dbfa454ac Version: $LATEST EXTENSION Name: collector State: Ready Events: [INVOKE,SHUTDOWN] {"level":"debug","msg":"Received ","event :":"{\n\t\"eventType\": \"INVOKE\",\n\t\"deadlineMs\": 1660236861439,\n\t\"requestId\": \"b077aa35-b4bc-4604-8e5a-c67dbfa454ac\",\n\t\"invokedFunctionArn\": \"arn:aws:lambda:us-east-1:658913498668:function:dyna-otel\",\n\t\"tracing\": {\n\t\t\"type\": \"X-Amzn-Trace-Id\",\n\t\t\"value\": \"Root=1-62f5342f-1b4ce6bd6c1ebf2c6601dc57;Parent=29fc70b85a8376fd;Sampled=0\"\n\t}\n}"} {"level":"debug","msg":"Waiting for event..."} 2022-08-11T16:54:09.465Z b077aa35-b4bc-4604-8e5a-c67dbfa454ac INFO [START] - OpenTelemetry / Dynatrace 2022-08-11T16:54:09.806Z b077aa35-b4bc-4604-8e5a-c67dbfa454ac INFO ************** 34.237.128.180 2022-08-11T16:54:09.806Z b077aa35-b4bc-4604-8e5a-c67dbfa454ac INFO [END] - OpenTelemetry / Dynatrace END RequestId: b077aa35-b4bc-4604-8e5a-c67dbfa454ac REPORT RequestId: b077aa35-b4bc-4604-8e5a-c67dbfa454ac Duration: 708.69 ms Billed Duration: 709 ms Memory Size: 128 MB Max Memory Used: 126 MB Init Duration: 1324.55 ms Request ID b077aa35-b4bc-4604-8e5a-c67dbfa454ac
排查方向
- 采样率问题:日志中显示
Sampled=0,AWS X-Ray采样率为0会直接导致OTel不生成追踪数据。需调整Lambda的X-Ray采样规则,确保采样率大于0,或在OTel配置中强制开启采样。 - OTel核心环境变量缺失:确认是否配置了
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler,这个变量是触发OTel层自动注入追踪逻辑的关键,未配置则不会启动数据采集。 - Collector日志细节不足:当前Collector仅输出基础debug日志,未显示追踪数据的接收和导出状态。可调整Collector日志级别为
info,查看是否有数据接收记录、导出错误(如token无效、网络连接失败)。 - Dynatrace Token权限:检查使用的Api-Token是否具备
otlpIngest权限,权限不足会被Dynatrace拒绝数据导入。 - 版本兼容性:当前使用的OTel层版本为1.5.0,需确认该版本与Dynatrace的OTLP端点协议是否兼容,部分旧版本可能存在协议适配问题。
- Lambda网络权限:如果Lambda部署在VPC内,需确认是否有出站网络权限访问Dynatrace的OTLP端点,必要时配置NAT网关或VPC端点。
- 依赖包Instrumentation:当前代码未显式初始化OTel,虽然OTel层会自动instrument依赖,但需确认axios是否被正确追踪。可尝试添加OTel初始化代码,或检查OTel层是否对axios做了完整的链路注入。
内容的提问来源于stack exchange,提问作者Eulises Quidel
相关产品推荐
相关产品推荐

