Skip to content

shuffle: refresh the disk-backlog gauge on the LogActor tick - #3361

Merged
williamhbaker merged 1 commit into
masterfrom
wb/shuffle-log-backlog-gauge-refresh
Aug 20, 2026
Merged

williamhbaker merged 1 commit into
masterfrom
wb/shuffle-log-backlog-gauge-refresh

Conversation

@williamhbaker

@williamhbaker williamhbaker commented Aug 14, 2026 •

Copy link
Copy Markdown
Member

Description:

shuffle_log_disk_backlog_bytes was written only on segment seal and on reclaim. service-kit configures the Prometheus exporter with a 600s idle timeout across all metric kinds, which deletes a metric from the registry once its generation stops advancing -- the series ends, rather than holding a stale value.

A Log wedged by disk back-pressure seals nothing (may_buffer gates on it) and reclaims nothing (sealed segments compress within seconds, then only poll for an unlink that never comes). It stops writing the gauge entirely, so the series disappears about ten minutes in.

Re-set the gauge on the actor's existing 60s tick, tying the metric's lifetime to the actor's rather than to its rate of change. Eviction still bounds shard_id cardinality once the actor exits, which keeps series presence a usable liveness signal.

Workflow steps:

(How does one use this feature, and how has it changed)

Documentation links affected:

(list any documentation links that you created, or existing ones that you've identified as needing updates, along with a brief description)

Notes for reviewers:

(anything that might help someone review this PR)

`shuffle_log_disk_backlog_bytes` was written only on segment seal and on
reclaim. service-kit configures the Prometheus exporter with a 600s idle
timeout across all metric kinds, which deletes a metric from the registry
once its generation stops advancing -- the series ends, rather than
holding a stale value.

A Log wedged by disk back-pressure seals nothing (`may_buffer` gates on
it) and reclaims nothing (sealed segments compress within seconds, then
only poll for an unlink that never comes). It stops writing the gauge
entirely, so the series disappears about ten minutes in.

Re-set the gauge on the actor's existing 60s tick, tying the metric's
lifetime to the actor's rather than to its rate of change. Eviction still
bounds `shard_id` cardinality once the actor exits, which keeps series
presence a usable liveness signal.
@williamhbaker
williamhbaker force-pushed the wb/shuffle-log-backlog-gauge-refresh branch from cfe2637 to b5ca088 Compare August 14, 2026 22:32
@williamhbaker
williamhbaker requested a review from a team August 14, 2026 22:33

@jgraettinger jgraettinger left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@williamhbaker
williamhbaker merged commit 7663d6d into master Aug 20, 2026
11 of 14 checks passed
@williamhbaker
williamhbaker deleted the wb/shuffle-log-backlog-gauge-refresh branch August 20, 2026 16:25
@GregorShear GregorShear added the pending:flowctl Merged, changes the flowctl binary, and not in a published release label Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending:flowctl Merged, changes the flowctl binary, and not in a published release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants