Repository navigation
Complete the Darling README's PostgreSQL collector inventory (27 of 27), pin it, and retire the last seven-collector-era prose - #3264
Merged
Conversation
…re the last seven-collector-era prose (#3261) The "What gets collected" table stopped at 12 of 27 collectors across five collector waves with every check green, because nothing failed when a collector shipped without a row. It now carries all 27, each row derived from the collector's own doc comment, its migration rung header and CollectorScheduleDefaults - and a new ReadmeDerivedCountPinTests fact pins the table's row names set-equal to the catalog in both directions, with its own injected-drift proof (a bespoke fact rather than a SetPins entry, because several collector names legitimately appear inside other rows' source cells ahead of their own row, which defeats the shared drop-one-token mutation). The V1 ladder row's "twenty PostgreSQL tables" becomes 27 with the exact rung list, and the notable-rungs table gains the seven rungs it never listed (V96-V98 wait sampling/kernel/predicate, V99 plan capture, V102 server config, V103/V104 deadlocks, V106 instance CPU), each sourced from its migration's own header comment. Three "six of the seven PostgreSQL collectors" comments narrating the connection-engine defect are era-anchored ("then shipping") so they read as the history they are; the assertion message already in past tense stays, and PgMigrations' "Seven PostgreSQL collectors branch on postgresMajorVersion" stays untouched because it was verified CURRENT - exactly seven collectors pass the major version into BuildQueryText today. get_pg_top_queries' MCP description no longer opens "for Amazon Aurora PostgreSQL targets": since #2625 the collector reads pg_stat_statements anywhere it is installed, and the description now says so, scoping the I/O source breakdown and peak memory to Aurora where they belong. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AtjWJJ3NnSkDSrPBsGywoZ
|
Reviewed. This is a documentation/comment/test-only PR — no T-SQL, no functional code paths changed (only doc comments in Checked and confirmed accurate:
No correctness, security, or performance concerns. Nothing to flag inline. |
…ents (PROSE) The #3261 description rewrite states the #2625 dual-source truth, which puts an Aurora-only surface name into DarlingMcpPgStatementTools.cs for the first time — inside a string literal, exactly where the whole-tree guard looks. Accounted as PROSE, the CollectorEngineCapability precedent: the tool reads the store and only names the surface in its message; the dependency itself stays PgStatementStatsCollector's PAIRED entry. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AtjWJJ3NnSkDSrPBsGywoZ
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.
Fixes #3261 (close on merge)
Stacked on #3260 (fix/3247-runbook-staleness): this branch contains #3260's two commits because both edit
Darling/README.md's PostgreSQL section and the "What gets collected" work builds directly on #3260's corrected rows. Merge #3260 first and this PR's diff collapses to its own two commits (README + tests/comments/tool description). No CHANGELOG.md, per the wave protocol — the entry was reported for the consolidated splice.What #3261 listed, and what was done
PgMigrations.csV96–V106), cadence/retention verbatim fromCollectorScheduleDefaults.cs, gates fromAppliesTo/RunsPerDatabase. Extension-miss degradation is worded "a non-fatal skip naming the missing install" so the rows stay true if the in-flight EXTENSION_MISSING reclassification (fix-3240's lane) lands in either order.ReadmeDerivedCountPinTests.WhatGetsCollectedTable_NamesEveryPostgresCollectorrequires the table's row-leading names set-equal to the catalog's PostgreSQL roster in both directions. It is a bespoke fact rather than aSetPinsentry because collector names legitimately appear inside other rows' source cells ahead of their own row (pg_replication_slotsis a source ofpg_xmin_horizon), which defeats the shared drop-one-token mutation proof; it carries its own drift proof that deletes a whole row instead. Proven red externally too: deleting thepg_wraparound_statsrow failed the fact naming that collector, then the file was restored.DarlingCollectorRunner.cs:1099("Six of the seven ... take that path") — present tense, now false (7 of 27 fan out today): era-anchored to "then shipping ... took".DarlingCollectorRunner.csCreateTargetConnectionremarks andCollectorRunnerConnectionEngineTestsheader — same two-word era anchor.CollectorRunnerConnectionEngineTestsassertion message ("is what made six of seven ... fail") — already past-tense history, left alone.PgMigrations.cs:3138/PostgresMajorVersionRegistryTests"Seven PostgreSQL collectors branch on postgresMajorVersion" — left alone, verified CURRENT: exactly seven collectors pass the major version intoBuildQueryTexttoday (autovacuum, index usage, io, replication slots, session states, statement stats, write stats). This is a different seven than the collector-count seven; the issue flagged it and verification cleared it.get_pg_top_queriesMCP description — no longer opens "for Amazon Aurora PostgreSQL targets". It now states the Self-hosted PostgreSQL has no top-queries answer at all: pg_statement_stats is Aurora-only #2625 truth: works whereverpg_stat_statementsis installed, vanilla view elsewhere with Aurora-only columns null; the I/O source breakdown sentence is scoped "On Aurora", and peak memory is marked "(Aurora only)" —wal_bytesstays unscoped because the WAL columns are corepg_stat_statements, not part of the six Aurora-only columns. No test pins the old opener (grepped).Also updated in the same stroke: #3260's "the Performance Insights CPU read that is not in the table above" clause — true when written, false once the table gained the
pg_cpu_utilizationrow — trimmed to just the epithet.Collision lanes
Verification
ReadmeDerivedCountPinTests(all existing pins plus the new fact),CollectorRunnerConnectionEngineTests,PostgresMajorVersionRegistryTests,CrossAppMcpToolInventoryPinTests,PerCycleTimingLogLevelTests— 18/18 pass via the MTP runner; new-test red proven with an injected row deletion.pg_*names counted.🤖 Generated with Claude Code
https://claude.ai/code/session_01AtjWJJ3NnSkDSrPBsGywoZ