Skip to content

feat(erp): publish bounded materialization observations after finite completion - #638

Merged
zzylol merged 39 commits into
feat/metricsql-calibration-workflowfrom
feat/erp-online-observation
Sep 11, 2026
Merged

zzylol merged 39 commits into
feat/metricsql-calibration-workflowfrom
feat/erp-online-observation

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Runtime ERP matching previously consumed externally supplied or offline observations. The precompute worker now observes the actual supported HLL/UnivMon inputs and publishes bounded, separate empirical population counts through the existing RuntimeSamples gRPC channel after a verified finite-source drain.

The shared envelope carries catalog generation, summary definition, concrete instance identity, input semantics, window, and freshness. The control plane fits the empirical counts, resolves the authoritative data descriptor, rejects stale or mismatched evidence, and requires one configuration to satisfy every observed population. Overflow invalidates the complete observation. Only accepted catalog activation resets the observer generation; delayed old-generation input cannot erase current counts. Missing evidence follows theoretical/exact selection. Collector-free typed publication is supported through the existing compiler endpoint.

Before this change, no production ingest call emitted ERP shape observations. After it, --erp-runtime-samples-endpoint enables worker observations that a subsequent typed planning request can consume. Existing instance IDs are preserved by a shared derivation helper.

Verification: shared bounded-counter tests (2), producer tests (2, including catalog transition and delayed-generation input), ERP consumer tests (18), and the real worker → gRPC → consumer → Planner → warm UnivMon process test passed on the reviewed fixes. CI is pending. No performance claim is made.

Scope: this closes finite-input feedback, not autonomous continuous replanning. Publication requires the existing finite completion barrier. Live eligibility initially requires full-window raw PerEntity cardinality/frequency readouts with matching catalog data semantics; shorter panes, nested/transformed inputs, and weighted/counter inputs cannot borrow this evidence. It retains bounded frequency counts for observation, never raw sample copies. Stacked on #626; includes #635 and the consumer integration.

zzylol and others added 11 commits September 11, 2026 09:55
* refactor(clickhouse): remove unused relational tree executor

* test(clickhouse): construct the shared predicate wrapper
* refactor: share installed QueryPlan contracts across components

* refactor(query): use shared identity contract in MetricsQL adapter

* style: format shared query identity fixture
* refactor: share installed QueryPlan contracts across components

* refactor(query): use shared identity contract in MetricsQL adapter

* style: format shared query identity fixture

* refactor(plans): share producer and publication contracts
* feat(clickhouse): execute typed array element access

* style(clickhouse): format collection default helper

* fix(clickhouse): distinguish nonfinite exact values from nulls

* test(clickhouse): verify exact denormal transport policy
* feat(catalog): identify derived summary inputs

* fix(catalog): separate derived policy domain from raw metric names

* docs(sds): separate immutable window section
* feat(clickhouse): execute typed array element access

* style(clickhouse): format collection default helper

* feat(clickhouse): read typed tuple fields inside query DAGs

* refactor(clickhouse): share nested type argument parsing

* fix(clickhouse): distinguish nonfinite exact values from nulls

* test(clickhouse): verify exact denormal transport policy

* test(clickhouse): verify native tuple field rendering
* feat(catalog): identify derived summary inputs

* fix(catalog): separate derived policy domain from raw metric names

* fix(storage): reserve immutable output publication durably

* fix(storage): reject retry after manifest retirement

* docs(sds): separate immutable window section

* fix(storage): look up committed lineage before sketch evaluation

* fix(storage): match pending lineage atomically during recovery
* fix(clickhouse): preserve SQL nulls in result formats

* test(clickhouse): distinguish literal null marker strings
feat: select UnivMon ERP evidence by readout units
…orkflow

Measure MetricsQL candidates against VictoriaMetrics
@zzylol
zzylol marked this pull request as ready for review September 11, 2026 16:43
@zzylol
zzylol merged commit 77cf9f5 into feat/metricsql-calibration-workflow Sep 11, 2026
1 check passed
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