[英]How can I register opentelemetry lambda exention?
我正在关注此 repo https://github.com/open-telemetry/opentelemetry-lambda/blob/main/collector/README.md以部署带有opentelemetry
扩展的 lambda。
我已经构建了 repo,并通过上传文件nodejs/packages/layer/build/layer.zip
创建了一个 lambda 层。 然后我创建了一个使用该层的 lambda 并添加了 2 个环境变量:
AWS_LAMBDA_EXEC_WRAPPER = /opt/otel-handler
OPENTELEMETRY_COLLECTOR_CONFIG_FILE = /var/task/collector.yaml
我在项目根目录下创建了一个文件collector.yaml
:
receivers:
otlp:
protocols:
grpc:
exporters:
logging:
loglevel: debug
otlp:
endpoint: http://localhost
service:
pipelines:
traces:
receivers: [otlp]
exporters: [logging, otlp]
当我运行 lambda 时出现此错误:
2022-12-14T11:50:07.070+11:00 Registering OpenTelemetry
2022-12-14T11:50:07.098+11:00 Exporter "otlp" requested through environment variable is unavailable.
2022-12-14T11:50:07.122+11:00 2022-12-14T00:50:07.121Z undefined WARN Failed extracting version /var/task
它说otlp
不可用。 我想念什么吗? 我不确定这是什么意思。
使用自定义层在您的 AWS Lambda 函数中启用 OpenTelemetry; 除了提供您描述的两个环境变量外,您还需要手动将自定义层添加到函数中。 您可以使用 AWS CLI 执行此操作:
aws lambda update-function-configuration --function-name Function --layers <your Lambda layer ARN>
您也可以使用 AWS 控制台:
但请记住,您不需要创建自定义 Lambda 层来启用 OpenTelemetry。 AWS 提供了不同的预构建层供您使用:
我认为它不一定与自定义 Lambda 层相关。 我将“AWS managed Lambda Layer for ADOT JavaScript SDK and ADOT Collector”与默认collector.yaml
一起使用。yaml 并得到相同的错误:
2023-01-03T13:40:58.367Z undefined WARN Failed extracting version /var/task
2023-01-03T13:40:58.373Z undefined ERROR Exporter "otlp" requested through environment variable is unavailable.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.