• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hyperledger / fabric-x-committer / 30811478386 / 1
91%
main: 91%

Build:
Build:
LAST BUILD BRANCH: queue-gauge-per-stream
DEFAULT BRANCH: main
Ran 03 Aug 2026 12:01PM UTC
Files 132
Run time 7s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Aug 2026 11:53AM UTC coverage: 79.083% (+0.2%) from 78.91%
30811478386.1

Pull #737

github

liran-funaro
[verifier, sidecar] Report per-stream queues as one series per stream

#### Type of change

- New feature
- Improvement (improvement to code, performance, etc)

#### Description

- Add `monitoring.ChannelLenGaugeVec[T]`, a collector for a queue that exists once per stream.
  `Register`/`Unregister` add and remove a channel, and `Collect` reads the length of each live one,
  so there is still no sampler goroutine and cardinality follows the number of live streams rather
  than growing without bound. A series disappears with its stream, which matters more than the
  cardinality: left behind it would keep reporting the depth of a queue nothing drains, reading as a
  stuck worker rather than a finished one. Re-registering the same label values replaces the channel,
  since prometheus rejects a duplicate series mid-scrape.
- Report the verifier's three `parallelExecutor` queues per stream. The verifier previously exported
  no queue gauge at all, only `active_streams` and `active_requests`, so verification backpressure
  was invisible.
- Report each all-transactions subscription's block queue as
  `sidecar_notifier_stream_block_queue_size`, hooked into the existing `registerAllTxStream` /
  `unregisterAllTxStream`.
- Teach `scripts/metrics_doc_extract.py` to read an explicitly instantiated generic helper,
  including the nested brackets of a slice element (`[[]*committerpb.TxStatus]`), and a label list
  passed as a variable. Both were dropped from the generated doc silently.

#### Additional details (Optional)

`prometheus` has no `GaugeFuncVec`, which is why this needs a custom `Collector` rather than another
helper over `NewGaugeFunc`.

The stream label is a counter, unique only among the live streams — that is all it needs to be, since
a series exists only while its stream does. `docs/performance-tuning.md` now says to read these with
`sum` for the total or `max` to catch one saturated worker while the total still looks healthy.

Verified the guard bit... (continued)
Pull Request #737: [verifier, sidecar] Report per-stream queues as one series per stream

9312 of 11775 relevant lines covered (79.08%)

32099.39 hits per line

Source Files on job db-test - 30811478386.1
  • Tree
  • List 132
  • Changed 20
  • Source Changed 0
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 30811478386
  • b0088334 on github
  • Prev Job for on queue-gauge-per-stream (#30811029382.3)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc