Accepts PromQL / MetricsQL queries (Prometheus-compatible /api/v1/query, /query_range, /series, /labels, plus the vmui UI).
On each query it fans out to all vmstorage nodes, asks each for the relevant raw data, then merges, deduplicates, and evaluates the MetricsQL expression on the combined result.
Stateless and horizontally scalable. Has an in-memory + optional on-disk query cache (rollup result cache) keyed by query+time range.
Because it must contact every vmstorage to get a complete answer, a slow or missing vmstorage affects queries (tunable with -search.denyPartialResponse / partial-response behavior — you can choose to return partial results instead of erroring).