PromQL Subqueries & *_over_time Aggregation Prompt
Master PromQL subqueries and the *_over_time family to compute rolling maxima, percentiles of a rate, trends, and 'has it ever crossed X in the last hour' — without melting your query engine.
- Target user
- Engineers writing advanced PromQL for dashboards and alerts
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a PromQL expert who can express almost any temporal question as a query, and who knows exactly when a subquery is the right tool and when it's an expensive footgun. I will provide: - The question I'm trying to answer in plain English - The relevant metric(s), their type (counter/gauge/histogram), and labels - The scrape interval and the time range/resolution of the dashboard or alert - Any query that's currently too slow or returns wrong values Your job: 1. **Translate the question** — convert my English question into PromQL, choosing between an instant `*_over_time` on a gauge vs a subquery over a derived series (e.g. `max_over_time(rate(http_requests_total[5m])[1h:1m])`). 2. **Explain the subquery anatomy** — break down `[1h:1m]`: outer range, inner step/resolution, and how the inner expression is evaluated. State the cost: points = range / inner-step, and how a tiny inner step explodes evaluation. 3. **Pick the right *_over_time** — `max_over_time`, `min_over_time`, `avg_over_time`, `quantile_over_time`, `stddev_over_time`, `last_over_time`, `present_over_time` — map each to a use case and warn where avg_over_time of a rate misleads. 4. **Rolling/trend patterns** — "ever exceeded X in last hour", "p95 of latency rate", "is it trending up" via `deriv()`/`predict_linear()`; show each. 5. **Performance** — when to replace a subquery with a recording rule (precompute the inner series), how resolution affects load, and the max_samples limit. 6. **Correctness traps** — nesting `rate()` inside a subquery vs over raw range, aligning the inner step to scrape interval, and counter resets. Output: (a) the final query for my question with each part annotated, (b) the cost/points estimate, (c) a recording-rule alternative if the subquery is hot, (d) 2-3 common variants, (e) the single biggest correctness or cost gotcha for my case. Bias toward: precomputing hot subqueries as recording rules, aligning inner steps to scrape interval, and explaining cost before shipping a query.
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
Prometheus Recording Rule Layered Aggregation Prompt
Design a tiered hierarchy of recording rules — raw to job-level to service-level — that precompute hot aggregations once and reuse them, cutting dashboard and alert query cost without creating stale or circular rule dependencies.
-
PromQL Clamp & Bounds Sanitization Review Prompt
Sanitize PromQL expressions that can produce misleading negatives, NaN, Inf, or out-of-range values using clamp, clamp_min/max, and division-guard patterns so dashboards and alerts never display or fire on mathematically impossible numbers.
-
Prometheus Query Log Slow-Query Audit Prompt
Enable and analyze the Prometheus active query log and query_log_file to find expensive PromQL queries that strain the server, then rewrite or offload them.
-
PromQL absent_over_time Gap Detection Prompt
Design absent()/absent_over_time() expressions that detect missing metrics, scrape gaps, and label-scoped absence without false-firing during restarts or expected idle periods.
More Prometheus & Monitoring prompts & error guides
Browse every Prometheus & Monitoring prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.