Description
Component(s)
exporter/awss3
Is your feature request related to a problem? Please describe.
Today, the S3 Exporter uses a random uniqueKey function to prevent collisions on file uploads.
Unfortunately, this can make it hard to know in what order files were uploaded. When using the S3 Exporter to stream raw log files (like stderr
/stdout
), this can make it difficult to maintain the ordering of the log lines once those files have been uploaded. For systems that don't provided structured logging (Spark), it results in a poor user experience.
Describe the solution you'd like
I'd like to be able to configure a different UniqueKeyField
as mentioned in the todo that maintains ordering on upload.
Specifically, either an incrementing integer or UUIDv7. The latter seems better from an implementation perspective. The former is slightly more human-friendly, but could result in files getting overwritten if the exporter is restarted.
Describe alternatives you've considered
- Other solutions like fluent-bit that do support this (via the
$INDEX
formatter) - Utilizing multi-part uploads and
UploadPartCopy
to emulate appends in S3 as demonstrated here: https://github.com/dacort/s3-diff-uploader
Additional context
No response