You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 UniqueKeyFieldas 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.
I agree that we should provide an option to configure the ordering.
Regarding the approaches you shared, I feel like we should stick with UUID7.
If we try to implement this with a sequential integer, we might lose the last known value between collector runs. For example, during the first run, we might save 100 files and the counter would be at 100. However, if the process is restarted, the counter could reset to 0 (unless we implement a mechanism to persist and restore the last known counter value) and it might point to same bucket.
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
$INDEX
formatter)UploadPartCopy
to emulate appends in S3 as demonstrated here: https://github.com/dacort/s3-diff-uploaderAdditional context
No response
The text was updated successfully, but these errors were encountered: