Datadog Agent には、ログが失われないようにするための複数の仕組みがあります。
ログローテーション
ファイルがローテーションされると、Agent は古いファイルをテイルし続けながら、新しく作成されたファイルのテイルも同時に開始します。
Agent は古いファイルをテイルし続けますが、ログローテーション後に 60 秒のタイムアウトが設定され、Agent が最新のファイルをテイルするためのリソースを確保するようになっています。
ネットワークの問題
ファイルのテイル
Agent はテイル対象のファイルごとにポインタを保持しています。ネットワーク接続の問題が発生した場合、Agent は接続が回復するまでログの送信を停止し、接続が復旧すると自動的に停止した箇所から再開するため、ログが失われることはありません。
ポートリスニング
Agent が TCP や UDP ポートでログを待ち受けている場合にネットワークの問題が起きた場合、ログはネットワークが復旧するまでローカルバッファに保存されます。
ただし、メモリの問題を回避するため、このバッファには上限があります。バッファがいっぱいになると、新しいログは破棄されます。
コンテナログ
ファイルの場合と同様に、Datadog はテイル対象のコンテナごとにポインタを保持しています。したがって、ネットワークの問題が発生した場合でも、どのログがまだ送信されていないかを Agent が把握できます。
しかし、テイル対象のコンテナがネットワークが復旧する前に削除されてしまった場合、これらのログにはもうアクセスできません。