Be able to write and read PromQL: choose correct metric types, build label matchers, apply rate() and histogram_quantile() to histograms, and combine series with operators respecting precedence. The single most important skill is selecting the right function for the metric type and query intent.
Start practicing
Promql — choose a session length
Free · No account required
Domain overview
The PromQL domain covers Prometheus's query language: selecting series with label matchers, applying range vectors and functions, and combining results with operators. Questions are scenario-based, asking you to pick valid metric types, matchers, or functions, and to reason about operator precedence and aggregation behavior when building queries.
Exam objectives
Selecting time series using instant and range vector selectors with label matchers
Applying PromQL functions such as rate(), histogram_quantile(), and aggregation operators
Understanding native Prometheus metric types: counter, gauge, histogram, and summary
Evaluating operator precedence and arithmetic, comparison, and logical set operations
Confusing histogram_quantile() with quantile() or assuming summaries expose _bucket series for percentile queries
Using =~ regex matchers without anchoring, or treating != and !~ as equivalent to absence of a label
Forgetting that rate() needs a range vector and that counters reset, so raw counter values mislead
Click any question to see the full explanation and answer options, or start a focused practice session above.
How does PromQL handle operator precedence between arithmetic operators like multiplication (*) and addition (+)?
2Which selector syntax correctly matches all time series where the environment label does NOT equal production?
3An administrator wants to aggregate CPU usage across all nodes, keeping the instance label while summing the values. Which aggregation clause should be used?
4When performing a vector-to-vector binary operation between two instant vectors of different label sets, which modifier allows matching on a subset of common labels?
5A user executes an instant query for a metric without providing a range vector. What type of vector is returned by default?
6You need to calculate the 99th percentile HTTP request latency from a Prometheus histogram named http_request_duration_seconds. Which function is correct?
7Which PromQL aggregator should be used to count the total number of active time series matching a selector?
8A Prometheus alert expression uses rate(http_requests_total[5m]) > 10. During a service restart, counter resets occur. How does the rate() function account for these counter resets?
9Which regular expression matcher selects all time series where the status label begins with the digit 5?
10You want to find the maximum value of a gauge metric across all instances over a 1-hour sliding window. Which function accomplishes this?
11What is the primary difference between an instant vector and a range vector in PromQL?
12You need to calculate the per-second rate of increase of http_requests_total over a 1-minute window. Why is using a 1-minute range window generally discouraged in production?
13What is the behavior of the clamp_max() function when applied to an instant vector?
14When writing a query with arithmetic operators, how does PromQL handle vector matching when both vectors have the exact same label sets?
15Which function evaluates the predictable linear extrapolation of a gauge metric over time to predict future values?
16You need to perform a binary operation between two vectors where the left vector has labels {job="api", instance="a"} and the right vector has labels {job="api"}. You want to match them using the job label while retaining the instance label from the left side. Which modifier configuration is correct?
17An engineer executes topk(3, http_requests_total). What happens if there are fewer than 3 time series matching the selector?
18How does Prometheus handle subqueries embedded within an instant query, such as rate(http_requests_total[5m])[30m:1m]?
19When evaluating a rule with offset, such as http_requests_total offset 1h, what exact time does Prometheus query?
20Which TWO of the following are valid metric types natively supported by Prometheus? (Choose TWO)
21Which TWO of the following statements about PromQL label matchers are correct? (Choose TWO)
22Which THREE of the following functions are specifically designed to be used with range vectors? (Choose THREE)
23Which THREE of the following modifiers or keywords are used in PromQL binary vector matching? (Choose THREE)
24Which THREE of the following are valid aggregation operators in PromQL? (Choose THREE)
25What is the purpose of the instant vector selector syntax http_requests_total{job="api-server"}?
26Which function should be used to smooth out short-term fluctuations in a gauge metric by calculating the rolling average over a 10-minute window?
27You are troubleshooting a query and notice that label_replace is being used. What is the primary function of label_replace(v, dst_label, replacement, src_label, regex)?
28When evaluating a histogram metric, what does the special pseudo-label le represent in bucket time series?
29An operator needs to find the rate of change of a counter using deriv(). Why is this considered a bad practice in Prometheus?
30Which THREE of the following are valid set operators in PromQL for combining instant vectors? (Choose THREE)
31Which operator has higher precedence in PromQL: exponential (^), multiplication (*), or addition (+)?
32Which TWO of the following statements regarding native histograms in Prometheus are correct? (Choose TWO)
33A Prometheus administrator wants to query the current value of the metric 'http_requests_total'. Which of the following PromQL expressions should be used?
34Which PromQL function is specifically designed to calculate the per-second average rate of increase of a time series over a given range vector?
35You are monitoring a counter metric 'errors_total' and need to calculate the total number of errors that occurred over the last 1 hour. Which function is most appropriate?
36When evaluating a PromQL query involving arithmetic operators, such as 'vector1 + vector2 * vector3', which operator has the highest precedence?
37A Prometheus selector includes a negative regex match for environment names: 'environment!="staging"'. Which selector operator achieves this using regular expressions instead of exact matching?
38When writing a PromQL query involving a vector and a scalar, such as 'node_memory_free_bytes / (1024 * 1024)', how does Prometheus handle label matching?
39You are joining two vectors where the left vector has labels {job="api", instance="host1"} and the right vector has labels {job="api", region="us-east"}. You use the query 'vector_a + ignoring(instance, region) vector_b'. What does the 'ignoring' modifier do?
40What is the primary operational difference between the 'rate()' and 'irate()' functions in PromQL?
41Which function would you use to find the maximum value of a gauge metric 'node_cpu_load' over the past 30 minutes?
42When executing a subquery in PromQL, such as 'max_over_time(rate(http_request_total[5m])[30m:1m])', what does the resolution parameter ('1m') specify?
43You are using the 'predict_linear()' function to forecast disk space exhaustion based on the metric 'node_filesystem_free_bytes'. What type of input data does predict_linear require?
44You want to find the top 3 jobs with the highest CPU usage using the metric 'process_cpu_seconds_total'. Which PromQL query structure is correct?
45Which TWO of the following are valid data types returned by PromQL queries? (Choose two)
46Which TWO of the following label matching operators are supported in Prometheus label selectors? (Choose two)
47Which THREE of the following functions can be used with counter metrics to calculate rates or increases? (Choose three)
48When performing vector matching between two vectors of different cardinalities, which THREE vector matching modifiers can be used? (Choose three)
49Which THREE built-in functions in PromQL are designed specifically to analyze changes over time for gauge metrics? (Choose three)
50Which THREE aggregation operators in PromQL support the 'by' and 'without' clause modifiers? (Choose three)
51Which TWO of the following statements regarding PromQL subqueries are correct? (Choose two)
52Which TWO of the following are valid ways to modify or add labels to time series in PromQL? (Choose two)
53What is the result of applying a range selector like [5m] to a gauge metric?
54You need to calculate the per-second rate of increase for a counter metric over the last 10 minutes. Which function is most appropriate?
55Which operator has the highest precedence in PromQL?
56What is the purpose of the 'offset' modifier in a PromQL query?
57Which aggregation operator would you use to calculate the total sum of a metric across all instances?
58When using 'irate', what is the impact of choosing a range vector that is too small (e.g., [10s])?
59What is the difference between 'count' and 'count_values'?
60If you perform 'A / B' where A and B have different sets of labels, what happens?
61When should you use the 'absent()' function?
62Which function is best suited for identifying the 'top 5' instances with the highest value for a specific metric?
63Which TWO of the following are valid aggregation operators in PromQL?
64Which TWO of the following statements about 'rate' vs 'irate' are correct?
65Which TWO of the following are true regarding instant vectors?
66Which THREE of the following are valid label matchers?
Be able to write and read PromQL: choose correct metric types, build label matchers, apply rate() and histogram_quantile() to histograms, and combine series with operators respecting precedence. The single most important skill is selecting the right function for the metric type and query intent.
The Courseiva PCA question bank contains 66 questions in the Promql domain. Click any question to see the full explanation and answer breakdown.
Start with a 10-question focused session to identify your baseline accuracy in this domain. Read every explanation — even for questions you answer correctly — to understand the reasoning. Once you score consistently above 80%, move to a 20–30 question session to confirm depth before moving to the next domain.
Yes — the session launcher on this page draws questions exclusively from the Promql domain. Choose 10, 20, 30, or 50 questions for a focused session, or click individual questions to review them one by one.
Save your results, see per-domain analytics, and get readiness scores — free, for every certification.
Sign Up FreeFree forever · Every certification included