Skip to content

[FEATURE] Query and alert filtering: ignore lists, alert muting, database exclusions #228

@erikdarlingdata

Description

@erikdarlingdata

Overview

Users need the ability to filter out noise from monitoring and alerting — specific queries, databases, or alert patterns they don't care about. This is especially important for Azure SQL DB where system queries in master (e.g., sys.fn_MSxe_read_event_stream) generate recurring alerts the user can't control.

Ref: #226

Scope (layered, increasing complexity)

1. Database exclusion list (per-connection setting)

  • Add a list of databases to exclude from alerting (and optionally collection)
  • Default exclusions for Azure SQL DB connections: master, msdb
  • Simple to implement: filter in the alert evaluation logic

2. Alert muting

  • Allow users to mute/dismiss specific recurring alerts
  • Pattern-based: "mute all alerts matching this query text / database / wait type"
  • Instance-based: "mute this specific alert"
  • Muted alerts still collected, just suppressed from the UI and notifications
  • Persisted across app restarts

3. Query ignore list (global or per-connection)

  • Filter queries out of collection results and/or display
  • Match criteria (any combination):
    • Database name
    • Query text pattern (LIKE / contains)
    • Query hash / plan hash
    • SQL handle / plan handle
    • Login name
    • Program name / host name
  • Applies to: active queries, query stats, procedure stats, query store, blocking, alerts
  • UI: settings page with add/edit/remove, import/export

Design considerations

  • Filtering at alert evaluation time is simplest and lowest risk
  • Filtering at collection time reduces storage but loses data permanently
  • Filtering at display time preserves data but still generates noise in trends/charts
  • Probably want all three layers eventually, with alert filtering first

Priority

Alert muting and database exclusions are high value / low effort. Full query ignore lists are a larger effort best planned carefully.

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