Skip to content

docs: outbox sweeper health metrics - #199

Merged
iancooper merged 3 commits into
masterfrom
docs/4560-outbox-sweeper-metrics
Oct 10, 2026
Merged

iancooper merged 3 commits into
masterfrom
docs/4560-outbox-sweeper-metrics

Conversation

@iancooper

Copy link
Copy Markdown
Member

Documents the outbox sweeper health metrics added in BrighterCommand/Brighter#4562 (issue BrighterCommand/Brighter#4560, ADR 0081-timed-outbox-sweeper-health-metrics).

contents/Telemetry.md: new "Outbox Sweeper Metrics" section

  • Turning the metrics on with AddBrighterInstrumentation().
  • The three instruments (tick.lag, sweep.duration, sweeps) and the meaning of each outcome.
  • How the sweeper keeps time on its own thread, and the limit that a sweep's async I/O still runs on the pool.
  • Suggested PromQL alerts: sweeper stalled, sweeps starting late, sweeps failing. The stalled alert sums across instances, because with a distributed lock only one instance completes sweeps.
  • Histogram buckets: the SDK's defaults were designed for millisecond values, and these histograms record seconds.
  • A table for telling a slow broker from a starved process, and turning on the System.Runtime meter for thread-pool queue length and thread count.

contents/BrighterOutboxSupport.md

  • The TimerInterval row notes that it must be at least 1.
  • The sweeper section links to the new metrics section.

Checked:

  • The C# snippets were compiled and run against the Brighter branch, with a 1 s interval and an in-memory exporter. All three instruments were exported with the documented types, units and outcome tag. The bucket views applied, and System.Runtime produced the thread-pool metrics.
  • linkcheck, pagelint (including --changed origin/master and --plant) and symbolcheck pass.
  • The PromQL was not run against Prometheus. The metric names assume the Prometheus exporter's usual renaming.

Merge after BrighterCommand/Brighter#4562.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SpjnqGWbARr3Z3ofGc6C2x

Adds an "Outbox Sweeper Metrics" section to Telemetry.md: the three
sweeper instruments from ADR 0081, suggested alerts, histogram bucket
configuration for second-valued histograms, and using the System.Runtime
meter to tell a slow broker from a starved thread pool. Notes in
BrighterOutboxSupport.md that TimerInterval must be at least 1 and links
to the new section.

Refs BrighterCommand/Brighter#4560

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SpjnqGWbARr3Z3ofGc6C2x
iancooper and others added 2 commits October 9, 2026 09:18
Follows the review changes in BrighterCommand/Brighter#4562: a Kafka
sweep now resumes on the sweeper thread, the schedule uses elapsed time,
and a new paramore.brighter.publish_confirmation.queue.depth instrument
reports confirmation backlogs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SpjnqGWbARr3Z3ofGc6C2x
@iancooper
iancooper merged commit 6a57698 into master Oct 10, 2026
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant