Skip to content

#333 child: Establish end-to-end time-to-answer baselines and regression gates #335

Description

@Joncallim

Parent: #333. Blocked by #332.

Goal

Create the performance authority DockerMap currently lacks outside the Atlas: controlled, reproducible measurements for the actual operator path from process start to a useful Review answer.

This issue owns measurement, fixtures, evidence format and promotion gates only. Do not optimize production code here unless a tiny instrumentation hook is strictly required to make a stage measurable.

Required measurements

Use controlled 25 / 100 / 250-container reference fixtures and measure at least:

  1. daemon process start → HTTP listener accepting requests;
  2. listener ready → first authoritative Docker publication;
  3. Docker observation wall time;
  4. Compose correlation/enrichment wall time as a separate stage;
  5. daemon publication → Node/SSE observation;
  6. browser notification → coherent model accepted;
  7. coherent model accepted → Home/Review useful content rendered;
  8. buildModel();
  9. Findings derivation for representative 25/100/250 topology/evidence sizes;
  10. legacy Home topology-layout cost;
  11. Cmd-K open + query-to-results for representative query classes;
  12. production bundle/startup asset budget.

Methodology

  • Pin runner class, CPU class, OS image, browser revision/flags, font environment, production build mode, fixture revision and source revision, following the discipline already used by Atlas performance evidence.
  • Use warmed repeated samples and a reviewed percentile/median policy; do not gate on one noisy CI duration.
  • Keep raw timings in the evidence artifact; derive summaries during review.
  • Ordinary unit tests may validate evidence shape/math but must not pretend to be the controlled benchmark.
  • Create an explicit baseline artifact/version so later candidates can be compared under an equivalent environment.
  • Define regression limits from measured variance; do not invent aspirational absolute milliseconds before the baseline exists.

Fixture requirements

At minimum:

  • 25-container Compose-heavy host;
  • 100-container mixed relationship/mount/network density;
  • 250-container stress host;
  • provider-only revision change with Docker inventory unchanged;
  • Docker topology change with providers unchanged;
  • slow-but-bounded Compose projection;
  • unavailable/slow optional provider.

Fixtures must be deterministic, secret-free and representative of existing contract bounds.

Acceptance criteria

  • One documented command/job produces the complete controlled timing matrix.
  • Results clearly distinguish backend collection, transport/notification, browser model work, rendering and search.
  • Atlas's existing renderer performance evidence is reused where appropriate rather than duplicated.
  • The baseline exposes whether Compose, SSE polling, model rebuilds or legacy layout dominate actual time.
  • Promotion rules fail closed on incompatible runner/environment metadata.
  • No production runtime telemetry/analytics are added.
  • No optimization claim is accepted later without comparing against this baseline.
  • Full normal checks remain green.

Deliverables

  • performance contract/evidence schema;
  • benchmark fixture definitions;
  • baseline capture procedure;
  • checked-in baseline metadata or reviewed external artifact location according to existing repo policy;
  • a short architecture/performance document explaining exactly what each number does and does not prove.

Non-goals

  • No performance fix itself.
  • No browser analytics.
  • No user tracking.
  • No loosening of security/coherence to make numbers look better.

Risk: LOW · read_only_product_behavior: true · security_sensitive: false · data_migration: false · routing_mode: stable

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions