docs: design ASAPPlanner-aligned collector plan interface - #558
Merged
Merged
Conversation
…redesign ASAPPlanner's post-ASAP IR (crates/types/src/post_asap) selects a candidate logical DAG (SummaryAgg/summary family+algorithm+params/ Reduction/SummaryEstimate) and, per its own README "Scope" and asap-aware-mapping/README.md "Non-Goals", explicitly does not choose collector/backend placement, transport mode, or physical resources. Note in Purpose that the ASAPQuery-backend control plane compiles that selection - it does not serialize it directly - into this document's collector configuration and a companion backend configuration sharing one plan identity, and link ASAPQuery-backend PR #444's new design-compiled-plan-collector-backend-split.md for that compile step. Point the existing "Current contract gap" section (no plan_id/version/ activation/expiry/backend-compat on this wire) at that same design as the proposed closing mechanism, without claiming any of it is implemented here yet - the OpAMP envelope encoding for those fields is still an open question in that design, to be resolved and documented in this file once it lands. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Add a 'Proposed: align these fields with the post-ASAP DAG's own vocabulary' subsection after the current field table and example, linking ASAPQuery-backend's design-compiled-plan-collector-backend- split.md §5. That design is checked against the real asapedgeprocessor/config.go (mode is a bare per_series/whole_stream string, aggregate_by has no GroupKeys.without equivalent, family has no exact_kind or GroupingStrategy slot) and proposes renaming/extending metrics[] to name every field directly from post_asap while keeping Go's flat mapstructure-struct idiom - not a nested tagged union. The existing field table and example are left as-is: they correctly document what config.go implements today, and this addition does not change that. Co-Authored-By: Claude Sonnet 5 <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
Redesign the ASAPQuery-backend control-plane → ASAPCollector interface around ASAPPlanner’s current post-ASAP definitions.
CollectorPlanandBackendPlanportions;plan_id,plan_version,backend_compat, and materialization identities;CollectorPlancarried by OpAMP protobuf rather than serializing Planner’s Rust DAG;SummaryAgg,SummaryFamilyType, typed algorithm parameters,Reduction,GroupingStrategy, andSummaryEstimateto runtime fields;Reduction::PerEntityfrom an empty global reduction and preserve shared multi-subpopulation/Hydra grouping choices;RemoteConfigStatus; andThis is the collector-side companion to ASAPQuery-backend PR #444’s compiled-plan collector/backend split design.
Validation
git diff --checkmainpost-ASAPSummaryExpr,SummaryFamilyType,SketchKind,AccuracyTarget,Reduction, andGroupingStrategydefinitions.