当 APM 服务器或 Elasticsearch 关闭时会发生什么?
编辑当 APM 服务器或 Elasticsearch 关闭时会发生什么?编辑
如果 Elasticsearch 关闭
APM 服务器没有用于缓冲请求的内部队列,而是利用 HTTP 请求超时来充当背压。如果 Elasticsearch 关闭,APM 服务器最终将拒绝传入请求。APM 服务器和 APM 代理都将相应地发出日志。
如果 APM 服务器关闭
一些代理具有内部队列或缓冲区,如果 APM 服务器关闭,它们将临时存储数据。根据一般经验,队列会很快填满。假设 APM 服务器关闭,数据将丢失。调整这些队列/缓冲区会增加代理的开销,因此更新默认值时要谨慎。
-
Go 代理 - 具有可配置大小的循环缓冲区:
ELASTIC_APM_BUFFER_SIZE
。 -
Java 代理 - 具有可配置大小的内部缓冲区:
max_queue_size
。 - Node.js 代理 - 没有内部队列。数据丢失。
- PHP 代理 - 没有内部队列。数据丢失。
- Python 代理 - 具有可配置大小和刷新间隔的内部事务队列。
-
Ruby 代理 - 具有可配置大小的内部队列:
api_buffer_size
。 - RUM 代理 - 没有内部队列。数据丢失。
- .NET 代理 - 没有内部队列。数据丢失。