配置选项

编辑

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

APM 代理的配置选项在相应的语言代理中进行了记录。

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

使用 Elastic APM AWS Lambda 扩展时,不支持 APM 中心配置。

相关的配置选项

编辑

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

ELASTIC_APM_LAMBDA_APM_SERVER

编辑

此必需的配置选项控制 Elastic APM AWS Lambda 扩展将数据发送到哪里。这应该是您的遥测数据的最终 APM 服务器目标的 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 服务器凭据 存储在 AWS Secrets Manager 中 并使用 ELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_IDELASTIC_APM_SECRETS_MANAGER_API_KEY_ID 配置选项。如果没有设置这些选项中的任何一个,也可以将数据发送到 APM 服务器,但是您的 APM 代理必须被允许以 匿名模式 将数据发送到您的 APM 服务器。

ELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_IDELASTIC_APM_SECRETS_MANAGER_API_KEY_ID

编辑

您可以 使用 AWS Secrets Manager 安全地存储您的 APM 身份验证密钥,而不是在您的 Lambda 环境变量中将 ELASTIC_APM_SECRET_TOKENELASTIC_APM_API_KEY 指定为纯文本。 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 服务器报告数据时使用此值。如果未设置,APM 代理将根据 Lambda 函数名称自动设置值。如果您想在 APM 中将多个 Lambda 函数分组到单个服务实体下,请使用此配置选项。

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 服务器的超时值。默认值3s。如果扩展在此时间间隔内尝试发送 APM 数据未成功,则扩展会将数据排队。发送数据的进一步尝试受指数退避算法控制:只要 Lambda 函数执行正在进行,数据将在越来越长的宽限期后发送,分别是 0 秒,然后大约 1 秒、4 秒、9 秒、16 秒、25 秒和 36 秒。

ELASTIC_APM_SEND_STRATEGY

编辑

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

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

ELASTIC_APM_LAMBDA_SERVER_CA_CERT_PEM

编辑

新增于:v1.3.0。

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

ELASTIC_APM_SERVER_CA_CERT_FILE

编辑

新增于:v1.3.0。

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

ELASTIC_APM_SERVER_CA_CERT_ACM_ID

编辑

新增于:v1.3.0。

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

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

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 数据未成功,则扩展会将数据排队。发送数据的进一步尝试受指数退避算法控制:只要 Lambda 函数执行正在进行,数据将在越来越长的宽限期后发送,分别是 0 秒,然后大约 1 秒、4 秒、9 秒、16 秒、25 秒和 36 秒。