Disk buffer for batches VictoriaLogs cannot take, lossless Docker positions, non-blocking reverse DNS

- Batches that fail go to /data/spool (SPOOL_MAX_MB, 1 GiB by default) and
  are sent again oldest first; retries no longer block the store loop and
  follow the shutdown context.
- Docker and host logs wait for room in a full queue instead of being
  dropped; the Docker position only moves once a line is stored or spooled.
- Reverse DNS no longer holds up the syslog listeners, with an LRU cache
  and a cap on concurrent lookups.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
cedricandClaude Opus 5.5 committed 2026-10-03 16:26:18 +02:00
1 parent 3466a29692
commit 3504263992
14 files changed
+778 -84

No files matched your search

+2 -2
View File
@@ -153,7 +153,7 @@ func TestHistogramHandler(t *testing.T) {
{"_time":"2000-01-01T00:00:00Z","severity":"info","hits":"9"}
`, recent.Format(time.RFC3339), recent.Format(time.RFC3339), older.Format(time.RFC3339))
}}
store := NewStore("http://vl", 10, 10, time.Second)
store := NewStore("http://vl", 10, 10, time.Second, nil)
store.streamClient.Transport = vl
a := &API{store: store}
@@ -207,7 +207,7 @@ func TestHistogramDayInParis(t *testing.T) {
{"_time":"2026-09-21T20:00:00Z","severity":"info","hits":"100"}
`
}}
store := NewStore("http://vl", 10, 10, time.Second)
store := NewStore("http://vl", 10, 10, time.Second, nil)
store.streamClient.Transport = vl
a := &API{store: store}
from := time.Date(2026, 9, 10, 0, 0, 0, 0, time.UTC)