配置
编辑配置编辑
利用配置选项来使 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_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
或者,以下配置为除 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 , 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