Skip to content

enhancement(core): refactor topologies to run via supervision#1815

Draft
tobz wants to merge 1 commit into
mainfrom
tobz/supervised-topology
Draft

enhancement(core): refactor topologies to run via supervision#1815
tobz wants to merge 1 commit into
mainfrom
tobz/supervised-topology

Conversation

@tobz
Copy link
Copy Markdown
Member

@tobz tobz commented Jun 4, 2026

Summary

Actively refining the slop on this one.

Change Type

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

How did you test this PR?

References

@dd-octo-sts dd-octo-sts Bot added area/core Core functionality, event model, etc. area/test All things testing: unit/integration, correctness, SMP regression, etc. labels Jun 4, 2026
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Jun 4, 2026

Binary Size Analysis (Agent Data Plane)

Baseline: 241b0dd · Comparison: 2ba45c3 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 37.91 MiB (baseline) vs 37.98 MiB (comparison)
Size Change: +67.87 KiB (+0.17%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
figment +58.07 KiB 166
alloc +44.90 KiB 453
saluki_core::topology::built -43.68 KiB 32
tonic +37.75 KiB 229
agent_data_plane::cli::run -29.54 KiB 34
core -26.45 KiB 2468
tracing +20.52 KiB 34
saluki_env::workload::collectors +19.86 KiB 15
saluki_components::sources::otlp +19.19 KiB 31
saluki_core::topology::blueprint -17.97 KiB 75
anyhow +17.81 KiB 494
comfy_table -16.47 KiB 6
agent_data_plane::main::_{{closure}} -15.72 KiB 1
agent_data_plane::internal::env -14.97 KiB 29
resource_accounting::groups::Tracked -14.39 KiB 10
otlp_protos::otlp_include::opentelemetry +13.30 KiB 117
http_body_util -13.02 KiB 70
piecemeal -12.95 KiB 13
tower -12.85 KiB 156
datadog_protos::trace_piecemeal_include::datadog +12.83 KiB 12
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +1.4%  +185Ki  +1.2%  +134Ki    [12723 Others]
  [NEW] +69.3Ki  [NEW] +69.1Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::h02849b0300946b49
  [NEW] +39.5Ki  [NEW] +39.3Ki    agent_data_plane::internal::env::ADPEnvironmentProvider::from_configuration::_{{closure}}::h684f54f67ce2c0da
  [NEW] +22.7Ki  [NEW] +22.5Ki    saluki_core::topology::built::BuiltTopology::spawn_inner::_{{closure}}::h2467b2eeaeab1f21
  [NEW] +20.0Ki  [NEW] +19.8Ki    saluki_core::topology::blueprint::TopologyBuildState::build::_{{closure}}::h184487c5a61ab8eb
  [NEW] +19.5Ki  [NEW] +19.3Ki    saluki_env::workload::collectors::containerd::ContainerdMetadataCollector::from_configuration::_{{closure}}::h7fef8471b5744114
  [NEW] +19.2Ki  [NEW] +19.1Ki    saluki_core::topology::built::ComponentInterconnects::generate_interconnects::h122ef8a073d943df
  [NEW] +17.7Ki  [NEW] +17.6Ki    tokio::runtime::park::CachedParkThread::block_on::h812fdf9cd5bb50d3
  [NEW] +17.4Ki  [NEW] +17.3Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::ha66bb36cad767a6d
 +31e2% +16.4Ki +52e2% +16.4Ki    _<saluki_components::transforms::trace_obfuscation::TraceObfuscation as saluki_core::components::transforms::SynchronousTransform>::transform_buffer::hf4f8f06e9603f16d
 -97.2% -16.3Ki -97.6% -16.3Ki    comfy_table::cell::Cell::new::h76de733ee7902e2b
  [DEL] -16.6Ki  [DEL] -16.5Ki    _<chrono::format::formatting::DelayedFormat<I> as core::fmt::Display>::fmt::hdc9bf5617e8e9fe7
  [DEL] -17.5Ki  [DEL] -17.4Ki    _<figment::value::de::ConfiguredValueDe<I> as serde_core::de::Deserializer>::deserialize_struct::h7a39627207e3f3a4
 -73.2% -17.9Ki -73.7% -17.9Ki    core::ptr::drop_in_place<agent_data_plane::cli::run::handle_run_command::{{closure}}>::h09904ba714702255
 -48.5% -18.4Ki -48.7% -18.4Ki    agent_data_plane::internal::env::workload::build_collector::_{{closure}}::h8518305f145d7e76
  [DEL] -18.5Ki  [DEL] -18.3Ki    core::ptr::drop_in_place<saluki_core::topology::blueprint::TopologyBlueprint::build::{{closure}}>::h455d7be621feae15
 -16.4% -24.7Ki -16.4% -24.7Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::h0215ea3520b410a0
  [DEL] -38.8Ki  [DEL] -38.6Ki    agent_data_plane::internal::env::ADPEnvironmentProvider::from_configuration::_{{closure}}::h01476d2b9c923f6d
  [DEL] -58.1Ki  [DEL] -57.9Ki    saluki_core::topology::blueprint::TopologyBlueprint::build::_{{closure}}::hbf871b3913e42c66
  [DEL] -66.0Ki  [DEL] -65.8Ki    saluki_core::topology::built::BuiltTopology::spawn::_{{closure}}::he1098066cae96b1f
  [DEL] -66.3Ki  [DEL] -66.1Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::h797236682b066fbf
  +0.2% +67.9Ki  +0.1% +17.3Ki    TOTAL

@datadog-datadog-prod-us1

This comment has been minimized.

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Jun 4, 2026

Regression Detector (Agent Data Plane)

Run ID: 1ede7466-3e41-406f-92de-8ea3af9cd96d
Baseline: 241b0dd2 · Comparison: 2ba45c3c · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (35)

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
dsd_uds_100mb_3k_contexts_cpu (erratic) cpu ⚪ +3.69 metrics profiles logs
otlp_ingest_metrics_5mb_memory memory ⚪ +3.60 metrics profiles logs
otlp_ingest_traces_5mb_cpu (erratic) cpu ⚪ +1.79 metrics profiles logs
otlp_ingest_logs_5mb_cpu (ignored) cpu ⚪ +1.31 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_cpu (erratic) cpu ⚪ +0.47 metrics profiles logs
dsd_uds_500mb_3k_contexts_throughput throughput ⚪ -0.35 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_cpu (erratic) cpu ⚪ +0.33 metrics profiles logs
quality_gates_rss_idle memory ⚪ +0.31 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_throughput throughput ⚪ -0.25 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_throughput throughput ⚪ -0.19 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_memory memory ⚪ +0.16 metrics profiles logs
otlp_ingest_traces_5mb_memory memory ⚪ +0.07 metrics profiles logs
otlp_ingest_logs_5mb_throughput (ignored) throughput ⚪ -0.00 metrics profiles logs
dsd_uds_1mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_100mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
otlp_ingest_metrics_5mb_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_512kb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_10mb_3k_contexts_throughput throughput ⚪ +0.02 metrics profiles logs
dsd_uds_1mb_3k_contexts_cpu (erratic) cpu ⚪ -0.05 metrics profiles logs
otlp_ingest_traces_5mb_throughput throughput ⚪ +0.06 metrics profiles logs
dsd_uds_512kb_3k_contexts_memory memory ⚪ -0.12 metrics profiles logs
dsd_uds_10mb_3k_contexts_cpu (erratic) cpu ⚪ -0.13 metrics profiles logs
dsd_uds_1mb_3k_contexts_memory memory ⚪ -0.17 metrics profiles logs
dsd_uds_10mb_3k_contexts_memory memory ⚪ -0.17 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.18 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_memory memory ⚪ -0.20 metrics profiles logs
dsd_uds_500mb_3k_contexts_memory memory ⚪ -0.23 metrics profiles logs
dsd_uds_500mb_3k_contexts_cpu (erratic) cpu ⚪ -0.28 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.31 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.46 metrics profiles logs
dsd_uds_100mb_3k_contexts_memory memory ⚪ -0.54 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -0.57 metrics profiles logs
dsd_uds_512kb_3k_contexts_cpu (erratic) cpu ⚪ -1.15 metrics profiles logs
otlp_ingest_metrics_5mb_cpu (erratic) cpu ⚪ -1.21 metrics profiles logs
otlp_ingest_logs_5mb_memory (ignored) memory ⚪ -11.94 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 115 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 39.9 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 62.6 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 185 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 26.9 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/core Core functionality, event model, etc. area/test All things testing: unit/integration, correctness, SMP regression, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant