Fluentdのバッファーを詰まらせる
大量のリクエストを投げ、そのログが送られて来た時の最新時刻と今の時刻を5秒毎に取ってみました。
最初はこんな感じ。左側が今の時刻で右側がログの時刻。ログ転送のラグで三秒程度遅れていますが・・
16:19:39 16:19:36 16:19:44 16:19:39 16:19:50 16:19:42 16:19:55 16:19:47 16:20:00 16:19:50 16:20:05 16:19:55 16:20:10 16:19:57
負荷を大量にかけているのでだんだん時刻にずれがでてきます。
さらに進めていくと...なんとログ更新が止まりました。
16:29:12 16:26:16 16:29:17 16:26:19 16:29:22 16:26:23 16:29:27 16:26:25 16:29:32 16:26:25
この時にFluentd側には以下のようなワーニングが出てました。
fluentd 2021-12-10 00:25:19 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2021-12-10 00:25:20 +0000 chunk="xx" error_class=Errno::ECONNREFUSED error="Connection refused - connect(2) for \"..." fluentd 2021-12-10 00:25:19 +0000 [warn]: #0 suppressed same stacktrace ... fluentd...
そこからは負荷を送り続けている限り更新が止まらず、負荷がけを16:49:32に止めると1分後にログ更新が始まりました。
16:50:46 16:26:25 16:50:51 16:26:30 16:50:56 16:26:32 16:51:01 16:26:36
結果
一度転送が止まると止まり続ける。
ただ、負荷が落ち着くと自動で再送してくれるのでそこは大丈夫。
そういう意味では届く時刻はあてにできませんねぇ...。