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

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

Build:
Build:
LAST BUILD BRANCH: queue-gauge-per-stream
DEFAULT BRANCH: main
Ran 03 Aug 2026 11:59AM UTC
Jobs 3
Files 132
Run time 1min
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: 91.219% (+0.2%) from 91.067%
30811478386

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

283 of 284 new or added lines in 16 files covered. (99.65%)

14 existing lines in 6 files now uncovered.

10741 of 11775 relevant lines covered (91.22%)

32935.17 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
81.45
3.15% service/sidecar/sidecar.go

Coverage Regressions

Lines Coverage ∆ File
4
87.8
-2.44% service/vc/committer.go
3
90.34
-2.14% service/vc/validator_committer_service.go
2
85.67
-0.49% service/sidecar/relay.go
2
85.07
-0.56% service/vc/database.go
2
85.76
-0.68% service/query/batcher.go
1
96.63
-1.12% mock/sigverifier.go
Jobs
ID Job ID Ran Files Coverage
1 db-test - 30811478386.1 03 Aug 2026 12:01PM UTC 132
79.08
GitHub Action Run
2 core-db-test - 30811478386.2 03 Aug 2026 11:59AM UTC 101
46.36
GitHub Action Run
3 unit-test - 30811478386.3 03 Aug 2026 12:01PM UTC 96
85.09
GitHub Action Run
Source Files on build 30811478386
  • Tree
  • List 132
  • Changed 23
  • Source Changed 0
  • Coverage Changed 23
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #737
  • PR Base - main (#30811029382)
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