Skip to content

chore(config): migrate APM stats transform to typed configuration - #2265

Draft
webern wants to merge 1 commit into
m/confra-otranfrom
m/confra-astat
Draft

chore(config): migrate APM stats transform to typed configuration#2265
webern wants to merge 1 commit into
m/confra-otranfrom
m/confra-astat

Conversation

@webern

@webern webern commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Human Summary

TODO: human writes here

AI Summary

Migrate the APM Stats transform to the resolved typed traces configuration. The transform now receives typed stats, peer-tag, environment, and hostname inputs, and the legacy APM configuration adapter is removed.

Change Type

  • Non-functional (chore, refactoring, docs)

How did you test this PR?

  • make fmt
  • make check-docs
  • make check-clippy
  • make check-all
  • APM Stats tests: 38 passed
  • cargo check -p saluki-components -p agent-data-plane --tests

References

@pr-commenter

pr-commenter Bot commented Aug 5, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: 2d270c1 · Comparison: 4c227d5 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.82 MiB (baseline) vs 41.13 MiB (comparison)
Size Change: -705.33 KiB (-1.65%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
core -245.20 KiB 3361
figment -148.43 KiB 288
tokio -59.13 KiB 1666
tonic -38.57 KiB 258
tracing -34.89 KiB 36
serde_json -34.54 KiB 148
serde_core -33.25 KiB 340
alloc +31.93 KiB 773
saluki_components::common::datadog -28.90 KiB 141
anyhow -23.40 KiB 457
agent_data_plane::dogstatsd_contexts::artifact +23.00 KiB 8
hyper_util +22.06 KiB 52
serde_with +21.18 KiB 21
saluki_components::encoders::datadog -17.99 KiB 123
anon.9e10e783874537ee9cd42874176db3c6.646.llvm.8877288998599751260 +17.62 KiB 1
anon.fa87d97bf7a1e75a11dd00a2292fd8f4.4.llvm.8030827437847718592 -17.62 KiB 1
agent_data_plane::internal::remote_agent -17.25 KiB 20
saluki_common::cache::CacheBuilder<K,V,W,H> +16.39 KiB 6
piecemeal -15.79 KiB 24
prost -15.42 KiB 199
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW] +32.7Ki  [NEW] +32.5Ki    agent_data_plane::internal::env::workload::RemoteAgentWorkloadProvider::from_configuration::_{{closure}}::h273918a7d610bdfa
  +257% +20.8Ki  +262% +20.8Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::h8152b7ae42bbdf3b
  +260% +19.1Ki  +266% +19.1Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::h620744619ca067ad
  +260% +19.1Ki  +266% +19.1Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::ha466ba9027a7db13
  +300% +18.6Ki  +308% +18.6Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::ha14640b20f74d1e4
  [NEW] +17.6Ki  [NEW]     +76    anon.9e10e783874537ee9cd42874176db3c6.646.llvm.8877288998599751260
  [NEW] +16.5Ki  [NEW] +16.4Ki    _<core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll::ha97d3fe01c901fc7
 +34e2% +16.5Ki +44e2% +16.5Ki    agent_data_plane::state::metrics::rules::get_datadog_agent_remappings::h3bca9f6cd9d0a449
  +236% +16.3Ki  +241% +16.3Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::h70e2afbf0bb450d6
 +13e2% +15.9Ki +17e2% +15.9Ki    _<agent_data_plane::internal::remote_agent::RemoteAgentImpl as datadog_protos::agent_include::datadog::remoteagent::flare::v1::flare_provider_server::FlareProvider>::get_flare_files::_{{closure}}::ha8a04fa805ff7c04
  +275% +15.7Ki  +283% +15.7Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::h1be15f59da19991b
  [NEW] +15.5Ki  [NEW] +15.3Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_any::h9c01161bf3a4a364
  [DEL] -15.6Ki  [DEL] -15.5Ki    _<core::marker::PhantomData<T> as serde_core::de::DeserializeSeed>::deserialize::he38aa0c38e4b4c3e
 -73.0% -16.3Ki -73.4% -16.3Ki    h2::proto::connection::DynConnection<B>::recv_frame::h09d92c074afb400d
 -92.2% -16.4Ki -93.5% -16.4Ki    _<agent_data_plane::internal::remote_agent::RemoteAgentEventReporter as saluki_core::runtime::supervisor::Supervisable>::initialize::_{{closure}}::_{{closure}}::hc726395b4ae2250d
  [DEL] -16.8Ki  [DEL] -16.6Ki    saluki_components::common::datadog::config::_::_<impl serde_core::de::Deserialize for saluki_components::common::datadog::config::ForwarderConfiguration>::deserialize::h046e329b1d5a075e
  [DEL] -17.6Ki  [DEL] -17.4Ki    agent_data_plane::internal::remote_agent::RemoteAgentImpl::session_id_middleware::_{{closure}}::h892c483d47a44569
  [DEL] -17.6Ki  [DEL]     -76    anon.fa87d97bf7a1e75a11dd00a2292fd8f4.4.llvm.8030827437847718592
  [DEL] -19.8Ki  [DEL] -19.7Ki    agent_data_plane::internal::env::workload::build_collector::_{{closure}}::hfecfe48366f575fc
  [DEL] -20.8Ki  [DEL] -20.7Ki    agent_data_plane::internal::env::ADPEnvironmentProvider::from_configuration::_{{closure}}::h7ebb2aaa45919761
  -4.8%  -788Ki  -5.0%  -671Ki    [18316 Others]
  -1.6%  -705Ki  -1.6%  -587Ki    TOTAL

@pr-commenter

pr-commenter Bot commented Aug 5, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: 640d7a06-c33d-4ec1-8b7c-2de2ff0c11f7
Baseline: 2d270c1f · Comparison: 4c227d57 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (5)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
quality_gates_rss_dsd_ultraheavy memory ⚪ +0.19 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.11 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.38 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -0.45 metrics profiles logs
quality_gates_rss_idle memory ⚪ -0.90 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 140 MiB ≤ 145 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 49.3 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 75.7 MiB ≤ 80 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 203 MiB ≤ 205 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 31.8 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/components Sources, transforms, and destinations. transform/apm-stats APM Stats transform.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant