配置
编辑配置
编辑利用配置选项来调整 Elastic APM 代理以满足您的需求。一种配置设置的方法是使用 php.ini
文件
elastic_apm.server_url=https://127.0.0.1:8200 elastic_apm.service_name="My service"
代理也可以使用环境变量进行配置
export ELASTIC_APM_SERVER_URL="https://127.0.0.1:8200" export ELASTIC_APM_SERVICE_NAME="My service"
如果您使用环境变量来配置代理,请确保运行 PHP 代码的进程在设置环境变量后继承这些环境变量。
Elastic Cloud 上的 Elasticsearch 服务
编辑可以通过将 server_url
和 secret_token
选项设置为在 Elastic Cloud 的 APM 和 Fleet 部分中找到的相应值,将代理配置为将数据发送到 Elasticsearch Service APM 实例。
例如,通过 php.ini
配置代理
elastic_apm.server_url=APM_SERVER_URL elastic_apm.secret_token=TOKEN elastic_apm.service_name=SERVICE_NAME
控制代理发出的 APM 数据量
编辑以下配置设置控制代理发出的 APM 数据量。可以调整这些设置以减少代理对被监控应用程序的开销、网络利用率以及 Elasticsearch 需要的存储量。
日志记录
编辑本节中描述的配置设置与代理本身发出的日志相关,而不是被监控应用程序发出的日志。这些配置设置的预期用例是用于代理的可支持性。代理发出的日志默认情况下不会存储在 Elasticsearch 中,因此降低这些日志的级别不会减少 Elasticsearch 中使用的存储量——请改用 控制代理发出的 APM 数据量。
配置日志记录最简单的方法是使用 log_level_syslog
配置选项。
可用的日志级别为
OFF CRITICAL ERROR WARNING INFO DEBUG TRACE
例如,如果您指定 WARNING
日志级别,则只会发出级别为 WARNING
、ERROR
和 CRITICAL
的日志记录。
OFF
仅用于禁用代理日志记录。
代理支持记录到以下接收器:syslog 和 stderr。使用 log_level_syslog
和 log_level_stderr
选项控制各个接收器的日志记录级别。当未显式设置特定于接收器的日志记录级别时,将使用回退设置 log_level
。
例如,以下配置将所有接收器的日志级别设置为 WARNING
elastic_apm.log_level=WARNING
或者,以下配置将所有接收器的日志级别设置为 WARNING
,除了 syslog
,其日志级别设置为 TRACE
。
elastic_apm.log_level=WARNING elastic_apm.log_level_syslog=TRACE
PHP 错误作为 APM 错误事件
编辑代理会自动为被监控应用程序触发的 PHP 错误创建 APM 错误事件。仅为 PHP 错误级别包含在 PHP error_reporting
设置中的 PHP 错误创建 APM 错误事件。
此外,capture_errors
配置选项控制代理是否捕获任何 PHP 错误。
持续时间格式
编辑持续时间格式用于超时等配置选项。单位作为后缀直接放在数字后面或用任意数量的空格分隔。单位不区分大小写,因此可以使用小写、大写或混合大小写。
支持的单位
-
ms
(毫秒) -
s
(秒) -
m
(分钟)
示例: 5m
(解释为 5 分钟)或 10 mS
(解释为 10 毫秒)。
默认单位:每个具有指定持续时间的配置选项都有默认单位。这允许在选项值中省略单位。例如,如果选项的默认单位是 s
(秒),则值 10
解释为 10 秒。
不同的配置选项可能具有不同的默认单位,因此始终建议明确提供单位。
大小格式
编辑大小格式用于最大缓冲区大小等选项。单位作为后缀直接放在数字后面或用任意数量的空格分隔。单位不区分大小写,因此可以使用小写、大写或混合大小写。
支持的单位
- B(字节)
- KB(千字节)
- MB(兆字节)
- GB(千兆字节)
我们使用 2 的幂大小约定,例如 1KB = 1024B。
示例: 34KB
(解释为 34 千字节)或 78 mB
(解释为 78 兆字节)。
默认单位:每个具有指定大小的配置选项都有默认单位。这允许在选项值中省略单位。例如,如果选项的默认单位是 KB
(千字节),则值 10
解释为 10 千字节。
不同的配置选项可能具有不同的默认单位,因此始终建议明确提供单位。
通配符
编辑某些选项(例如 url_groups
)支持使用通配符。此类配置选项的有效值为用逗号分隔的通配符表达式列表。仅支持匹配零个或多个字符的通配符 *
。
示例:*foo*
、/foo/*/bar, /*/baz*
。
默认情况下,匹配不区分大小写。在元素前加上 (?-i)
使匹配区分大小写。例如 (?-i)/bar, /foo
匹配 /bar
和 /FOO
,但不匹配 /BAR
。另一方面,(?-i)/bar, (?-i)/foo
匹配 /bar
和 /foo
,但不匹配 /BAR
或 /FOO
。
列表中分隔通配符表达式的逗号周围的空格将被忽略。例如 foo , bar
与 foo,bar
相同。另一方面,通配符表达式内部的空格具有意义。例如 *a b*
仅当字符串包含 a
后跟空格再跟 b
时才匹配该字符串。
输入字符串将按其列出的顺序与通配符表达式匹配,并选择第一个匹配的表达式。
当配置选项旨在与输入 URL 匹配时(例如 url_groups
和 transaction_ignore_urls
),仅测试 URL 的路径部分是否与通配符表达式匹配。URL 的其他部分(例如查询字符串等)不会被考虑在内,因此在通配符表达式中包含它们可能会导致意外结果。例如 /user/*
匹配 http://my_site.com/user/Alice?lang=en
,而 /user/*?lang=*
不匹配 http://my_site.com/user/Alice?lang=en