controller: export wallclock lag metrics also for storage collections #30568
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.
This PR rewires the existing
mz_dataflow_wallclock_lag_seconds
metric so that it also includes storage collections. To this end, a newControllerMetrics
type is introduced to define metrics that are exported by both the compute and the storage controller, and the wallclock lag metrics are moved there. TheControllerMetrics
type is then passed to both controllers, so they can export wallclock lag metrics for their respective collections.Note that in contrast to compute collections, the wallclock lag for storage collections is not per replica (as we are comparing with the global persist frontier here), and in some cases not even per cluster (as not all storage collections are associated with clusters). As a result, the
replica_id
label is always empty for storage collections, and theinstance_id
label is sometimes empty.Motivation
Part of https://github.com/MaterializeInc/database-issues/issues/8235
Checklist
$T ⇔ Proto$T
mapping (possibly in a backwards-incompatible way), then it is tagged with aT-proto
label.