Loading

PromQL limitations

PromQL reads metrics stored in time series data streams (TSDS). The following constraints apply to execution in Elasticsearch, including the Prometheus-compatible HTTP API and the ES|QL PROMQL source command, unless stated otherwise. They describe behavioral differences and unsupported areas compared with upstream Prometheus.

Warning

This functionality is in technical preview and might be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.

Only GET is supported on /_prometheus/ routes in this preview. POST with application/x-www-form-urlencoded bodies is rejected as a CSRF safeguard. If your Prometheus-compatible client defaults to POST for queries, configure it to use GET instead.

The PromQL HTTP API documents only the parameters each route accepts. Extra parameters from the Prometheus HTTP API are not supported yet. Elasticsearch does not ignore them: the request fails with 400 Bad Request. Configure clients and integrations to omit them (for example, there is no per-request timeout query parameter). Cancellation and runtime limits follow ES|QL and cluster settings.

For now, /api/v1/query is implemented as a five-minute range query ending at time, returning the last sample per series. Optional lookback_delta from the Prometheus API is not supported yet on this route. See Unsupported Prometheus query parameters and the query endpoint documentation.

When a scrape target disappears, Prometheus ingests staleness markers. Instant vector selectors then omit those series from instant-vector results, so metrics that stopped reporting do not appear as still current.

Elasticsearch does not apply Prometheus staleness markers yet. For now, a series stops appearing in results only once all its samples fall outside the evaluation window, rather than disappearing as soon as data stops arriving.

The majority of PromQL expressions run unchanged. The following constructs are not evaluated yet, so they return a client error (4xx):

  • Binary set operators: and, or, unless
  • Group modifiers: on(...), group_left, group_right
  • Functions: histogram_quantile, predict_linear, label_join

On /api/v1/metadata, each metric includes a help string shaped like Prometheus HELP lines. In this preview the help field is always an empty string. Help text from metric definitions is not surfaced yet.

/api/v1/query_exemplars is not implemented yet. Turn off exemplar queries in your Prometheus-compatible client for now (for example, the Grafana data source exemplars option) so it does not call that endpoint.