Collector v0 (Layer 1) #1

Merged
foreman merged 7 commits from foreman/collector-scaffold into main 2026-05-06 17:47:49 -03:00
2 changed files with 10 additions and 1 deletions
Showing only changes of commit 3a586f38a9 - Show all commits

View file

@ -48,4 +48,8 @@ sources:
# Valid → emit + delete. Invalid → moved to .dead-letter/ with reason. # Valid → emit + delete. Invalid → moved to .dead-letter/ with reason.
drop_folder: drop_folder:
path: ~/Nyx/workspace/incoming/ path: ~/Nyx/workspace/incoming/
poll_fallback_seconds: 30 # safety net if inotify misses # Safety net if inotify misses an event. 0 (or unset) = use the
# 30-second default. There is no "disable polling" option in v1 —
# if you don't want polling, leave inotify to do its job and ignore
# the cost (a periodic readdir is microseconds).
poll_fallback_seconds: 30

View file

@ -38,6 +38,11 @@ type Event struct {
// //
// Concurrency: a single Writer is safe for use from multiple goroutines. // Concurrency: a single Writer is safe for use from multiple goroutines.
// One sync.Mutex per recipient bounds contention to per-file granularity. // One sync.Mutex per recipient bounds contention to per-file granularity.
//
// The locks map grows monotonically as new recipients appear. In practice
// the agent network has <10 recipients, so the leak is bounded; if this
// daemon ever lives in a system with thousands of recipients, replace the
// map with an LRU or shard-and-evict scheme.
type Writer struct { type Writer struct {
dir string dir string