配置编辑

利用配置选项来使 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 Service编辑

可以通过将 server_urlsecret_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 日志级别,则只会发出级别为 WARNINGERRORCRITICAL 的日志记录。

OFF 仅用于禁用代理日志记录。

代理支持将日志记录到以下接收器:syslog 和 stderr。使用 log_level_sysloglog_level_stderr 选项控制各个接收器的日志记录级别。当没有显式设置接收器特定的日志记录级别时,将使用回退设置 log_level

例如,以下配置为所有接收器设置日志级别为 WARNING

elastic_apm.log_level=WARNING

或者,以下配置为除 syslog 之外的所有接收器设置日志级别为 WARNING,其中 syslog 的日志级别设置为 TRACE

elastic_apm.log_level=WARNING
elastic_apm.log_level_syslog=TRACE

PHP 错误作为 APM 错误事件编辑

代理会自动为受监控应用程序触发的 PHP 错误创建 APM 错误事件。仅为级别包含在 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 , barfoo,bar 相同。另一方面,通配符表达式内的空格很重要。例如,*a b* 仅当字符串包含后跟空格的 a,然后是 b 时才匹配该字符串。

输入字符串按列出的顺序与通配符表达式匹配,并选择第一个匹配的表达式。

当配置选项用于匹配输入 URL 时(例如 url_groupstransaction_ignore_urls),仅 URL 的路径部分会与通配符表达式进行测试。URL 的其他部分(例如查询字符串等)不会被考虑在内,因此将它们包含在通配符表达式中可能会导致意外结果。例如,/user/* 匹配 http://my_site.com/user/Alice?lang=en,而 /user/*?lang=* 不匹配 http://my_site.com/user/Alice?lang=en