Skip to content

fix(stats): the collector's rate, its windows, and what happens when a VNI changes hands - #1765

Merged
daniel-noland merged 0 commit into
pr/daniel-noland/driven-clockfrom
pr/daniel-noland/stats-collector
Aug 28, 2026
Merged

fix(stats): the collector's rate, its windows, and what happens when a VNI changes hands#1765
daniel-noland merged 0 commit into
pr/daniel-noland/driven-clockfrom
pr/daniel-noland/stats-collector

Conversation

@daniel-noland

@daniel-noland daniel-noland commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

A steady load cannot test a rate pipeline, so the collector is driven with a ramp and its published rate asserted against the load that produced it. That found the rate window being read out of arrival order, startup batches that were not consecutive, a rate that could be negative or NaN, and a metric series that outlived its own name.

When a VNI changes hands its counters must reset and the traffic still in flight must be dropped; neither happened. Ends with a set of flow-entry and net fixes turned up by the same fuzzing.


24 commits. Stacked on pr/daniel-noland/driven-clock; review that first.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
1793 2 1791 0
View the top 2 failed test(s) by shortest run time
dataplane-nat::masquerade::fuzz::nothing_is_masqueraded_without_permission
Stack Traces | 1.14s run time
thread 'masquerade::fuzz::nothing_is_masqueraded_without_permission' (166568) panicked at ..../src/masquerade/fuzz.rs:192:9:
5 flows reached the permission assertion across 1 configurations; this property has gone vacuous
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
dataplane::bin/dataplane::packet_processor::fuzz::generated::a_generated_configuration_carries_its_own_traffic
Stack Traces | 1.14s run time
thread 'packet_processor::fuzz::generated::a_generated_configuration_carries_its_own_traffic' (163249) panicked at ..../src/packet_processor/fuzz.rs:865:5:
no traffic was ever derived across a peering permitting only one direction, so no reply here was authorised by the flow it belongs to and the reverse lookup in `AclFilter::lookup` was never entered. Check for a `__fuzz__` corpus beside this test before reading further: replaying one can spend the budget on inputs chosen for being unusual. Move it aside and re-run to tell that apart from a real gap.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@daniel-noland daniel-noland added the ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status label Aug 26, 2026
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from d6aafee to 8e8c974 Compare August 26, 2026 17:30
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from 8e8c974 to b5b7d84 Compare August 26, 2026 19:36
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from b5b7d84 to 2b5e4b8 Compare August 26, 2026 20:41
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from 2b5e4b8 to 4f24f0f Compare August 26, 2026 21:02
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch 2 times, most recently from 053a0fa to d7e8fae Compare August 26, 2026 21:25
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from d7e8fae to 164ff53 Compare August 27, 2026 01:29
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from 164ff53 to 4585af0 Compare August 27, 2026 01:41
@daniel-noland daniel-noland removed the ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status label Aug 27, 2026
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from 4585af0 to 921fd16 Compare August 27, 2026 02:26
@daniel-noland daniel-noland added the ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status label Aug 27, 2026
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from 921fd16 to a204aab Compare August 27, 2026 04:41
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch 2 times, most recently from a5e54c6 to e127e47 Compare August 27, 2026 06:30
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch from e127e47 to 0b5dac2 Compare August 27, 2026 18:00
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/stats-collector branch 2 times, most recently from a0daf04 to 347e534 Compare August 28, 2026 02:38
@daniel-noland
daniel-noland merged commit 5843caa into main Aug 28, 2026
@daniel-noland
daniel-noland deleted the pr/daniel-noland/stats-collector branch August 28, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant