Skip to content

enhancement(agent-data-plane): update tag_filterlist transform to use mutable tagset view#1328

Merged
tobz merged 2 commits intomainfrom
tobz/tag-filterlist-mut-tagset-view
Apr 9, 2026
Merged

enhancement(agent-data-plane): update tag_filterlist transform to use mutable tagset view#1328
tobz merged 2 commits intomainfrom
tobz/tag-filterlist-mut-tagset-view

Conversation

@tobz
Copy link
Copy Markdown
Member

@tobz tobz commented Apr 9, 2026

Summary

This PR switches the tag_filterlist transform to use the "mutable tagset view" primitive for modifying tags in a more efficient way than using Context::with_tag_set_mut.

We also fixed a missing optimization with TagSetMutView where we weren't amortizing the cost of hashing the new context by reusing a PrehashedHashSet<u64> needed for order-oblivious tag hashing.

Change Type

  • Bug fix
  • New feature
  • Non-functional (chore, refactoring, docs)
  • Performance

How did you test this PR?

Existing unit tests.

References

AGTMETRICS-400

@tobz tobz added the type/enhancement An enhancement in functionality or support. label Apr 9, 2026
@tobz tobz requested a review from a team as a code owner April 9, 2026 18:14
@dd-octo-sts dd-octo-sts bot added the area/test All things testing: unit/integration, correctness, SMP regression, etc. label Apr 9, 2026
@tobz tobz changed the base branch from main to rayz/tagfilter-smp April 9, 2026 18:14
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Apr 9, 2026

Binary Size Analysis (Agent Data Plane)

Target: bdcdc6c (baseline) vs 11d5c9b (comparison) diff
Analysis Type: Stripped binaries (debug symbols excluded)
Baseline Size: 26.47 MiB
Comparison Size: 26.46 MiB
Size Change: -12.12 KiB (-0.04%)
Pass/Fail Threshold: +5%
Result: PASSED ✅

Changes by Module

Module File Size Symbols
agent_data_plane::components::tag_filterlist -7.82 KiB 2
[Unmapped] -4.89 KiB 1
saluki_context::tags::tagset +1.84 KiB 5
smallvec -960 B 1
hashbrown -650 B 7
saluki_context::context::TagSetMutView +385 B 1
[sections] +177 B 5
unicode_segmentation -88 B 1
idna -77 B 1
axum -66 B 1
core -52 B 58
unsafe_libyaml +44 B 1
ddsketch::agent::sketch +5 B 1
serde_yaml +2 B 5
protobuf -1 B 2
agent_data_plane::cli::run +1 B 1
saluki_core::data_model::event +0 B 2
hickory_proto +0 B 18
rustls +0 B 12
webpki +0 B 2

Detailed Symbol Changes

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW] +10.6Ki  [NEW] +10.5Ki    <saluki_core::data_model::event::Event as core::clone::Clone>::clone.9931
  [NEW] +5.52Ki  [NEW] +5.38Ki    <hickory_proto::rr::record_data::RData as core::clone::Clone>::clone.8378
  [NEW] +5.13Ki  [NEW] +5.00Ki    <hickory_proto::rr::record_data::RData as core::clone::Clone>::clone.11172
  [NEW] +4.71Ki  [NEW] +4.59Ki    <rustls::error::Error as core::clone::Clone>::clone.9909
  [NEW] +4.71Ki  [NEW] +4.59Ki    <rustls::error::Error as core::clone::Clone>::clone.11187
  [NEW] +3.83Ki  [NEW] +3.71Ki    <webpki::error::Error as core::fmt::Debug>::fmt.11365
  [NEW] +3.66Ki  [NEW] +3.54Ki    <rustls::error::Error as core::fmt::Debug>::fmt.9534
  [NEW] +3.57Ki  [NEW] +3.45Ki    <rustls::error::Error as core::fmt::Debug>::fmt.11188
  [NEW] +2.81Ki  [NEW] +2.69Ki    <figment::error::Error as core::clone::Clone>::clone.7766
  +0.0%    +607  +0.1%    +738    [457 Others]
  [DEL] -2.81Ki  [DEL] -2.69Ki    <figment::error::Error as core::clone::Clone>::clone.7805
  [DEL] -3.57Ki  [DEL] -3.45Ki    <rustls::error::Error as core::fmt::Debug>::fmt.11223
  [DEL] -3.66Ki  [DEL] -3.54Ki    <rustls::error::Error as core::fmt::Debug>::fmt.9573
  [DEL] -3.83Ki  [DEL] -3.71Ki    <webpki::error::Error as core::fmt::Debug>::fmt.11400
  [DEL] -4.71Ki  [DEL] -4.59Ki    <rustls::error::Error as core::clone::Clone>::clone.11222
  [DEL] -4.71Ki  [DEL] -4.59Ki    <rustls::error::Error as core::clone::Clone>::clone.9948
 -48.8% -4.89Ki  [ = ]       0    [Unmapped]
  [DEL] -5.13Ki  [DEL] -5.00Ki    <hickory_proto::rr::record_data::RData as core::clone::Clone>::clone.11207
  [DEL] -5.52Ki  [DEL] -5.38Ki    <hickory_proto::rr::record_data::RData as core::clone::Clone>::clone.8417
 -21.9% -7.83Ki -22.0% -7.83Ki    _<agent_data_plane::components::tag_filterlist::TagFilterlist as saluki_core::components::transforms::Transform>::run::_{{closure}}::hdeb7c7b5f55b83b1
  [DEL] -10.6Ki  [DEL] -10.5Ki    <saluki_core::data_model::event::Event as core::clone::Clone>::clone.9970
  -0.0% -12.1Ki  -0.0% -7.11Ki    TOTAL

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Apr 9, 2026

Regression Detector (Agent Data Plane)

This comment was omitted because it was over 65,536 characters.Please check the Gitlab Job logs to see its output.

Copilot AI review requested due to automatic review settings April 9, 2026 18:51
@dd-octo-sts dd-octo-sts bot added area/core Core functionality, event model, etc. and removed area/test All things testing: unit/integration, correctness, SMP regression, etc. labels Apr 9, 2026
@tobz tobz force-pushed the tobz/tag-filterlist-mut-tagset-view branch from 4989145 to 11d5c9b Compare April 9, 2026 19:42
@tobz tobz changed the base branch from rayz/tagfilter-smp to main April 9, 2026 19:42
@tobz tobz merged commit ddb45ed into main Apr 9, 2026
54 of 56 checks passed
@tobz tobz deleted the tobz/tag-filterlist-mut-tagset-view branch April 9, 2026 20:03
dd-octo-sts bot pushed a commit that referenced this pull request Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Core functionality, event model, etc. mergequeue-status: removed type/enhancement An enhancement in functionality or support.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants