Emit query latency metrics#46
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.
130c72e to
2b5388c
Compare
Add a query duration helper and instrument source/target query paths with millisecond latency histograms. Metrics emitted: - query.duration_milliseconds tagged with side, kind, and outcome Initial coverage includes chunk copy, binlog apply, range select, and exact row count queries. This lets dashboards compare source and target query latency side-by-side and break down latency by query kind. Add unit coverage for the query duration metric helper.
2b5388c to
36da844
Compare
forge33
reviewed
Jun 2, 2026
| }() | ||
| } | ||
|
|
||
| type queryHistogramEmitter interface { |
There was a problem hiding this comment.
i was attempting to keep all the emitter calls in one interface so we didn't end up with urban sprawl
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/5458
Add a query duration helper and instrument source/target query paths with
millisecond latency histograms.
Metrics emitted:
Initial coverage includes chunk copy, binlog apply, range select, and exact
row count queries. This lets dashboards compare source and target query
latency side-by-side and break down latency by query kind.
heartbeat_readis intentionally left out for now: in this codebase heartbeat lag is derived from a lightweight changelog-table lookup in the throttler, and existing lag gauges cover the operational signal. We can add that query kind later if dashboards show inspector read latency is neededAdd unit coverage for the query duration metric helper.
🎩
Cherry-picked this commit plus a few others onto a separate branch, ran a
dev tophat runto addnametofake_data:script/cibuildreturns with no formatting errors, build errors or unit test errors.