Prometheus
PromQL series semantics through a shared datasource boundary.
The native profiles keep PromQL semantics with the provider and specialize the shared time series contract: instant and range queries with time and step bounds, series identity and partial results, and a records profile for rules.
Current capabilities
Prometheus runs as the native executable connectors-prometheus under the local CLI, with three
reads, each one GET against Prometheus's HTTP API through a saved connection:
| Operation | What it reads |
|---|---|
series.query | one PromQL expression at one instant (default now): a vector, a matrix, a scalar or a string, at most 500 series |
series.query_range | one PromQL expression over at most seven days at an explicit step, at most 2,000 points per series |
rules.list | the alerting and recording rules, with each alerting rule's state, at most 2,000 rules |
More columns: swipe horizontally, or focus the table and use the arrow keys.
Sample values stay Prometheus's strings (NaN, +Inf). A provider warning makes the result
partial and is returned with it.
A connection uses the bearer profile prometheus.bearer. Connect, reconnect and
connections revalidate prove the token with GET api/v1/status/buildinfo, which runs no query;
Prometheus names no account, so the identity is the configured connection. The configuration is
HTTPS-only, may carry a path prefix, and takes an optional private CA file.
Through Grafana
A Prometheus data source behind Grafana is read with the same three operations. The connection's
base_url is the data source's Grafana proxy path,
https://<grafana>/api/datasources/proxy/uid/<uid>/, and its prometheus.bearer token is a
Grafana service-account token. The probe and every read go below that prefix. The uid comes from
the Grafana adapter's datasources.list.
Limits
- No
X-Scope-OrgIDtenant header is sent, so a backend that requires one from the client is not reachable. - No query
timeoutparameter is sent; the host's transport deadline bounds each call. - Too many samples is answered by Prometheus as an execution error and reaches the caller as
upstream_protocol, not as a capacity error. - Every query reads everything the token reaches; a matcher scope is not supported.
- A Prometheus without authentication cannot be connected, because the local host admits no credential-less profile.
The operator guide is adapters/prometheus/README.md in the repository.
Native contract reference
- Prometheus PromQL, whose §11 states the reads and the connection
- The typed native model, generated from
adapters/prometheus/spec/ess