enhancement: Expose MinIO Go retry configuration for S3 - #6561
Conversation
|
Thank you for adding doc! Do we also need a changelog entry for this? |
Yep sorry about that, added! |
|
Hi @knylander-grafana, wanted to check if you guys had a timeline on reviewing this? Thanks! |
Greetings! I can review docs changes only. I'll ask the team to take a look. |
Thank you! |
|
@rwhitty Thanks for your patience, I started reviewing this last week and chatted briefly with the team, am now able to leave feedback. First I'd like to understand a little more context - are you finding that changing these values is helping with performance/stability, hence the need to expose them? We are good with exposing these values, but I'd like to request a few changes: (1) naming: rather than expose the Tempo config with these names directly, I think these would work better: RetryMaxAttempts int `yaml:"retry_max_attempts"`
... retry_backoff_initial
... retry_backoff_max(2) In the current state there are some inconsistencies between the defaults in the manifest and in actuality. For example the manifest has func (cfg *Config) RegisterFlagsAndApplyDefaults
...
cfg.RetryMaxAttempts = minio.MaxRetry
<others>Then the manifest should show the real defaults. I think we can leave |
Hi @mdisibio, thanks for the feedback! For context, what you said is basically correct. I'm with Bloomberg, and exposing these settings will allow us to better tune Tempo to match our organization's best practices for S3 regarding performance/stability. I'll push a couple commits in a minute to address the points you brought up. |
Got it, would it be possible to share the values you have in mind, or summarize? This is an area we haven't benchmarked in awhile (including optimal read strip size), and it could be useful to us as well. Sorry with the last commit it changed the whitespace of the existing struct fields and is hitting an existing lint issue. I tested locally and this should be enough to fix: AccessKey string `yaml:"access_key"` // #nosec G117Also, there is a conflict with changelog. Otherwise LGTM, can merge when ready. |
The default retry behavior is a little too aggressive, so we'd be increasing one or both of
Will fix the linting/changelog issues momentarily. Thanks again! |
* make minio retry logic configurable * add unit test for retry configuration * add documentation for retry configurations * update manifest.md * update changelog * Re-trigger unit tests * rename retry fields and apply defaults * update manifest * changelog & linting fixes
What this PR does:
Makes minio retry settings configurable via the S3 config, allowing users to customize Tempo's retry behavior for S3 requests.
Which issue(s) this PR fixes:
Fixes #6112
Checklist
CHANGELOG.mdupdated - the order of entries should be[CHANGE],[FEATURE],[ENHANCEMENT],[BUGFIX]