配置参考编辑

api_key编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_API_KEY

elastic_apm.api_key

默认值 类型

字符串

此字符串用于确保只有您的代理可以将数据发送到您的 APM Server。您必须使用 APM Server 命令行工具 创建 API 密钥。

api_keysecret_token 的替代方案。如果同时配置了 secret_tokenapi_key,则 api_key 优先,secret_token 将被忽略。

此功能在 APM Server 版本 >= 7.6 中得到完全支持。

api_key 值以纯文本形式发送到服务器的每个请求中,因此您还应该使用 HTTPS 来保护您的通信。除非您这样做,否则您的 API 密钥可能会被攻击者观察到。

breakdown_metrics编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_BREAKDOWN_METRICS

elastic_apm.breakdown_metrics

默认值 类型

true

布尔值

如果此配置选项设置为 true,代理将收集并报告用于“按跨度类型划分的时间”图表的分组指标 (span.self_time)。将其设置为 false 以禁用分组指标的收集和报告,这可以减少代理的开销。

此功能需要 APM Server 和 Kibana >= 7.3。

capture_errors编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_CAPTURE_ERRORS

elastic_apm.capture_errors

默认值 类型

true

布尔值

如果此配置选项设置为 true,代理将收集并报告错误事件。将其设置为 false 以禁用 APM 错误事件的收集和报告,这可以减少代理的开销。

另请参见 PHP 错误作为 APM 错误事件

disable_instrumentations编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_DISABLE_INSTRUMENTATIONS

elastic_apm.disable_instrumentations

默认值 类型

空列表

字符串列表

要匹配应禁用的检测名称的通配符表达式列表,用逗号分隔。当检测被禁用时,不会为该检测创建跨度。每个检测都有一个名称和任意数量的关键字。如果检测的名称或其任何关键字与此配置选项匹配,则该检测将被禁用。

有关如何使用通配符表达式的更多详细信息,请参见 通配符

支持的检测

名称 关键字

curl

HTTP-客户端

PDO

DB

MySQLi

DB

示例

  • db 禁用 PDO 和 MySQLi 检测
  • *HTTP* 禁用 curl 检测

disable_send编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_DISABLE_SEND

elastic_apm.disable_send

默认值 类型

false

布尔值

如果设置为 true,代理将照常工作,除了任何需要与 APM 服务器通信的任务。事件将被丢弃,代理将无法接收中央配置,这意味着在这种状态下,任何其他配置都无法在不重启服务的情况下更改。此设置的示例用途包括:维护通过日志关联功能创建跟踪和记录跟踪/事务/跨度 ID 的能力,以及通过 W3C HTTP 标头 获取自动分布式跟踪。

enabled编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_ENABLED

elastic_apm.enabled

默认值 类型

true

布尔值

设置为 false 将完全禁用代理。

environment编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_ENVIRONMENT

elastic_apm.environment

默认值 类型

字符串

此服务部署到的环境的名称,例如“production”或“staging”。

环境允许您在 APM 应用程序中轻松地过滤全局级别的数据。在跨代理命名环境时保持一致非常重要。有关更多信息,请参见 Kibana UI 中的 环境选择器

此功能在 Kibana 版本 >= 7.2 中的 APM 应用程序中得到完全支持。在 7.2 之前的版本中,您必须使用查询栏来过滤特定环境。

global_labels编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_GLOBAL_LABELS

elastic_apm.global_labels

默认值 类型

空映射

字符串到字符串映射

来自此配置的标签将添加到代理生成的每个实体中。

格式为 key=value[,key=value[,...]]。例如 dept=engineering,rack=number8

.ini 文件中设置此配置选项时,需要将值用引号括起来(因为值包含等号)。例如 elastic_apm.global_labels = "dept=engineering,rack=number8"

应用程序通过代理的公共 API 设置的任何标签都将覆盖具有相同键的全局标签。

此选项需要 APM Server 7.2 或更高版本。它对旧版本无效。

hostname编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_HOSTNAME

elastic_apm.hostname

默认值 类型

本地机器的主机名

字符串

此选项允许配置报告的主机名。如果未设置此选项,将使用本地机器的主机名。

log_level编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_LOG_LEVEL

elastic_apm.log_level

默认值 类型

日志级别

一个回退配置设置,用于控制代理的日志记录级别。仅在未显式设置特定于接收器的选项时使用。有关详细信息,请参见 日志记录

log_level_stderr编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_LOG_LEVEL_STDERR

elastic_apm.log_level_stderr

默认值 类型

CRITICAL

日志级别

stderr 日志记录接收器的日志记录级别。有关详细信息,请参见 日志记录

log_level_syslog编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_LOG_LEVEL_SYSLOG

elastic_apm.log_level_syslog

默认值 类型

INFO

日志级别

syslog 日志记录接收器的日志记录级别。有关详细信息,请参见 日志记录

profiling_inferred_spans_enabled编辑

此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 的约束。

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_PROFILING_INFERRED_SPANS_ENABLED

elastic_apm.profiling_inferred_spans_enabled

默认值 类型

false

布尔值

如果此选项设置为 true,则代理将根据采样(即统计分析器)为方法执行创建跨度。

由于采样分析器的工作方式,推断的跨度的持续时间并不精确,而只是估计值。请参见 profiling_inferred_spans_sampling_interval 以微调准确性和开销之间的权衡。

profiling_inferred_spans_min_duration编辑

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_PROFILING_INFERRED_SPANS_MIN_DURATION

elastic_apm.profiling_inferred_spans_min_duration

默认值 类型

0ms

持续时间

推断跨度的最小持续时间。

请注意,有效的最小持续时间也会受到采样间隔的影响,因此它是 max(profiling_inferred_spans_min_durationprofiling_inferred_spans_sampling_interval)

此配置选项支持持续时间后缀:mssm。例如:100ms

profiling_inferred_spans_sampling_intervaledit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_PROFILING_INFERRED_SPANS_SAMPLING_INTERVAL

elastic_apm.profiling_inferred_spans_sampling_interval

默认值 类型

50ms

持续时间

收集堆栈跟踪以构建推断跨度的频率。设置越低,推断跨度持续时间越准确。另一方面,更高的准确性是以更高的开销和更多推断跨度为代价的,这些跨度可能与不相关的操作相关(请参阅 profiling_inferred_spans_min_duration)。

此配置选项支持持续时间后缀:mssm。例如:50ms

secret_tokenedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SECRET_TOKEN

elastic_apm.secret_token

默认值 类型

字符串

此字符串用于确保只有您的代理才能将数据发送到您的 APM 服务器。代理和 APM 服务器都必须配置为使用相同的秘密令牌。

请参阅 相关的 APM 服务器文档,了解如何配置 APM 服务器的秘密令牌。

如果 APM 服务器需要令牌(例如在 Elasticsearch Service 中),请使用此设置。

secret_tokenapi_key 的替代方案。如果同时配置了 secret_tokenapi_key,则 api_key 优先,secret_token 将被忽略。

secret_token 在每次向服务器发送请求时都以纯文本形式发送,因此您还应使用 HTTPS 来保护您的通信。除非您这样做,否则攻击者可能会观察到您的秘密令牌。

server_timeoutedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SERVER_TIMEOUT

elastic_apm.server_timeout

默认值 类型

30s

持续时间

如果将事件发送到 APM 服务器的请求花费的时间超过配置的超时时间,则请求将被取消,并且事件将被丢弃。

该值必须以 持续时间格式 提供。

此选项的默认单位是 s(秒)。

如果该值为 0(或 0ms0s 等),则将禁用将事件发送到 APM 服务器的超时时间。

负值无效,将导致使用默认值。

server_urledit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SERVER_URL

elastic_apm.server_url

默认值 类型

https://127.0.0.1:8200

字符串

您的 APM 服务器的 URL。URL 必须是完全限定的,包括协议(httphttps)和端口。

service_nameedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SERVICE_NAME

elastic_apm.service_name

默认值 类型

unknown-php-service

字符串

这用于将您服务的所有错误和事务保存在一起,并且是 Elastic APM 用户界面中的主要过滤器。

服务名称必须符合此正则表达式:^[a-zA-Z0-9 _-]+$。换句话说,服务名称只能包含来自 ASCII 字母表、数字、连字符、下划线和空格的字符。服务名称中不匹配正则表达式的字符将被替换为 _(下划线)字符。

service_node_nameedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SERVICE_NODE_NAME

elastic_apm.service_node_name

默认值 类型

字符串

如果设置了此名称,则它用于区分服务的不同节点。如果未设置,则数据聚合将基于容器 ID(如果受监控的应用程序在容器中运行)。否则,数据聚合将基于报告的主机名(使用 hostname 自动发现或手动配置)。

service_versionedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SERVICE_VERSION

elastic_apm.service_version

默认值 类型

字符串

当前部署服务的版本。如果您的部署没有版本控制,则此字段的推荐值为部署修订版的提交标识符,例如 git rev-parse HEAD 的输出。

span_compression_enablededit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SPAN_COMPRESSION_ENABLED

elastic_apm.span_compression_enabled

默认值 类型

true

布尔值

将此选项设置为 true 将启用跨度压缩功能。跨度压缩减少了收集、处理和存储开销,并从 UI 中删除了杂乱。权衡是,不会收集一些信息,例如所有压缩跨度的 DB 语句。

span_compression_exact_match_max_durationedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SPAN_COMPRESSION_EXACT_MATCH_MAX_DURATION

elastic_apm.span_compression_exact_match_max_duration

默认值 类型

50ms

持续时间

连续的跨度,它们是完全匹配的,并且低于此阈值,将被压缩成单个复合跨度。此选项不适用于复合跨度。这减少了收集、处理和存储开销,并从 UI 中删除了杂乱。权衡是,不会收集所有压缩跨度的 DB 语句。

由于它是 max 持续时间阈值,因此将此配置选项设置为 0 将有效地禁用此压缩策略,因为只有持续时间为 0 的跨度将被视为符合此策略的压缩资格。

此配置选项支持持续时间后缀:mssm。例如:10ms。此选项的默认单位是 ms,因此 5 被解释为 5ms

span_compression_same_kind_max_durationedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SPAN_COMPRESSION_SAME_KIND_MAX_DURATION

elastic_apm.span_compression_same_kind_max_duration

默认值 类型

0ms

持续时间

连续的跨度到同一目标,并且低于此阈值,将被压缩成单个复合跨度。此选项不适用于复合跨度。这减少了收集、处理和存储开销,并从 UI 中删除了杂乱。权衡是,不会收集所有压缩跨度的 DB 语句。

由于它是 max 持续时间阈值,因此将此配置选项设置为 0 将有效地禁用此压缩策略,因为只有持续时间为 0 的跨度将被视为符合此策略的压缩资格。

此配置选项支持持续时间后缀:mssm。例如:10ms。此选项的默认单位是 ms,因此 5 被解释为 5ms

span_stack_trace_min_durationedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_SPAN_STACK_TRACE_MIN_DURATION

elastic_apm.span_stack_trace_min_duration

默认值 类型

5ms

持续时间

虽然将堆栈跟踪附加到跨度可能非常有用,但收集堆栈跟踪确实会产生一些开销。此配置控制收集堆栈跟踪的最小跨度持续时间。更高的值意味着更低的开销,因为对于快速跨度,会跳过堆栈跟踪收集。

将此配置设置为

  • 任何正值(例如 5ms) - 将堆栈跟踪收集限制为持续时间等于或大于给定值的跨度(例如 5 毫秒)
  • 0(或 0 以及任何持续时间单位,例如 0ms) - 收集任何持续时间的跨度的堆栈跟踪
  • 任何负值(例如 -1ms) - 完全禁用跨度的堆栈跟踪收集

此配置选项支持持续时间后缀:mssm。例如:10ms。此选项的默认单位是 ms,因此 5 被解释为 5ms

stack_trace_limitedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_STACK_TRACE_LIMIT

elastic_apm.stack_trace_limit

默认值 类型

50

整数

此选项控制代理捕获的堆栈跟踪中包含多少帧。

将此配置设置为

  • 任何正整数 - 定义堆栈跟踪中包含的最大帧数
  • 0 - 禁用堆栈跟踪捕获
  • 任何负整数 - 捕获所有帧

transaction_ignore_urlsedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_TRANSACTION_IGNORE_URLS

elastic_apm.transaction_ignore_urls

默认值 类型

空列表

通配符表达式列表

此选项指示代理通过不为这些请求创建事务来忽略具有某些 URL 的请求。它只影响代理自动创建事务,但用户仍然可以使用 代理的公共 API 手动创建事务。

请参阅 通配符 部分,了解有关如何使用通配符表达式的更多详细信息。

transaction_max_spansedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_TRANSACTION_MAX_SPANS

elastic_apm.transaction_max_spans

默认值 类型

500

整数

这限制了每个事务记录的跨度数量。这在事务创建大量跨度(例如数千个 SQL 查询)的情况下很有用。设置上限有助于防止在这些极端情况下过载代理和 APM 服务器。

如果该值为 0,则不会收集任何跨度。

负值无效,将导致使用默认值。

transaction_sample_rateedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_TRANSACTION_SAMPLE_RATE

elastic_apm.transaction_sample_rate

默认值 类型

1.0

浮点数

默认情况下,代理将对每个事务(例如,对您服务的请求)进行采样。为了降低开销和存储要求,将采样率设置为 0.01.0 之间的值。代理仍然记录未采样事务的总时间和结果,但不记录上下文信息、标签或跨度。

verify_server_certedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_VERIFY_SERVER_CERT

elastic_apm.verify_server_cert

默认值 类型

true

布尔值

默认情况下,如果您使用 HTTPS 连接到 APM 服务器,代理将验证 SSL 证书。可以通过将此设置更改为 false 来禁用验证。

url_groupsedit

环境变量名称 php.ini 中的选项名称

ELASTIC_APM_URL_GROUPS

elastic_apm.url_groups

默认值 类型

空列表

通配符表达式列表

使用此选项,您可以使用通配符表达式(如 /user/*)将多个 URL 路径分组在一起 - 这样 /user/Alice/user/Bob 将被映射到事务名称 /user/*

请参阅 通配符 部分,了解有关如何使用通配符表达式的更多详细信息。