You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make the OTel agent apply the controller's OpAMP-pushed RemoteConfig at runtime, so the agent's effective pipeline is the controller's per-query-tailored stage-split — not a static placeholder.
#381 documented the gap ("agent never APPLIES the OpAMP RemoteConfig push at runtime") and is closed — but it was closed via PR #350's workaround, not the real fix: the static bootstrap YAML (deploy/mvp-{singlenode,multinode}/configs/asap/asap-otel-agent-b6-asap-single-sketch.yaml) was hand-shaped to match the controller's full 5-sketch routing-connector output so the demo runs "even without OpAMP-push." The header still says so verbatim. So the agent runs a static, all-5-family config regardless of the query workload; the controller emits a correct typed plan that is never engaged.
Confirmed again in the 2026-05 #46 sweep: the agent ran the static all-5 routing-connector config; /api/v1/collector-config/agent shows the controller's tailored YAML, but the effective pipeline is the static one.
Resource efficiency: the static config instantiates all 5 sketch pipelines even when the workload needs one. Idle families cost ~0 CPU/state (the routing connector feeds each metric to exactly one family), but they are scaffolding + an over-broad config. A controller-tailored config would instantiate only the needed families.
It blocks controller-emitted changes (e.g. edge-aggregation plans, family selection, delta-transmission toggles) from taking runtime effect without a manual static-config edit.
Acceptance criteria
Agent receives an OpAMP RemoteConfig from the controller and reloads its collector pipeline to match it (OpAMP effective_config == the pushed config).
With a latency-only workload, the agent's effective pipeline contains only the planned family (e.g. ddsketch) — no KLL/HLL/countsketch/countmin pipelines instantiated — verifiable via processor metrics / effective-config preview.
Changing the controller's workload input changes the agent pipeline shape without editing the static bootstrap YAML.
The static placeholder is reduced to a minimal bootstrap (receivers + OpAMP extension), with families/processors supplied by the push.
Goal
Make the OTel agent apply the controller's OpAMP-pushed RemoteConfig at runtime, so the agent's effective pipeline is the controller's per-query-tailored stage-split — not a static placeholder.
Why this is still open (re #381)
#381 documented the gap ("agent never APPLIES the OpAMP RemoteConfig push at runtime") and is closed — but it was closed via PR #350's workaround, not the real fix: the static bootstrap YAML (
deploy/mvp-{singlenode,multinode}/configs/asap/asap-otel-agent-b6-asap-single-sketch.yaml) was hand-shaped to match the controller's full 5-sketch routing-connector output so the demo runs "even without OpAMP-push." The header still says so verbatim. So the agent runs a static, all-5-family config regardless of the query workload; the controller emits a correct typed plan that is never engaged.Confirmed again in the 2026-05 #46 sweep: the agent ran the static all-5 routing-connector config;
/api/v1/collector-config/agentshows the controller's tailored YAML, but the effective pipeline is the static one.Why it matters
Acceptance criteria
effective_config== the pushed config).ddsketch) — noKLL/HLL/countsketch/countminpipelines instantiated — verifiable via processor metrics / effective-config preview.References
controller/src/config/stage_config.rs::emit_edge_yaml_5sketch_routing.