test(e2e): assert msgpack decode-error controls - #5251
Merged
Conversation
Extend the inline fast-path mixed-msgpack E2E collector to capture msgpack/json decode-error counters by direction, message, and codec. Assert those counters remain unchanged for the multipart, part-number, SSE, compression, and transition fallback-control scenarios. Co-Authored-By: heihutu <heihutu@gmail.com>
Contributor
|
CLA requirements are satisfied for this pull request. |
houseme
enabled auto-merge (squash)
July 26, 2026 01:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues
Part of rustfs/backlog#1435 and rustfs/backlog#1431.
Summary of Changes
This PR extends the inline fast-path mixed-msgpack E2E OTLP collector to capture
rustfs_system_network_internode_msgpack_json_decode_error_totalwithdirection,message, andcodeclabels alongside the existing msgpack/json fallback counter. The mixed compatibility tests now assert that decode-error counters stay unchanged for the same fallback-control series already covered by the release-window scenarios.The covered black-box paths are multipart, partNumber reads, SSE-S3, compression, and cold-tier transition fallback controls. The implementation is test-only and does not change the public API, wire protocol, storage format, runtime configuration, or production metric emission.
Verification
cargo fmt --all --checkgit diff --checkcargo clippy -p e2e_test --lib -- -D warningscargo test -p e2e_test --lib inline_fast_path_cluster_test::records_msgpack_decode_error_metric_with_codec_label -- --exact --nocapturecargo test -p e2e_test --lib inline_fast_path_cluster_test::four_node_mixed_msgpack_compat_mode_preserves_fallback_controls -- --exact --nocapturecargo test -p e2e_test --lib inline_fast_path_cluster_test::four_node_mixed_msgpack_compat_mode_preserves_fallback_controls_during_transition -- --exact --nocaptureImpact
No user-facing behavior change. This only strengthens E2E coverage for msgpack/json rollout observability by making decode-error label dimensions visible to the test collector and by requiring no decode-error counter delta during the mixed-version fallback-control scenarios.
Additional Notes
Adversarial review: correctness attacked missing codec label capture and stale counter snapshots, so the PR includes a direct collector unit test for
direction/message/codec; simplicity attacked duplicated OTLP parsing, so msgpack counter collection is shared through one helper; coverage attacked false-positive zero deltas, so the E2E assertions are paired with the collector label unit test.Thank you for your contribution! Please ensure your PR follows the community standards (CODE_OF_CONDUCT.md). If this is your first contribution, review the CLA document and sign it by commenting
I have read and agree to the CLA.on the PR.