配置选项编辑

推荐通过 Lambda 函数的环境变量来配置 Elastic APM AWS Lambda 扩展和 AWS Lambda 上的 APM 代理。

APM 代理的配置选项在相应的语言代理中有所记录

某些 APM 代理配置选项在 APM 代理在 Lambda 环境中运行时没有意义。例如,您必须使用下面描述的 ELASTIC_APM_LAMBDA_VERIFY_SERVER_CERT 变量,而不是使用 Python APM 代理配置变量 verify_server_cert

使用 Elastic APM AWS Lambda 扩展时不支持 APM Central 配置

相关配置选项编辑

以下是 Elastic APM AWS Lambda 扩展的相关配置选项列表。

ELASTIC_APM_LAMBDA_APM_SERVER编辑

此必需的配置选项控制 Elastic APM AWS Lambda 扩展将数据发送到的位置。这应该是您遥测数据的最终 APM Server 目标的 URL。

ELASTIC_APM_LAMBDA_AGENT_DATA_BUFFER_SIZE编辑

存储要转发到 APM 服务器的 APM 代理数据的缓冲区的大小。默认值为 100

ELASTIC_APM_SECRET_TOKENELASTIC_APM_API_KEY编辑

需要设置其中一个(或者,或者,设置 AWS Secrets Manager ID 的相应设置)作为 Elastic APM AWS Lambda 扩展在将数据发送到通过 ELASTIC_APM_LAMBDA_APM_SERVER 配置的 URL 时使用的身份验证方法。或者,您可以将 APM Server 凭据 存储在 AWS Secrets Manager 中,并使用 ELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_IDELASTIC_APM_SECRETS_MANAGER_API_KEY_ID 配置选项,而不是。如果未设置这些选项中的任何一个,则可以将数据发送到 APM Server,但您的 APM 代理必须被允许以 匿名模式 将数据发送到您的 APM 服务器。

ELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_IDELASTIC_APM_SECRETS_MANAGER_API_KEY_ID编辑

您可以在 Lambda 环境变量中指定 ELASTIC_APM_SECRET_TOKENELASTIC_APM_API_KEY 作为纯文本,也可以 使用 AWS Secrets Manager 安全地存储您的 APM 身份验证密钥。 ELASTIC_APM_SECRETS_MANAGER_API_KEY_IDELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_ID 配置选项允许您分别指定存储的 APM API 密钥或 APM 秘密令牌的 Secrets Manager 的秘密 ID,供 Elastic APM AWS Lambda 扩展用于身份验证。

ELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_ID 优先于 ELASTIC_APM_SECRET_TOKENELASTIC_APM_SECRETS_MANAGER_API_KEY_ID 优先于 ELASTIC_APM_API_KEY

ELASTIC_APM_SERVICE_NAME编辑

您应用程序或服务的配置名称。APM 代理将在将数据报告到 APM Server 时使用此值。如果未设置,APM 代理将根据 Lambda 函数名称自动设置该值。如果您希望将多个 Lambda 函数分组到 APM 中的单个服务实体下,请使用此配置选项。

ELASTIC_APM_DATA_RECEIVER_TIMEOUT编辑

在:v1.2.0 中添加。替换 ELASTIC_APM_DATA_RECEIVER_TIMEOUT_SECONDS

Elastic APM AWS Lambda 扩展的超时值,用于从 APM 代理接收数据。默认值为 15s

ELASTIC_APM_DATA_RECEIVER_SERVER_PORT编辑

Elastic APM AWS Lambda 扩展监听以接收来自 APM 代理的数据的端口。默认值为 8200

ELASTIC_APM_DATA_FORWARDER_TIMEOUT编辑

在:v1.2.0 中添加。替换 ELASTIC_APM_DATA_FORWARDER_TIMEOUT_SECONDS

Elastic APM AWS Lambda 扩展的 HTTP 客户端将数据发送到 APM Server 的超时值。默认值为 3s。如果扩展在该时间间隔内尝试发送 APM 数据未成功,则扩展会将数据排队。进一步尝试发送数据的行为受指数退避算法控制:只要 Lambda 函数执行仍在进行,数据将在 0 秒后发送,然后大约在 1、4、9、16、25 和 36 秒后发送。

ELASTIC_APM_SEND_STRATEGY编辑

是否在函数调用结束时从 Elastic APM AWS Lambda 扩展同步刷新 APM 代理数据到 APM Server。两个接受的值是 backgroundsyncflush默认值为 syncflush

  • background 策略表示 Elastic APM AWS Lambda 扩展在收到函数调用已完成的信号时不会刷新。相反,它将在下次函数调用时发送任何剩余的缓冲数据。结果是,如果该 Lambda 环境随后没有调用该函数,则缓冲数据将丢失。但是,对于具有稳定频繁负载模式的 lambda 函数,扩展可以将数据发送到 APM Server 的时间延迟到下一个 lambda 请求,并在并行处理下一个请求时进行发送。这可能会同时提高 lambda 函数的响应时间和吞吐量。
  • 另一个值 syncflush 将在扩展收到函数调用已完成的信号时同步刷新所有剩余的缓冲 APM 代理数据到 APM Server。此策略阻止 lambda 函数接收下一个请求,直到扩展刷新所有数据。这会对函数的吞吐量产生负面影响,但它可以确保所有 APM 数据都发送到 APM 服务器。

ELASTIC_APM_LOG_LEVEL编辑

APM 代理和 Elastic APM AWS Lambda 扩展使用的日志级别。支持的值为 tracedebuginfowarningerrorcriticaloff

ELASTIC_APM_LAMBDA_CAPTURE_LOGS编辑

[预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的 SLA 支持。 从 Elastic Stack 版本 8.5.0 开始,Elastic APM lambda 扩展默认支持收集日志事件。日志事件可以在 Kibana 的 APM UI 中查看。通过将其设置为 false 来禁用日志收集。

ELASTIC_APM_LAMBDA_VERIFY_SERVER_CERT编辑

在:v1.3.0 中添加。

是否启用 Elastic APM AWS Lambda 扩展以验证 APM Server 的证书链和主机名。

ELASTIC_APM_LAMBDA_SERVER_CA_CERT_PEM编辑

在:v1.3.0 中添加。

作为环境变量传递的证书。如果启用验证服务器证书,则用于验证 APM Server 的证书链。

ELASTIC_APM_SERVER_CA_CERT_FILE编辑

在:v1.3.0 中添加。

作为扩展可用的文件名传递的证书。如果启用验证服务器证书,则用于验证 APM Server 的证书链。

ELASTIC_APM_SERVER_CA_CERT_ACM_ID编辑

在:v1.3.0 中添加。

Amazon 发行证书的 ARN。如果启用验证服务器证书,则用于验证 APM Server 的证书链。

您可能会在 Elastic Stack 版本低于 8.5 的版本中看到类似以下的错误

client error: response status code: 400
message: log: did not recognize object type

使用旧版本的用户应通过将 ELASTIC_APM_LAMBDA_CAPTURE_LOGS 设置为 false 来禁用日志收集。

已弃用的选项编辑

ELASTIC_APM_DATA_RECEIVER_TIMEOUT_SECONDS编辑

在:v1.2.0 中弃用。使用 ELASTIC_APM_DATA_RECEIVER_TIMEOUT 代替。

Elastic APM AWS Lambda 扩展接收 APM 代理数据的超时值(以秒为单位)。默认值为 15

ELASTIC_APM_DATA_FORWARDER_TIMEOUT_SECONDS编辑

已在 v1.2.0 中弃用。请使用 ELASTIC_APM_DATA_FORWARDER_TIMEOUT 代替。

Elastic APM AWS Lambda 扩展的 HTTP 客户端将数据发送到 APM 服务器的超时值(以秒为单位)。默认值为 3。如果扩展在该时间间隔内尝试发送 APM 数据未成功,则扩展会将数据排队。进一步发送数据的尝试将由指数退避算法控制:数据将在 0 秒后发送,然后依次在约 1、4、9、16、25 和 36 秒后发送,前提是 Lambda 函数执行正在进行。