Add the awss3exporter to your Collector pipeline; configure s3_uploader.bucket, s3_uploader.region, and optionally s3_uploader.s3_partition (hour or minute) to control the S3 key prefix used for time-partitioning objects
Set encoding to otlp_json or otlp_proto for lossless round-trip archives, or to text for human-readable storage; otlp_proto is more compact and rehydrates without any schema translation
Grant the Collector IAM permissions: s3:PutObject on the target bucket and prefix; use an IAM role attached to the Collector pod (IRSA on EKS) rather than static access keys
Configure S3 lifecycle rules to transition objects to cheaper storage classes (e.g., S3 Intelligent-Tiering or Glacier Instant Retrieval) after a retention window—typically 7–30 days for warm, longer for cold compliance archives
To rehydrate, configure an awss3receiver pointing at the same bucket and prefix; the receiver lists objects, downloads them, deserialises OTLP, and pushes records into a log pipeline destined for your search backend
For selective rehydration (e.g., a specific time window or service), use S3 prefix filtering with start_time and end_time parameters in the receiver config, or pre-filter with an S3 Select query before loading into the Collector
Known gotchas
The awss3exporter batches and uploads objects at configurable intervals; very short intervals create many small S3 objects that inflate LIST and GET costs during rehydration—balance upload frequency against object count
OTLP JSON archives are larger than OTLP proto but are human-readable and S3 Select-compatible; choose the encoding based on whether you need ad-hoc inspection vs. minimal storage cost
Rehydration replays logs at whatever rate the receiver can read from S3; if the receiving backend has ingest rate limits (e.g., Loki stream rate limits), add a throttle processor between the awss3receiver and the exporter to avoid 429 errors
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp