revert: keep pushing non-DML statements (reverts #179)#180
Merged
Conversation
This reverts commit 80af5fb (#179). #179 stopped the migration-day alert spam by dropping statementType === "other" at both push sites, so DDL, COPY and VACUUM never left the analyzer. It quiets the noise, but by discarding the events at capture: QD never ingests them, so nothing downstream can use them — an index dropped in prod, a schema-changing migration, correlating a later CI regression against a schema change, an MCP "recent events" feed. None of that is possible once the event is dropped before it reaches the catalog. Suppressing the alert does not require dropping the data at capture. That is an alerting-layer decision (scope and cadence), so ingestion should stay complete. This restores full ingestion; the migration-day alert spam returns until the alerting-side handling lands (Query-Doctor/Site#3581). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Query Doctor Analysis
3 queries analyzed
0 regressed · 0 improved · 0 new · 0 removed
2 pre-existing issues
SELECT "guests"."id", "guests"."session_id", "guests"."username", "guests"."avatar_path", "guests"."color", "guests"."side", "guests"."audio_recording_path", "guests"."audio_recording_public", "gue...
indexassets(event_id, inserted_at desc)
cost 31,003,449 → 1,498 (100% reduction)SELECT * FROM guest_ip_addresses WHERE ip_address = '127.0.0.1';
indexguest_ip_addresses(ip_address)
cost 154,402 → 8 (100% reduction)
Using assumed statistics (10000000 rows/table). For better results, sync production stats.
More detail → get_ci_run({ runId: "019f663e-626c-7ea4-80c5-b2807f166dda" }) · view run · docs
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.
Reverts #179 (
80af5fb).Goal
Stop dropping non-DML events at the capture layer. #179 quieted the migration-day alert spam (Query-Doctor/Site#3578) by filtering
statementType === "other"at both push sites, soCREATE/DROP/ALTER/COPY/VACUUMnever left the analyzer. That fixes the noise but discards the events before QD ever ingests them — which permanently removes downstream optionality: an index dropped in prod, a schema-changing migration, correlating a later CI regression against a schema change, an MCP "recent events" feed. None of that is possible once the event is dropped at capture.Suppressing the alert does not require dropping the data. That's an alerting-layer decision (scope + cadence), so ingestion should stay complete and the noise handled where alerts are decided — tracked in Query-Doctor/Site#3581.
What
main): only DML is pushed; DDL/COPY/VACUUM are filtered out and never reach the catalog or the dashboard.Accepted trade-off: the migration-day alert spam returns until the alerting-side handling lands. That's deliberate — the fix belongs there, not here.
How
Plain
git revertof the squash commit. Restores the two push sites insrc/remote/api-client.tsto push unconditionally and drops thestatementTypeinstance field re-added toRecentQuery.Tests
npm run typecheckclean; full suite passes (306/306 — the 4 removed cases are the assertions #179 added for the dropped filter; one Docker-teardown flake under the parallel run passes 3/3 in isolation).