Skip to content

refactor(deploy): retire gateway from default data path — agent → asapquery-backend - #377

Merged
zzylol merged 1 commit into
feat/mvp-multinode-4node-orchestratorfrom
retire-gateway-from-deployment
May 15, 2026
Merged

zzylol merged 1 commit into
feat/mvp-multinode-4node-orchestratorfrom
retire-gateway-from-deployment

Conversation

@zzylol

@zzylol zzylol commented May 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Collapses the default data path from fake-exporter → agent → gateway → asapquery-backend to fake-exporter → agent → asapquery-backend. asapquery-backend's --enable-otel-ingest already accepts sketch data points and merges them per-aggregation_id via its precompute engine accumulators, so no middle-tier OTel gateway merge processor is needed.

Aligns with control-plane PRs:

Kept-in-source per ”keep gateway impl in repos” intent

  • All configs/gateway*.yaml files preserved
  • configs/asap/asap-otel-gateway-mvp-placeholder.yaml preserved
  • Gateway service in base.yml profile-gated under [”gateway-legacy”] — still accessible via docker compose --profile gateway-legacy …
  • gateway_up / gateway_down functions in multinode run_demo.sh defined-but-uncalled

What changed (22 files)

Agent OTel configs (7 files): otlp/gateway exporter block → otlp/backend, endpoint: gateway:4317backend:4317.

Workload tags (4 rows across 3 files): assign_to_role: backend|gatewayagent.

Compose (7 files):

  • base.yml — gateway service profiles: [gateway-legacy]; fake-exporter default target → backend; depends_on → backend.
  • e2e-overlay.yml — gateway override also profile-gated.
  • agents-N{1,10,100}.yml + gen-agents.sh template — agent depends_on → backend.
  • mvp-multi-stage.yml — gateway override profile-gated; comment explains how to re-enable multi-stage flow.

Multinode orchestration (3 files):

  • topology.env — NODE1 reclassified ”unused / reserved” (DNS alias kept for opt-in).
  • run_demo.shgateway_up/down dropped from arm_up/arm_down (functions kept).
  • run_demo_sweep.sh — roles-map node1: ”gateway” → ”unused”.

Docs (2 files): topology diagram + port table.

Test plan

  • docker compose -f base.yml -f agents-N1.yml up — confirm agent comes up, exports to backend:4317, asapquery-backend receives + accumulates sketches.
  • docker compose -f base.yml -f e2e-overlay.yml -f agents-N1.yml up — confirm e2e flow without gateway.
  • docker compose --profile gateway-legacy -f base.yml -f agents-N1.yml up — confirm gateway service still spins up under opt-in profile.
  • Multinode run_demo.sh asap — confirm arm runs end-to-end with node1 idle.

🤖 Generated with Claude Code

…pquery-backend

The default data path is now:
  fake-exporter → agent → asapquery-backend
collapsing the former:
  fake-exporter → agent → gateway → asapquery-backend

Why this works: asapquery-backend's `--enable-otel-ingest` already
accepts sketch data points and merges them per-aggregation_id via its
precompute engine accumulators (DDSketchAccumulator / HLLAccumulator /
etc.) — no middle-tier OTel gateway merge processor is required. The
asapquery-backend control-plane PRs #241 / #242 / #243 retire the
gateway-targeted emit pieces (legacy backend-collector emitter +
shadow `BackendCollectorConfig` + agent OTLP default_host).

Code kept-in-source per "keep gateway impl in repos" intent:
- All `configs/gateway*.yaml` files preserved
- `configs/asap/asap-otel-gateway-mvp-placeholder.yaml` preserved
- Gateway service definition in `base.yml` profile-gated under
  `["gateway-legacy"]` — `docker compose --profile gateway-legacy …`
  still spins it up
- `gateway_up` / `gateway_down` functions in multinode `run_demo.sh`
  defined-but-uncalled (lifecycle dropped from `arm_up` / `arm_down`)

Files touched:

Agent OTel configs (rename `otlp/gateway` exporter block to
`otlp/backend`, change `endpoint: gateway:4317` → `endpoint:
backend:4317`):
- mvp-singlenode/configs/asap-otel-agent-{b0a-raw-stream,
  b0b-raw-batched, b2-full, b3-delta, b4-tunable,
  b6-asap-single-sketch}.yaml
- mvp-multinode/configs/asap/asap-otel-agent-b6-asap-single-sketch.yaml

Workload tags (assign_to_role: backend|gateway → agent):
- mvp-singlenode/configs/workloads.yaml         (2 rows)
- mvp-singlenode/configs/mvp-workload.yaml      (1 row)
- mvp-multinode/configs/asap/mvp-workload.yaml  (1 row)

Compose:
- mvp-singlenode/docker-compose/base.yml — gateway service
  `profiles: ["gateway-legacy"]`; fake-exporter default
  EXPORTER_TARGET=backend:4317; fake-exporter depends_on→backend
- mvp-singlenode/docker-compose/e2e-overlay.yml — gateway override
  also `profiles: ["gateway-legacy"]`
- mvp-singlenode/docker-compose/agents-N{1,10,100}.yml — agent
  depends_on→backend (was gateway)
- mvp-singlenode/docker-compose/gen-agents.sh — template emits same
- mvp-singlenode/docker-compose/mvp-multi-stage.yml — gateway override
  `profiles: ["gateway-legacy"]`; comment notes how to re-enable
  multi-stage flow (requires `--profile gateway-legacy` + gateway-
  targeting AGENT_CONFIG)

Multinode orchestration:
- mvp-multinode/topology.env — NODE1 reclassified "unused / reserved"
  (DNS alias preserved for opt-in)
- mvp-multinode/scripts/run_demo.sh — gateway_up/down dropped from
  arm lifecycle (functions remain)
- mvp-multinode/scripts/run_demo_sweep.sh — roles map node1
  "gateway" → "unused"

Docs:
- mvp-singlenode/README.md — port table + topology blurb updated
- mvp-multinode/README.md — topology diagram updated

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@zzylol
zzylol merged commit 2cddff4 into feat/mvp-multinode-4node-orchestrator May 15, 2026
@zzylol
zzylol deleted the retire-gateway-from-deployment branch July 17, 2026 20:08
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