Skip to content

docs: reorganize control-plane design around ASAPPlanner boundary - #444

Merged
zzylol merged 12 commits into
mainfrom
docs/asapplanner-workload-planner-migration
Aug 28, 2026
Merged

zzylol merged 12 commits into
mainfrom
docs/asapplanner-workload-planner-migration

Conversation

@zzylol

@zzylol zzylol commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Reorganize control_plane/docs into a small set of topic-based, long-lived design documents. ASAPPlanner-owned logical planning is referenced instead of re-specified in ASAPQuery-backend.

New structure

  • README.md: directory scope, ownership rule, and document index.
  • asapplanner-integration.md: the Planner/backend ownership boundary and stable integration contracts.
  • physical-planning.md: ASAPQuery-backend-owned placement, windows, aggregation placement, state representation, transmission, and compilation into matching CollectorPlan and BackendPlan artifacts.
  • backend-plan.md: the control-plane contract installed and executed by the ASAPQuery data plane.

Removed duplication

  • remove the old monolithic controller design and target-architecture documents;
  • remove the backend copy of query-to-sketch translation, Planner IR, candidate selection, and accuracy/cost design;
  • remove pin-migration history, open-PR audit details, code inventories, configuration field walkthroughs, and test-specific notes;
  • point logical query/summary planning to ASAPPlanner and the collector-facing interface to ASAPCollector; and
  • update the sketch-extension guide to use ASAPPlanner as the source of logical summary candidates.

Planner remains responsible for parsing, IR, query-to-summary mapping, accuracy reasoning, workload sharing, candidate generation, and logical selection. ASAPQuery-backend documents only physical planning, activation, BackendPlan, and data-plane execution contracts.

Validation

  • git diff --check
  • verified control_plane/docs contains only the four intended Markdown files;
  • verified each retained document has a TL;DR and status;
  • searched the repository for references to removed document names;
  • documentation-only change.

zzylol and others added 9 commits August 26, 2026 11:15
…ntity

ASAPPlanner's own scope statement (README "Scope";
asap-aware-mapping/README.md "Non-Goals") is explicit that it does not
choose collector/backend placement, transport mode, or physical resources
- confirmed against its current crates/types/src/post_asap module
(SummaryAgg/SummaryFamilyType/GroupingStrategy/Reduction/SummaryEstimate),
not older docs. Add design-compiled-plan-collector-backend-split.md: the
ASAPQuery control plane compiles a selected post-ASAP DAG into a
CompiledPlan carrying a CollectorSubplan (asap_edge YAML via OpAMP) and a
BackendSubplan (BackendPlan), sharing one plan_id/plan_version/
activation/expiry/backend_compat identity - closing the exact gap
ASAPCollector PR #558 documents (no plan_id/version/activation/expiry/
backend-compat on the OpAMP wire today) - rather than serializing the
selected DAG directly into collector YAML.

Update the migration doc (PR #444) to reference the compile step wherever
it previously said "collector/backend stage allocation" or "collector
configuration generation", fix the target-architecture diagram to show
both subplans instead of only BackendPlan, add the legacy
physical::plan::PlanNode/PipelineStage allocator to the post-cutover
removal list, broaden PR 5 from a BackendPlan-only conversion to the full
two-subplan compile, and note open ASAPPlanner PRs #300 (explicit
update/readout phase boundary - the same boundary this split already uses
structurally) and #299 (accuracy propagation) as tracked, non-blocking
upstream changes for PR 6's coverage list.

Correct design-backend-plan-wire-format.md's BackendPlan::plan_id comment
("observability only, not identity") to reflect its new role as the
cross-subplan join key.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Checked against the real processor
(opentelemetry-collector-contrib-patch/processor/asapedgeprocessor/
config.go), not the doc summary of it: today's MetricFamily.Mode is a
bare two-value string (per_series/whole_stream, ParseAggMode-validated)
and AggregateBy is a plain []string with no way to express
GroupKeys.without - neither can distinguish Reduction::PerEntity from a
genuine zero-key Reduce, the exact ambiguity Reduction was introduced to
remove. Family is a flat string with no exact_kind discriminator and no
GroupingStrategy field at all.

Redesign MetricFamily to name every field and enum value directly from
post_asap - Source/Family/ExactKind/ReduceBy/ReduceWithout/PerEntity/
Grouping/HydraKind/SharedRows/SharedColumns - while keeping Go's flat
mapstructure-struct idiom (matching this same file's own FamilyKind/
Tier/ColdFormat pattern) rather than grafting a serde-style nested
tagged union onto a decoder that was never built for one. The exact_kind
and grouping gaps §6 previously listed as open follow-ups close as a
direct consequence of the realignment, not as separate work.

Explicit about scope: this is a schema proposal against real code, not a
claim ASAPCollector has implemented it, and lists which MetricFamily
fields have no DAG counterpart and correctly stay untouched (tier,
spatial_filter, gos_*, emit_heap/weight_mode, threshold/CDM, cold
archive, control_channel).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@zzylol zzylol changed the title Docs/asapplanner workload planner migration docs: design ASAPPlanner integration and compiled runtime plans Aug 27, 2026
@zzylol zzylol changed the title docs: design ASAPPlanner integration and compiled runtime plans docs: redesign ASAPPlanner integration and runtime plan contracts Aug 27, 2026
@zzylol zzylol changed the title docs: redesign ASAPPlanner integration and runtime plan contracts docs: reorganize control-plane design around ASAPPlanner boundary Aug 28, 2026
@zzylol
zzylol merged commit 6c4353d into main Aug 28, 2026
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