故障排除

编辑

希望代理能够“即装即用”,但根据您的情况,代理可能需要一些调优。

首先,要了解代理内部发生的情况,您可以增加它写入的日志消息数量。为此,可以使用选项 log_level = 0 设置日志级别——0 表示消息级别最高,即 DEBUG

在您的 config/elastic_apm.yml 文件中

log_level: <%= Logger::DEBUG %>

日志消息

编辑

队列已满 (256 个项目),跳过…

编辑

代理有一个内部队列,用于在事件完成处理后、安全序列化并发送到 APM 服务器之前存储这些事件。为避免占用所有内存,此队列具有固定大小。根据您的负载和服务器设置,事件添加到队列的速度可能快于消耗速度,因此会出现此警告。

注意事项

  • server_url 是否配置错误或 APM 服务器是否宕机?如果代理无法连接,您还会看到包含 连接错误无法建立与 APM 服务器的连接 的日志消息。
  • 遇到高负载?代理可以生成其工作程序的多个实例,这些实例通过更改选项 pool_size 来提取队列(默认为 1)。
  • 如果负载很高,您还可以考虑将 transaction_sample_rate 设置为小于 1.0 的值。这决定了是否为每个事务包含跨度。如果流量足够大,跳过一些(可能)相同的跨度不会对您的数据产生明显的影响。

禁用代理

编辑

如果代理极少情况下会导致生产应用程序中断,您可以在进行故障排除时禁用代理。

如果您有权访问 动态配置,则可以通过将 recording 设置为 false 来禁用事件记录。当从支持的来源在运行时更改时,无需重新启动应用程序。

如果这不起作用,或者您无权访问动态配置,则可以通过将 enabled 设置为 false 来禁用代理。您需要重新启动应用程序才能应用这些更改。