配置参考
编辑配置参考编辑
api_key
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
无 |
字符串 |
此字符串用于确保只有您的代理可以将数据发送到您的 APM Server。您必须使用 APM Server 命令行工具 创建 API 密钥。
api_key
是 secret_token
的替代方案。如果同时配置了 secret_token
和 api_key
,则 api_key
优先,secret_token
将被忽略。
此功能在 APM Server 版本 >= 7.6 中得到完全支持。
api_key
值以纯文本形式发送到服务器的每个请求中,因此您还应该使用 HTTPS 来保护您的通信。除非您这样做,否则您的 API 密钥可能会被攻击者观察到。
breakdown_metrics
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
true |
布尔值 |
如果此配置选项设置为 true
,代理将收集并报告用于“按跨度类型划分的时间”图表的分组指标 (span.self_time
)。将其设置为 false
以禁用分组指标的收集和报告,这可以减少代理的开销。
此功能需要 APM Server 和 Kibana >= 7.3。
capture_errors
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
true |
布尔值 |
如果此配置选项设置为 true
,代理将收集并报告错误事件。将其设置为 false
以禁用 APM 错误事件的收集和报告,这可以减少代理的开销。
另请参见 PHP 错误作为 APM 错误事件。
disable_instrumentations
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
空列表 |
字符串列表 |
要匹配应禁用的检测名称的通配符表达式列表,用逗号分隔。当检测被禁用时,不会为该检测创建跨度。每个检测都有一个名称和任意数量的关键字。如果检测的名称或其任何关键字与此配置选项匹配,则该检测将被禁用。
有关如何使用通配符表达式的更多详细信息,请参见 通配符。
支持的检测
名称 | 关键字 |
---|---|
|
|
|
|
|
|
示例
-
db
禁用 PDO 和 MySQLi 检测 -
*HTTP*
禁用 curl 检测
disable_send
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
false |
布尔值 |
如果设置为 true
,代理将照常工作,除了任何需要与 APM 服务器通信的任务。事件将被丢弃,代理将无法接收中央配置,这意味着在这种状态下,任何其他配置都无法在不重启服务的情况下更改。此设置的示例用途包括:维护通过日志关联功能创建跟踪和记录跟踪/事务/跨度 ID 的能力,以及通过 W3C HTTP 标头 获取自动分布式跟踪。
enabled
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
true |
布尔值 |
设置为 false 将完全禁用代理。
environment
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
无 |
字符串 |
此服务部署到的环境的名称,例如“production”或“staging”。
环境允许您在 APM 应用程序中轻松地过滤全局级别的数据。在跨代理命名环境时保持一致非常重要。有关更多信息,请参见 Kibana UI 中的 环境选择器。
此功能在 Kibana 版本 >= 7.2 中的 APM 应用程序中得到完全支持。在 7.2 之前的版本中,您必须使用查询栏来过滤特定环境。
global_labels
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
空映射 |
字符串到字符串映射 |
来自此配置的标签将添加到代理生成的每个实体中。
格式为 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 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
本地机器的主机名 |
字符串 |
此选项允许配置报告的主机名。如果未设置此选项,将使用本地机器的主机名。
log_level
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
无 |
日志级别 |
一个回退配置设置,用于控制代理的日志记录级别。仅在未显式设置特定于接收器的选项时使用。有关详细信息,请参见 日志记录。
log_level_stderr
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
日志级别 |
stderr
日志记录接收器的日志记录级别。有关详细信息,请参见 日志记录。
log_level_syslog
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
日志级别 |
syslog
日志记录接收器的日志记录级别。有关详细信息,请参见 日志记录。
profiling_inferred_spans_enabled
编辑
此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 的约束。
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
布尔值 |
如果此选项设置为 true
,则代理将根据采样(即统计分析器)为方法执行创建跨度。
由于采样分析器的工作方式,推断的跨度的持续时间并不精确,而只是估计值。请参见 profiling_inferred_spans_sampling_interval
以微调准确性和开销之间的权衡。
profiling_inferred_spans_min_duration
编辑
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
持续时间 |
推断跨度的最小持续时间。
请注意,有效的最小持续时间也会受到采样间隔的影响,因此它是 max(profiling_inferred_spans_min_duration
,profiling_inferred_spans_sampling_interval
)
此配置选项支持持续时间后缀:ms
、s
和 m
。例如:100ms
。
profiling_inferred_spans_sampling_interval
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
持续时间 |
收集堆栈跟踪以构建推断跨度的频率。设置越低,推断跨度持续时间越准确。另一方面,更高的准确性是以更高的开销和更多推断跨度为代价的,这些跨度可能与不相关的操作相关(请参阅 profiling_inferred_spans_min_duration
)。
此配置选项支持持续时间后缀:ms
、s
和 m
。例如:50ms
。
secret_token
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
无 |
字符串 |
此字符串用于确保只有您的代理才能将数据发送到您的 APM 服务器。代理和 APM 服务器都必须配置为使用相同的秘密令牌。
请参阅 相关的 APM 服务器文档,了解如何配置 APM 服务器的秘密令牌。
如果 APM 服务器需要令牌(例如在 Elasticsearch Service 中),请使用此设置。
secret_token
是 api_key
的替代方案。如果同时配置了 secret_token
和 api_key
,则 api_key
优先,secret_token
将被忽略。
secret_token
在每次向服务器发送请求时都以纯文本形式发送,因此您还应使用 HTTPS 来保护您的通信。除非您这样做,否则攻击者可能会观察到您的秘密令牌。
server_timeout
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
持续时间 |
如果将事件发送到 APM 服务器的请求花费的时间超过配置的超时时间,则请求将被取消,并且事件将被丢弃。
该值必须以 持续时间格式 提供。
此选项的默认单位是 s
(秒)。
如果该值为 0
(或 0ms
、0s
等),则将禁用将事件发送到 APM 服务器的超时时间。
负值无效,将导致使用默认值。
server_url
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
字符串 |
您的 APM 服务器的 URL。URL 必须是完全限定的,包括协议(http
或 https
)和端口。
service_name
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
字符串 |
这用于将您服务的所有错误和事务保存在一起,并且是 Elastic APM 用户界面中的主要过滤器。
服务名称必须符合此正则表达式:^[a-zA-Z0-9 _-]+$
。换句话说,服务名称只能包含来自 ASCII 字母表、数字、连字符、下划线和空格的字符。服务名称中不匹配正则表达式的字符将被替换为 _
(下划线)字符。
service_node_name
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
无 |
字符串 |
如果设置了此名称,则它用于区分服务的不同节点。如果未设置,则数据聚合将基于容器 ID(如果受监控的应用程序在容器中运行)。否则,数据聚合将基于报告的主机名(使用 hostname
自动发现或手动配置)。
service_version
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
无 |
字符串 |
当前部署服务的版本。如果您的部署没有版本控制,则此字段的推荐值为部署修订版的提交标识符,例如 git rev-parse HEAD 的输出。
span_compression_enabled
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
true |
布尔值 |
将此选项设置为 true 将启用跨度压缩功能。跨度压缩减少了收集、处理和存储开销,并从 UI 中删除了杂乱。权衡是,不会收集一些信息,例如所有压缩跨度的 DB 语句。
span_compression_exact_match_max_duration
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
持续时间 |
连续的跨度,它们是完全匹配的,并且低于此阈值,将被压缩成单个复合跨度。此选项不适用于复合跨度。这减少了收集、处理和存储开销,并从 UI 中删除了杂乱。权衡是,不会收集所有压缩跨度的 DB 语句。
由于它是 max 持续时间阈值,因此将此配置选项设置为 0 将有效地禁用此压缩策略,因为只有持续时间为 0 的跨度将被视为符合此策略的压缩资格。
此配置选项支持持续时间后缀:ms
、s
和 m
。例如:10ms
。此选项的默认单位是 ms
,因此 5
被解释为 5ms
。
span_compression_same_kind_max_duration
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
持续时间 |
连续的跨度到同一目标,并且低于此阈值,将被压缩成单个复合跨度。此选项不适用于复合跨度。这减少了收集、处理和存储开销,并从 UI 中删除了杂乱。权衡是,不会收集所有压缩跨度的 DB 语句。
由于它是 max 持续时间阈值,因此将此配置选项设置为 0 将有效地禁用此压缩策略,因为只有持续时间为 0 的跨度将被视为符合此策略的压缩资格。
此配置选项支持持续时间后缀:ms
、s
和 m
。例如:10ms
。此选项的默认单位是 ms
,因此 5
被解释为 5ms
。
span_stack_trace_min_duration
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
持续时间 |
虽然将堆栈跟踪附加到跨度可能非常有用,但收集堆栈跟踪确实会产生一些开销。此配置控制收集堆栈跟踪的最小跨度持续时间。更高的值意味着更低的开销,因为对于快速跨度,会跳过堆栈跟踪收集。
将此配置设置为
- 任何正值(例如
5ms
) - 将堆栈跟踪收集限制为持续时间等于或大于给定值的跨度(例如 5 毫秒) -
0
(或0
以及任何持续时间单位,例如0ms
) - 收集任何持续时间的跨度的堆栈跟踪 - 任何负值(例如
-1ms
) - 完全禁用跨度的堆栈跟踪收集
此配置选项支持持续时间后缀:ms
、s
和 m
。例如:10ms
。此选项的默认单位是 ms
,因此 5
被解释为 5ms
。
stack_trace_limit
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
整数 |
此选项控制代理捕获的堆栈跟踪中包含多少帧。
将此配置设置为
- 任何正整数 - 定义堆栈跟踪中包含的最大帧数
-
0
- 禁用堆栈跟踪捕获 - 任何负整数 - 捕获所有帧
transaction_ignore_urls
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
空列表 |
通配符表达式列表 |
此选项指示代理通过不为这些请求创建事务来忽略具有某些 URL 的请求。它只影响代理自动创建事务,但用户仍然可以使用 代理的公共 API 手动创建事务。
请参阅 通配符 部分,了解有关如何使用通配符表达式的更多详细信息。
transaction_max_spans
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
500 |
整数 |
这限制了每个事务记录的跨度数量。这在事务创建大量跨度(例如数千个 SQL 查询)的情况下很有用。设置上限有助于防止在这些极端情况下过载代理和 APM 服务器。
如果该值为 0
,则不会收集任何跨度。
负值无效,将导致使用默认值。
transaction_sample_rate
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
1.0 |
浮点数 |
默认情况下,代理将对每个事务(例如,对您服务的请求)进行采样。为了降低开销和存储要求,将采样率设置为 0.0
和 1.0
之间的值。代理仍然记录未采样事务的总时间和结果,但不记录上下文信息、标签或跨度。
verify_server_cert
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
|
布尔值 |
默认情况下,如果您使用 HTTPS 连接到 APM 服务器,代理将验证 SSL 证书。可以通过将此设置更改为 false
来禁用验证。
url_groups
edit
环境变量名称 | 在 php.ini 中的选项名称 |
---|---|
|
|
默认值 | 类型 |
---|---|
空列表 |
通配符表达式列表 |
使用此选项,您可以使用通配符表达式(如 /user/*
)将多个 URL 路径分组在一起 - 这样 /user/Alice
和 /user/Bob
将被映射到事务名称 /user/*
。
请参阅 通配符 部分,了解有关如何使用通配符表达式的更多详细信息。