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