amazon-web-services - 如何注册 opentelemetry lambda 扩展?

标签 amazon-web-services aws-lambda open-telemetry

我正在关注这个仓库 https://github.com/open-telemetry/opentelemetry-lambda/blob/main/collector/README.md部署带有 opentelemetry 扩展的 lambda。

我已经构建了存储库,并通过上传文件 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 控制台:

enter image description here

但请记住,您不需要创建自定义 Lambda 层来启用 OpenTelemetry。 AWS 提供了不同的预构建层供您使用:

关于amazon-web-services - 如何注册 opentelemetry lambda 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74792512/

相关文章:

java - 从 AWS Lambda 发布到 SNS 时超时

python - 如何在 python 中使用 Opentelemtry 跨服务使用嵌套跨度进行跟踪传播?

docker - OpenTelemetry Collector 未将数据导出到 OTEL/HTTP 导出器

rust - 为什么我在将 OpenTelemetry 发送到 Jaeger 时没有得到跟踪?

bash - 可以在 AWS Lambda 函数中编写 bash 脚本吗

amazon-web-services - 如何使 Pyspark 脚本在 Amazon EMR 上运行以识别 boto3 模块?它说找不到模块

javascript - 当存储桶设置为公共(public)时,IAM 用户只能访问 S3 存储桶

amazon-web-services - 如何在 Windows 上获取最新版本的 SAM-CLI

amazon-web-services - AWS API Gateway 自定义域的 Cname

python - 调用 GetDeployment 操作时发生错误 (ThrottlingException)(达到最大重试次数 : 4): Rate exceeded