Lambda Collector 配置
The content of this page may be outdated and some links may be invalid.
A newer version of this page exists in
English. To see the changes to the English page since this page was last updated: visit
GitHub compare f35b3300..f49ec57e
and search for More information ...
content/en/docs/platforms/faas/lambda-collector.md.
OpenTelemetry 社区将 Collector 作为独立的 Lambda 层提供,与插桩层分开, 为用户提供了最大的灵活性。这与当前的 AWS OpenTelemetry 发行版(ADOT)不同, 后者将插桩和 Collector 打包在一起。
添加 OTel Collector Lambda 层的 ARN
完成应用的自动插桩后,你应添加 Collector Lambda 层来收集并提交数据至所选后端。
请查找最新的 Collector 层发布版本,
将其中的 ARN 中的 <region> 标签替换为你的 Lambda 所在区域。
注意:Lambda 层是区域性资源,仅能在其发布所在的 AWS 区域中使用。请确保使用与你的 Lambda 功能相同区域的层。社区会在所有可用区域中发布这些层。
配置 OTel Collector
OTel Collector Lambda 层的配置遵循 OpenTelemetry 标准。
默认情况下,OTel Collector Lambda 层使用 config.yaml 文件进行配置。
设置目标后端的环境变量
在 Lambda 的环境变量设置中,创建一个新的变量,用于存放你的认证 token。
更新默认的导出器配置
在你的 config.yaml 文件中添加所需的导出器,如果默认中尚未包含。
使用前一步中设置的环境变量来配置导出器。
如果没有为导出器设置环境变量,默认配置仅支持使用 debug 导出器输出数据。 默认配置如下所示:
receivers:
otlp:
protocols:
grpc:
endpoint: '0.0.0.0:4317'
http:
endpoint: '0.0.0.0:4318'
exporters:
# 注意:v0.86.0 之前请使用 `logging` 而非 `debug`
debug:
verbosity: detailed
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
metrics:
receivers: [otlp]
exporters: [debug]
telemetry:
metrics:
address: localhost:8888
发布你的 Lambda
发布 Lambda 的新版本以使配置更改生效。
高级 OTel Collector 配置
你可以通过自定义配置启用更多组件。若需调试 Collector, 可在配置文件中设置日志级别为 debug。如下所示。
选择所用的 Confmap 提供程序
OTel Lambda 层支持以下类型的配置映射提供程序:
file、env、yaml、http、https 和 s3。
要使用不同的 Confmap 提供程序来自定义 Collector 配置,请参考
Amazon OpenTelemetry 发行版的 Confmap 提供程序文档。
创建自定义配置文件
以下为根目录下 collector.yaml 的示例配置文件:
# collector.yaml 放在根目录中
# 设置环境变量 'OPENTELEMETRY_COLLECTOR_CONFIG_URI' 为 '/var/task/collector.yaml'
receivers:
otlp:
protocols:
grpc:
endpoint: 'localhost:4317'
http:
endpoint: 'localhost:4318'
exporters:
# 注意:v0.86.0 之前请使用 `logging` 而非 `debug`
debug:
awsxray:
service:
pipelines:
traces:
receivers: [otlp]
exporters: [awsxray]
metrics:
receivers: [otlp]
exporters: [debug]
telemetry:
metrics:
address: localhost:8888
通过环境变量映射自定义配置文件
配置完成后,在 Lambda 功能上设置环境变量 OPENTELEMETRY_COLLECTOR_CONFIG_URI,
值为配置文件的路径(取决于 Confmap 提供程序)。例如,若使用文件 Confmap 提供程序,
应将其值设置为 /var/task/<路径>/<文件名>。该变量告知扩展从哪里加载 Collector 配置。
通过 CLI 设置自定义配置路径
你可以在 Lambda 控制台中设置,也可以使用 AWS CLI:
aws lambda update-function-configuration --function-name Function --environment Variables={OPENTELEMETRY_COLLECTOR_CONFIG_URI=/var/task/collector.yaml}
通过 CloudFormation 设置配置环境变量
也可在 CloudFormation 模板中配置环境变量:
Function:
Type: AWS::Serverless::Function
Properties:
...
Environment:
Variables:
OPENTELEMETRY_COLLECTOR_CONFIG_URI: /var/task/collector.yaml
从 S3 加载配置
若从 S3 加载配置,需确保绑定至功能的 IAM 角色具有读取相应 S3 桶的权限。
Function:
Type: AWS::Serverless::Function
Properties:
...
Environment:
Variables:
OPENTELEMETRY_COLLECTOR_CONFIG_URI: s3://<bucket_name>.s3.<region>.amazonaws.com/collector_config.yaml
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!