Emit per-stage sleep metrics#47
Open
grodowski wants to merge 6 commits into
Open
Conversation
Use a single metrics emitter abstraction for gauge, count, and histogram samples so metric helpers share one testable client contract.
Keep the small metric emission helpers, runtime reporter, and their tests together so the metrics package has fewer one-function files.
f129c8d to
c0aa1c3
Compare
Add sleep metric helpers and instrument the main migration sleep/wait paths. Metrics emitted: - sleep.duration_milliseconds tagged with stage - sleep.total_milliseconds tagged with stage Stages covered: - cut_over_postpone - chunk_throttle - retry_backoff - replica_wait Use millisecond units so sub-second waits, such as replica polling and nice-ratio throttling, are not truncated to zero. Document the sleep stage catalog and add unit coverage for the helper, including sub-second durations.
c0aa1c3 to
684e645
Compare
forge33
reviewed
Jun 2, 2026
| } | ||
|
|
||
| type sleepHistogramEmitter interface { | ||
| Histogram(name string, value float64, tags ...string) |
There was a problem hiding this comment.
same here with the separate interfaces, if we could just all collapse them into Emitter into client.go
| @@ -0,0 +1,15 @@ | |||
| # gh-ost metrics catalog | |||
There was a problem hiding this comment.
I was waiting to do this until the end but sure https://github.com/Shopify/schema-migrations/issues/5465
2 tasks
bd9bdb1 to
c4e2b06
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes https://github.com/Shopify/schema-migrations/issues/5459
Add sleep metric helpers and instrument the main migration sleep/wait paths.
Metrics emitted:
Stages covered:
Use millisecond units so sub-second waits, such as replica polling and
nice-ratio throttling, are not truncated to zero. Document the sleep stage
catalog and add unit coverage for the helper, including sub-second durations.
🎩
Cherry-picked this commit plus a few others onto a separate branch, ran a

dev tophat runto addnametofake_data:The histogram prometheus query needs to be updated, but we have data
script/cibuildreturns with no formatting errors, build errors or unit test errors.