refactor(emit): drop aggregation_id from OTAP YAML + Telegraf TOML wire - #251
Merged
Merged
Conversation
Mirrors #244 / #246 / #250's PR-5 wire-cleanup pattern, now for the edge-side runtime emitters. The patched asap-otel processors (any runtime — OTel collector / OTAP / Telegraf) don't consume the controller-allocated `aggregation_id` string: sid identity is content-addressed at the backend via `(metric_name, attrs_fingerprint, agg_kind_canonical)`, and `policy_fp` content- matches via `(metric, sketch_kind, config, group_by_keys)`. The controller-allocated string is dead weight on the wire. The OTel-collector YAML emitter (`emit_edge_yaml`) was already clean — there's an existing test at stage_config.rs asserting the agent YAML does NOT contain `aggregation_id:`. This PR catches the two remaining edge-runtime emitters that still spelled it out: - `emit/otap.rs::build_asap_sketches_config` (line ~287): drop the `aggregation_id` map entry; keep `sketch_kind` etc. - `emit/telegraf.rs::emit_processors_allsketches` (line ~158): drop the `aggregation_id = "…"` TOML line; keep `sketch_kind`. `EdgeSketchProcessor.aggregation_id` stays on the struct as internal emitter plumbing for cross-stage references during the DAG walk (`SketchAgg → BackendAggregation → BackendReadout`); it just doesn't reach the wire from any runtime emitter anymore. Tests: 690 lib + 27 binary tests pass. (No test asserted the field was present in OTAP / Telegraf output, so nothing to flip.) 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
Mirrors the PR-5 wire-cleanup pattern (#244 / #246 / #250), now for the edge-side runtime emitters. The patched
asap-otelprocessors (any runtime: OTel collector / OTAP / Telegraf) don't consume the controller-allocatedaggregation_idstring — sid identity is content-addressed at the backend via(metric_name, attrs_fingerprint, agg_kind_canonical), andpolicy_fpcontent-matches via(metric, sketch_kind, config, group_by_keys). The controller-allocated string is dead weight on the wire.The OTel-collector YAML emitter (
emit_edge_yaml) was already clean — an existing test asserts the agent YAML does NOT containaggregation_id:. This PR catches the two remaining edge-runtime emitters:emit/otap.rs::build_asap_sketches_config— drops theaggregation_idmap entry from the OTAP DAG YAML.emit/telegraf.rs::emit_processors_allsketches— drops theaggregation_id = ”…”TOML line.EdgeSketchProcessor.aggregation_idstays on the struct as internal emitter plumbing for cross-stage references during the DAG walk (SketchAgg → BackendAggregation → BackendReadout); it just doesn't reach the wire from any runtime emitter anymore.Verified asap-otel doesn't consume the field
grep -rln "aggregation_id\|AggregationId" /mydata/ASAPCollector/opentelemetry-collector-contrib/processor/{ddsketch,hll,kll,countsketch,countminsketch}processor/→ zero matches. The patched processors don't read the field on any runtime; the agent silently ignores it on the OTel-collector path too.Test plan
cargo test --lib -p control_plane: 690 passed; 0 failedcargo test --tests --bins -p control_plane: 27 passed; 0 failed🤖 Generated with Claude Code