diff --git a/control_plane/src/emit/asapquery_backend.rs b/control_plane/src/emit/asapquery_backend.rs index d306f351..27c63930 100644 --- a/control_plane/src/emit/asapquery_backend.rs +++ b/control_plane/src/emit/asapquery_backend.rs @@ -166,8 +166,8 @@ fn _type_check(_: &AgentCollectorConfig) {} mod tests { use super::*; use crate::types::{ - AgentDataSink, BackendCollectorConfig, CollectionPlan, DeltaDecision, - GatewayCollectorConfig, OutputMode, ProcessorMode, SketchParams, TransmissionCostSummary, + AgentDataSink, CollectionPlan, DeltaDecision, GatewayCollectorConfig, OutputMode, + ProcessorMode, SketchParams, TransmissionCostSummary, }; use std::time::Duration; @@ -191,10 +191,6 @@ mod tests { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: sketch_type, - group_by: vec![], - }, precompute: vec![], valid_until: chrono::Utc::now() + chrono::Duration::seconds(300), delta_decision: DeltaDecision::default(), diff --git a/control_plane/src/metrics_exposer.rs b/control_plane/src/metrics_exposer.rs index 94e332df..72d33730 100644 --- a/control_plane/src/metrics_exposer.rs +++ b/control_plane/src/metrics_exposer.rs @@ -206,16 +206,15 @@ impl MetricsRegistry { // a label value, doesn't need to be cryptographic. let mut hasher = DefaultHasher::new(); // Cover the fields the planner actually changes per - // re-plan: agent sketch+mode+delta, backend merge+group_by, - // and valid_until (to catch refresh-only re-plans). + // re-plan: agent sketch+mode+delta+grouping, and valid_until + // (to catch refresh-only re-plans). format!( - "{:?}|{:?}|{:?}|{:?}|{:?}|{:?}|{:?}", + "{:?}|{:?}|{:?}|{:?}|{:?}|{:?}", plan.agent_config.sketch_type, plan.agent_config.mode, plan.agent_config.delta_transmission, plan.agent_config.window_duration, - plan.backend_config.merge_sketch_type, - plan.backend_config.group_by, + plan.agent_config.aggregate_by, plan.valid_until, ) .hash(&mut hasher); @@ -451,10 +450,6 @@ mod tests { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: sketch, - group_by: vec![], - }, precompute: vec![], valid_until: Utc::now() + chrono::Duration::seconds(valid_secs), delta_decision: Default::default(), diff --git a/control_plane/src/optimizer/cost/delta.rs b/control_plane/src/optimizer/cost/delta.rs index 09c37fbe..10025c56 100644 --- a/control_plane/src/optimizer/cost/delta.rs +++ b/control_plane/src/optimizer/cost/delta.rs @@ -516,10 +516,6 @@ mod tests { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: st, - group_by: vec![], - }, precompute: vec![], valid_until: Utc::now(), delta_decision: DeltaDecision::default(), diff --git a/control_plane/src/optimizer/cost/mod.rs b/control_plane/src/optimizer/cost/mod.rs index 3d5bc898..e8322f0a 100644 --- a/control_plane/src/optimizer/cost/mod.rs +++ b/control_plane/src/optimizer/cost/mod.rs @@ -248,7 +248,6 @@ impl CostModelPlanner { plan.agent_config.sketch_params = params; plan.agent_config.mode = mode; plan.agent_config.window_duration = window_duration; - plan.backend_config.merge_sketch_type = st.clone(); apply_delta_decision_with(&mut plan, w, wc, &table); return plan; } @@ -269,7 +268,6 @@ impl CostModelPlanner { trial.agent_config.sketch_params = params; trial.agent_config.mode = mode; trial.agent_config.window_duration = window_duration; - trial.backend_config.merge_sketch_type = st; let s = score_with(&trial, w, &table); if !s.meets_sla { @@ -1041,10 +1039,6 @@ mod tests { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: st, - group_by: vec![], - }, precompute: vec![], valid_until: Utc::now(), delta_decision: DeltaDecision::default(), diff --git a/control_plane/src/optimizer/cost/pareto.rs b/control_plane/src/optimizer/cost/pareto.rs index 2c1d1e3c..80624aa4 100644 --- a/control_plane/src/optimizer/cost/pareto.rs +++ b/control_plane/src/optimizer/cost/pareto.rs @@ -116,7 +116,6 @@ pub fn pareto_frontier( plan.agent_config.sketch_params = params; plan.agent_config.mode = mode; plan.agent_config.window_duration = window_duration; - plan.backend_config.merge_sketch_type = st.clone(); // Apply delta decision using the cost table. apply_delta(st.clone(), &mut plan, workload, wc, &table); diff --git a/control_plane/src/optimizer/rules/mod.rs b/control_plane/src/optimizer/rules/mod.rs index 89306fa9..543f24dd 100644 --- a/control_plane/src/optimizer/rules/mod.rs +++ b/control_plane/src/optimizer/rules/mod.rs @@ -344,9 +344,6 @@ impl RulesPlanner { .collect(); label_matchers.sort(); - let backend_sketch = sketch_type.clone(); - let group_by = aggregate_by.clone(); - let valid_until = Utc::now() + chrono::Duration::seconds(self.valid_for.as_secs() as i64); CollectionPlan { @@ -371,10 +368,6 @@ impl RulesPlanner { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: backend_sketch, - group_by, - }, precompute: vec![], valid_until, delta_decision: DeltaDecision::default(), @@ -414,10 +407,6 @@ impl RulesPlanner { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: SketchType::DDSketch, - group_by: vec![], - }, precompute: vec![], valid_until, delta_decision: DeltaDecision::default(), @@ -583,15 +572,6 @@ mod tests { ); } - #[test] - fn backend_config_matches_sketch_type() { - let plan = RulesPlanner::new().plan(&workload(vec![AggType::Quantile])); - assert_eq!( - plan.backend_config.merge_sketch_type, - plan.agent_config.sketch_type - ); - } - #[test] fn gateway_passthrough() { let plan = RulesPlanner::new().plan(&workload(vec![AggType::Quantile])); diff --git a/control_plane/src/replan.rs b/control_plane/src/replan.rs index e77e911a..070a4801 100644 --- a/control_plane/src/replan.rs +++ b/control_plane/src/replan.rs @@ -509,10 +509,6 @@ mod tests { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: SketchType::DDSketch, - group_by: vec![], - }, precompute: vec![], valid_until: Utc::now() + chrono::Duration::seconds(3600), delta_decision: DeltaDecision::default(), diff --git a/control_plane/src/store/mod.rs b/control_plane/src/store/mod.rs index 140185a1..bf292f18 100644 --- a/control_plane/src/store/mod.rs +++ b/control_plane/src/store/mod.rs @@ -177,10 +177,6 @@ mod tests { data_sink: AgentDataSink::default(), }, gateway_config: GatewayCollectorConfig { passthrough: true }, - backend_config: BackendCollectorConfig { - merge_sketch_type: SketchType::DDSketch, - group_by: vec![], - }, precompute: vec![], valid_until, delta_decision: DeltaDecision::default(), diff --git a/control_plane/src/types.rs b/control_plane/src/types.rs index c20523d0..dd67ff62 100644 --- a/control_plane/src/types.rs +++ b/control_plane/src/types.rs @@ -518,12 +518,6 @@ pub struct GatewayCollectorConfig { pub passthrough: bool, } -#[derive(Debug, Clone)] -pub struct BackendCollectorConfig { - pub merge_sketch_type: SketchType, - pub group_by: Vec, -} - #[derive(Debug, Clone)] pub struct PrecomputeJob { pub query_expr: String, @@ -570,7 +564,6 @@ impl StageResourceBudgets { pub struct CollectionPlan { pub agent_config: AgentCollectorConfig, pub gateway_config: GatewayCollectorConfig, - pub backend_config: BackendCollectorConfig, pub precompute: Vec, pub valid_until: DateTime, /// Resolved delta transmission decision and rationale.