S3 Configuration
Depths v0.1.1 can seal each UTC day of data and ship it to S3 or any S3-compatible store. S3-backup is optional : local-only works fine. When S3 is set by environment variables, the server ships sealed days and verifies row counts. You can then read sealed days from S3. The querying experience via the query endpoints stays identical, allowing seamless analysis over local and s3-backed telemetry.When to enable S3
- Durable storage for historical days
- Read sealed days from object storage instead of the ingest box
- S3-compatible endpoints (MinIO, DigitalOcean Spaces, etc.)
Environment variables
Set these before you rundepths init
and depths start
.
Required
Variable | Meaning |
---|---|
S3_BUCKET | Bucket name |
AWS_ACCESS_KEY_ID or S3_ACCESS_KEY_ID | Access key |
AWS_SECRET_ACCESS_KEY or S3_SECRET_KEY or S3_SECRET_ACCESS_KEY | Secret |
AWS_REGION or S3_REGION | Region (leave empty for some S3-compatible vendors) |
AWS_ENDPOINT_URL or S3_URL | Endpoint URL, e.g. https://s3.amazonaws.com or http://minio:9000 |
Optional
Variable | Meaning |
---|---|
S3_PREFIX | Key prefix, e.g. depths-prod |
AWS_SESSION_TOKEN | Session token if using temporary creds |
For S3-compatible endpoints usinghttp://
, reads useAWS_ALLOW_HTTP=true
internally. Prefer TLS in production.
Set variables
Start with shipping enabled
- During the day, rows are appended to local Delta tables.
- On UTC day rollover, the server seals the day, uploads the tables to S3, verifies row counts, then cleans local copies when verification passes.
Bucket layout
Days are stored under:otel/
:
spans
, span_events
, span_links
, logs
, metrics_points
, metrics_hist
.
Verify shipping
Health:sealed
→ uploaded
→ verified
→ cleaned
with row counts.
Read from S3
Use the CLI to read directly from S3, or let it auto-select.storage
parameter (auto
, local
, s3
) if you prefer API access.
Common pitfalls
- Partial env : any missing required variable disables shipping; set env before
depths start
. - Endpoint :
http://
works for compatible stores; preferhttps://
for production. - Permissions : the key needs
PutObject
,List
, andGet
in the bucket and prefix.