fix(deploy): MVP smoke-test blockers — image build + agent OpAMP URL - #380
Merged
Merged
Conversation
Two-part sync with asapquery-backend. 1. **Migrate CMS / CountSketch streaming-configs to canonical `w` / `d`** — sibling of asapquery-backend PR #268. The backend's `cms_params` helpers now read `w` (=cols) / `d` (=rows) first with `row_num` / `col_num` as legacy fallback, matching what the controller's `sketch_params_to_json` emits and what the OTLP policy_fp content match (`derive_sketch_policy_fp`) uses. The static asapcollector YAMLs were stuck on the older `row_num` / `col_num` form, which broke OTLP policy_fp lookup for sids ingested against these configs. Migrating to `w` / `d` aligns the static configs with the runtime expectation. 2. **Retire `SetAggregator` references** in inference-config doc comments. The exact-set-membership family (`SetAggregator` / `DeltaSetAggregator`) was retired wholesale in asapquery-backend PR #264. Comments here pointed at the retired family as a "tracked upstream" limitation for per-key top-K enumeration; updated to point at the actual solution (heap-bearing `CountSketchWithHeap` / `CountMinSketchWithHeap` from PR #258). No behavior change for the runtime — the backend's compat path (PR #268) keeps the legacy keys working, and the SetAggregator retirement (PR #264) doesn't affect any of the policies in these files. This is the static-config side of the cross-repo sync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three deploy-side bugs found while bringing up the single-node MVP demo (controller → backend → gateway → 1 agent → 1 fake-exporter): 1. Dockerfile.backend: rename build targets to the post-reorg binary names (`query_engine_rust` → `data_plane`, `controller` → `control_plane`). The May 2026 data-plane reorg renamed the workspace's `[[bin]]` packages; the Dockerfile still asked cargo for the old names and `docker build` failed at the `cargo build` step. Runtime install paths (`/usr/local/bin/asap-query-backend`, `/usr/local/bin/controller`) are preserved so existing compose stacks work unmodified. 2. All static agent configs hardcoded `ws://backend:4320/v1/opamp` for the OpAMP server. Post Phase-9 single-binary refactor the controller and backend share the `asap/query-backend:dev` image but bind separate listeners under separate compose service names; the OpAMP server is on `controller`, not `backend`. With the old URL the agent never connects, so `/api/v1/agents` is empty and the controller can't push runtime config. Sweep across all 17 affected `asap-otel-agent-*.yaml` (singlenode + multinode). 3. opentelemetry-go-patch's exporter/transform/metricdata.go and series/dictionary.go reference proto fields that the 2026-05 sketch proto refactor removed (`Count`, `Sum`, `Min`, `Max` on DDSketch/KLL/HLL DPs; `Dimension`/`Epsilon`/`Delta` on CountSketch DP; `SampleCount`/`Rows`/`Cols` on CountMinSketch DP; `seriesEntry.seriesID` renamed to `.id`). Without this fix `docker build -f Dockerfile.fake-exporter` fails at `go build` with a wall of `undefined: mpb.DDSketchDataPoint_SumAsInt` etc. A walkthrough of the smoke test (4 axes: controller→agent OpAMP, controller→backend streaming-config, end-to-end PromQL, sketch wire-format roundtrip) is at /mydata/mvp-smoke-test/REPORT.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
zzylol
added a commit
that referenced
this pull request
May 17, 2026
…:4320` (#384) The run_demo.sh comment around line 192 was a holdover from before PR #380 swept the agent OpAMP URLs from `ws://backend:4320` to `ws://controller:4320` (and ASAPQuery-backend PR #270 fixed the controller-side `CONTROLLER_OPAMP_ENDPOINT` default to match). Functionally `backend:4320` still works in the multinode topology because `--add-host=backend:${NODE2_IP}` resolves to the same IP as `--add-host=controller:${NODE2_IP}` — but the singlenode compose only has the `controller` alias, so that's the canonical URL the comment should document. Doc-only; no behavior change. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three deploy-side bugs found while bringing up the single-node MVP demo (controller → backend → gateway → 1 agent → 1 fake-exporter). Each blocks a different stage of the smoke test.
Dockerfile.backendbuilds the wrong binary names. The May 2026 data-plane reorg renamed the workspace's[[bin]]packages (query_engine_rust→data_plane,controller→control_plane); Dockerfile.backend still asked cargo for the old names anddocker buildfailed at thecargo buildstep. Runtime install paths (/usr/local/bin/asap-query-backend,/usr/local/bin/controller) are preserved so existing compose stacks keep working unmodified.deploy/mvp-{singlenode,multinode}/configs/asap-otel-agent-*.yamlhardcodedws://backend:4320/v1/opamp. Post Phase-9 single-binary refactor the controller and backend share theasap/query-backend:devimage but bind separate listeners under separate compose service names — the OpAMP server is oncontroller, notbackend. With the old URL the agent never connects,/api/v1/agentsstays empty, and the controller can't push runtime config. Mechanical sweep across 17 affected files.Count/Sum/Min/Max(DDSketch/KLL/HLL DPs),Dimension/Epsilon/Delta(CountSketch DP),SampleCount/Rows/Cols(CountMinSketch DP) — all derivable from the sketch payload at decode time. The opentelemetry-go-patch overlay still tries to set them, sodocker build -f Dockerfile.fake-exporterfails atgo buildwith a wall ofundefined: mpb.DDSketchDataPoint_SumAsIntetc. Also fixseriesEntry.seriesID(renamed to.id) inseries/dictionary.go.A full walkthrough of the smoke test (4 validation axes: controller→agent OpAMP, controller→backend streaming-config, end-to-end PromQL, sketch wire-format roundtrip) and the four remaining open issues live at
/mydata/mvp-smoke-test/REPORT.mdon the dev box.Test plan
bash asap-build-all.sh(or justdocker build -f deploy/docker/Dockerfile.backend …+ the asap-otel-binary build +docker build -f deploy/docker/Dockerfile.fake-exporter …) on a clean checkout completesbash /mydata/mvp-smoke-test/run_smoke.shbrings up the stack;/api/v1/agentslistsagent-1; backend's/api/v1/streaming-configshows 2 entries; backend's/api/v1/db/schemasshows non-zero sids after a 90s soakbash deploy/mvp-singlenode/scripts/run_mvp_demo.sh --mode asapflowRelated
Companion PR in ASAPQuery-backend: https://github.com/ProjectASAP/ASAPQuery-backend/pulls?q=mvp-smoke-test-deployment-fixes
🤖 Generated with Claude Code