- Visualize in dashboards like Grafana
- Use in alerting rules that notify you when conditions are met

- Expression data types and what they return
- Selectors and modifiers
- Operators and functions
- Vector matching
- Built-in aggregators
- Subqueries
- Histogram and summary handling

string— a plain string (rarely used)scalar— a single numeric (floating-point) valueinstant vector— a set of time series with one sample per series at a single timestamprange vector— a set of time series with multiple samples per series across a duration
The
string result type exists in PromQL but is rarely used in practice. Most queries return scalars, instant vectors, or range vectors.Scalar
A scalar is a single numeric value (floating point). Scalars are returned by expressions that collapse a set of series into one numeric result — for example, mathematical computations, function results that reduce to a number, or comparisons producing a numeric outcome. Example scalars:54.743127.43
Instant vector
An instant vector is a set of time series where each series provides exactly one sample, all at the same timestamp. In practice, instant vectors are the most common result type for dashboard queries because they represent the current value of each matching series. Example: Querying a metric name directly returns an instant vector containing the latest sample for each matching time series.Range vector
A range vector returns, for each matching time series, a sequence of samples over a specified time window. Use brackets with a duration to select a window (for example,[3m] for the last 3 minutes).
Example query for a three-minute range:
rate(), increase(), avg_over_time()).
Quick reference table
Summary
- Strings: exist but seldom used
- Scalars: single floating-point values — used for numeric results and alerts
- Instant vectors: latest sample per matching time series — used for current-state views
- Range vectors: sequences of samples across a duration — used for rate and windowed functions