繁体   English   中英

如何注册 opentelemetry lambda 扩展?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM