配置选项
编辑配置选项
编辑推荐的配置 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_TOKEN
或 ELASTIC_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_ID
或 ELASTIC_APM_SECRETS_MANAGER_API_KEY_ID
配置选项。如果没有设置这些选项中的任何一个,也可以将数据发送到 APM 服务器,但是您的 APM 代理必须被允许以 匿名模式 将数据发送到您的 APM 服务器。
ELASTIC_APM_SECRETS_MANAGER_SECRET_TOKEN_ID
或 ELASTIC_APM_SECRETS_MANAGER_API_KEY_ID
编辑您可以 使用 AWS Secrets Manager 安全地存储您的 APM 身份验证密钥,而不是在您的 Lambda 环境变量中将 ELASTIC_APM_SECRET_TOKEN
或 ELASTIC_APM_API_KEY
指定为纯文本。 ELASTIC_APM_SECRETS_MANAGER_API_KEY_ID
或 ELASTIC_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_TOKEN
,ELASTIC_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 服务器。两个可接受的值是 background
和 syncflush
。默认值为 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 扩展使用的日志级别。支持的值为 trace
、debug
、info
、warning
、error
、critical
和 off
。
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 秒。