Skip to content

analyze_server for PostgreSQL targets — the inference engine answers 'what is wrong, ranked' for one engine only #3605

Closed as not planned

Description

@erikdarlingdata

analyze_server — the diagnostic inference engine that turns raw telemetry into scored, persisted findings — is SQL-Server-only. A PostgreSQL target returns PostgresAnalysisNotApplicable (DarlingWorker.cs, three call sites). PG targets do have predictors (wraparound, xmin horizon, replication-slot outage) and a full read surface, but nothing that composes those signals into ranked findings the way the SQL Server engine does, and nothing feeding the analysis-findings store, notification cards, or the compare-two-periods workflow for PG.

The practical consequence: the product's highest-level answer — "what is wrong with this server, ranked" — exists for one engine and not the other, so the operator's workflow forks by engine exactly where it should converge. The MCP/AI surface feels this too: analyze_server and compare_analysis are the tools an assistant reaches for first, and on PG they return a shrug.

Scoping honestly: this is not one lane. The inference engine's fact families are SQL-Server-shaped (waits, plan cache, scheduler pressure), and a PG engine needs its own fact families with measured thresholds — statement regressions from pg_stat_statements deltas, autovacuum debt, bloat trajectory, wait fractions (per the ongoing scorer-recalibration work, folklore constants are not acceptable inputs), connection saturation, replication risk. The right first slice is probably: define the PG fact-family list, wire the persistence/read plumbing so PG findings flow through the SAME findings store and alert path, and ship two or three families end-to-end rather than all of them shallowly. Related runbook honesty: docs/postgres-first-target-runbook.md already tells users analysis does not exist for PG — that section should keep saying so until this lands, then stop (see the runbook staleness issue).

Activity

  1. erikdarlingdata commented on Sep 18, 2026

    @erikdarlingdata
    OwnerAuthor

    Cross-reference before this gets a lane: #3542 (PostgreSQL-target analysis engine: design and v1 build) is the same problem from the brains-review campaign, with a complete 73 KB design doc already written — v1/v2/v3 build order, the fact-family mapping with its unit traps, eleven PG-only detectors, and ten maintainer decisions (one of which, pg_-prefixed fact keys, is expensive to reverse). It is owned by the wave-2 seat and its plan-validation lane is running now. This issue's contribution that #3542's doc should absorb: the three PostgresAnalysisNotApplicable call sites in DarlingWorker as the exact seams, the fact-family-list-first slicing proposal, and the scorer-recalibration lineage discipline (#3538 A5/A7 is establishing measured thresholds for SQL Server right now; the PG detectors should inherit that method, not inherited constants). Proposed disposition: this issue becomes a checklist item / design input on #3542 rather than a parallel build. Filed by the monitoring seat from the competitive gap analysis; linked by the coordinating seat.

  2. erikdarlingdata commented on Sep 18, 2026

    @erikdarlingdata
    OwnerAuthor

    Closing as folded into #3542, not as declined: every contribution this issue made — the three PostgresAnalysisNotApplicable seams as the exact replacement points, fact-family-list-first slicing, and PG detector thresholds inheriting #3538's measured-lineage discipline rather than constants — is now part of #3542's validated V1 build plan (§7 of the plan on the bus, condensed in #3542's comments). One build, one issue; #3542 carries the work and its checklist.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions