-
Couldn't load subscription status.
- Fork 23
Fix alert when expiring delete-markers #2681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: development/8.6
Are you sure you want to change the base?
Conversation
This helps troubleshooting when the issue happens. Issue: BB-719
EODM happens when a DeleteMarker is the only remaining revision of an object. When expiring it, either because `ExpiredObjectDeleteMarker` is set in the rule or because it matches the age criteria, the `transitionTime` is thus not intrinsic to the DeleteMarker but really depends on the time the other revisions were removed. We don't have this information, so being precise is not possible here; however we must not use the DeleteMarker's `LastModified` date: - it creates seemingly very slow expiration latency metrics (since the DeleteMarker may be arbitrary old, even though expiration is possible only for a very short time) - which triggers alerts about slow lifecycle, even though it is working as expected. In addition, depending on the exact rule, there may not be an age limit in that specific rule, which causes `getTransitionTimestamp()` to return `null`, which prevents collecting the metrics properly. Consequently, we now just use the current time in that case, to avoid making metrics suspicious and triggering alert. Issue: BB-719
Hello francoisferrand,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
| .setAttribute('target.key', verToExpire.Key) | ||
| .setAttribute('target.version', verToExpire.VersionId) | ||
| .setAttribute('details.dataStoreName', verToExpire.StorageClass || '') | ||
| // details.lastModified is not set for NCVE... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is NCVE ? Non current version expiration ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Guess so, but is this comment a TODO ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same do we have tests ?
EODM happens when a DeleteMarker is the only remaining revision of an object.
When expiring it, either because ExpiredObjectDeleteMarker is set in the rule or because it matches the age criteria, the transitionTime is thus not intrinsic to the DeleteMarker but really depends on the time the other revisions were removed.
We don't have this information, so being precise is not possible here; however we must not use the DeleteMarker's LastModified date: it creates seemingly very slow expiration latency metrics (since the DeleteMarker may be arbitrary old, even though expiration is possible only for a very short time) which triggers alerts about slow lifecycle, even though it is working as expected.
In addition, depending on the exact rule, there may not be an age limit in that specific rule, which causes getTransitionTimestamp() to return null, which prevents collecting the metrics properly.
Consequently, we now just use the current time in that case, to avoid making metrics suspicious and triggering alert.
Issue: BB-719