故障排除编辑

希望代理能够正常工作,但根据您的情况,代理可能需要进行一些调整。

首先,要详细了解代理内部发生的情况,您可以增加它写入的日志消息的数量。为此,请使用选项 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来禁用代理。您需要重新启动应用程序才能使更改生效。