Configuration
Proactive Analyzer lives behind its own configuration namespace and requires the reactive analyzer (query-analyzer.enabled=true) to be turned on first, since it reuses the same analysis engine.
| Setting | Default | Controls |
|---|---|---|
enabled | false | Master switch for the feature |
cron | 0 0 3 * * * | When the scan runs (daily at 03:00 by default) |
lookback | PT24H | How far back in the query log to rank queries |
top-n | 5 | How many query shapes are considered per run |
min-time-used-ms | 50 | Minimum latency for a query shape to qualify |
max-analyses-per-run | 3 | Hard ceiling on analyses per run |
reanalyze-on-config-change-only | true | Skips analysis when table config is unchanged since last run |
notify.slack.enabled / notify.slack.webhook-url | false / empty | Slack digest delivery |
Manual Trigger
POST /api/query-analyzer/proactive/run starts one scan immediately on a background thread, without waiting for the schedule. If a scan is already in progress, a manual trigger returns a conflict rather than starting a second overlapping run.
Current Limitations
- Recommendations are stored in memory by default and reset when the service restarts.
- Scans a single workspace on a single cluster per run. Multi-cluster and multi-workspace scanning are not yet supported.
- No automatic ticketing and no dedicated UI. The digest points a human at the work; it does not file tickets or change any cluster setting on its own.
- Email delivery is not yet available. Slack and the log are the supported channels today.
Related
Proactive Analyzer Overview
What Proactive Analyzer does, how it works, and how it delivers results.

