Skip to content

fix(deploy): MVP smoke-test blockers — image build + agent OpAMP URL - #380

Merged
zzylol merged 2 commits into
mainfrom
mvp-smoke-test-deployment-fixes
May 17, 2026
Merged

zzylol merged 2 commits into
mainfrom
mvp-smoke-test-deployment-fixes

Conversation

@zzylol

@zzylol zzylol commented May 17, 2026

Copy link
Copy Markdown
Contributor

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.

  1. Dockerfile.backend builds the wrong binary names. The May 2026 data-plane reorg renamed the workspace's [[bin]] packages (query_engine_rustdata_plane, controllercontrol_plane); Dockerfile.backend 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 keep working unmodified.
  2. All static agent configs use a stale OpAMP URL. Every deploy/mvp-{singlenode,multinode}/configs/asap-otel-agent-*.yaml hardcoded ws://backend:4320/v1/opamp. 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, /api/v1/agents stays empty, and the controller can't push runtime config. Mechanical sweep across 17 affected files.
  3. otel-go-patch references removed proto fields. The 2026-05 sketch proto refactor deleted the precomputed 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, so docker build -f Dockerfile.fake-exporter fails at go build with a wall of undefined: mpb.DDSketchDataPoint_SumAsInt etc. Also fix seriesEntry.seriesID (renamed to .id) in series/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.md on the dev box.

Test plan

  • bash asap-build-all.sh (or just docker build -f deploy/docker/Dockerfile.backend … + the asap-otel-binary build + docker build -f deploy/docker/Dockerfile.fake-exporter …) on a clean checkout completes
  • bash /mydata/mvp-smoke-test/run_smoke.sh brings up the stack; /api/v1/agents lists agent-1; backend's /api/v1/streaming-config shows 2 entries; backend's /api/v1/db/schemas shows non-zero sids after a 90s soak
  • No regression in the existing bash deploy/mvp-singlenode/scripts/run_mvp_demo.sh --mode asap flow

Related

Companion PR in ASAPQuery-backend: https://github.com/ProjectASAP/ASAPQuery-backend/pulls?q=mvp-smoke-test-deployment-fixes

🤖 Generated with Claude Code

zzylol and others added 2 commits May 16, 2026 08:16
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>
@zzylol
zzylol merged commit 9e491dd into main May 17, 2026
@zzylol
zzylol deleted the mvp-smoke-test-deployment-fixes branch May 17, 2026 17:49
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant