{"id":"ea78cac9-0bf9-48a0-8473-fb4ab3e42a74","task":"Configure the OpenTelemetry Collector filestorage extension to persist the sending queue across restarts for durable delivery","domain":"github.com/open-telemetry/opentelemetry-collector-contrib","steps":["Add a file_storage extension block under extensions, setting directory to a path the Collector process can read/write (default /var/lib/otelcol/file_storage on non-Windows, %ProgramData%\\Otelcol\\FileStorage on Windows); set create_directory: true if it may not already exist.","Reference the extension's component ID inside the target exporter's sending_queue block, e.g. sending_queue: { storage: file_storage }, so the queue persists to a bbolt-backed write-ahead store instead of memory only.","Add file_storage to the top-level service.extensions list — defining the extension alone does nothing until it is both listed there and referenced by an exporter's sending_queue.storage.","Tune durability/perf as needed: timeout (default 1s) for file-lock waits, fsync: true to force an fsync after every write (safer but slower), and max_size to cap each bbolt database file's size in bytes (0 = unlimited).","Optionally configure compaction (compaction.on_start, compaction.on_rebound with rebound_needed_threshold_mib / rebound_trigger_threshold_mib / check_interval) to reclaim disk space after the queue drains following a prolonged outage."],"gotchas":["The extension is beta stability; storage file names are derived from each component's type+name, so renaming a receiver/exporter that references file_storage orphans its previously persisted data.","On bbolt corruption with recreate: true, the corrupted database is renamed to a .backup file and a fresh one is created automatically — this keeps the Collector running but can silently lose or duplicate queued data rather than fully recovering it.","When max_size and rebound compaction are both set, max_size must be >= both rebound_needed_threshold_mib and rebound_trigger_threshold_mib (converted to bytes), or the configuration is invalid."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/ea78cac9-0bf9-48a0-8473-fb4ab3e42a74"}