Prometheus support requires matching early-access agent and Rootly backend builds. Confirm availability with your Rootly representative. This guide does not announce a public image or Helm release.
Configure Instances
Add this fragment to your existing agent configuration, preserving its Rootly enrollment settings and any Kubernetes provider. Omitproviders.prometheus to disable the adapter. Each list entry is enabled, subject to the instance limit, with IDs unique across all providers in the process. Use stable, distinct IDs across your Rootly account to avoid ambiguous routing.
allow_insecure_http: true explicitly permits unencrypted upstream transport, including credentials; avoid it outside deliberately trusted local environments.
Tools and Arguments
All six capabilities are version1 and classified as sensitive reads. The initial Rootly policy requires an owner or admin, including for metric names, metadata, and labels. System or unattended actors cannot use them under that policy.
Timestamps must be RFC3339 strings. Discovery
start and end must be supplied together. step_seconds is a positive integer. Queries, selectors, names, timestamps, and encoded GET request targets must fit the Prometheus input limits. match maps to upstream match[]. Label names use [a-zA-Z_][a-zA-Z0-9_]*; UTF-8 name escaping is not supported. Unknown fields and nulls are rejected.
For example, select metrics-production and call prometheus.query_range with:
Limits and Upstream Performance
See Private Agent Limits for the canonical policy defaults, hard ceilings, and input bounds. Omitted or zero policy values use defaults, not unlimited mode. Tool limits and timeouts cannot exceed local policy. The agent advertises free execution slots per instance as well as the shared runtime capacity. Rootly leaves excess work for a busy instance queued until capacity becomes available or its deadline expires; local admission waiters do not consume the slots needed by healthy neighboring providers. Active requests still share the global cap, so this is not a dedicated-capacity guarantee. Cancellation reaches the upstream request. There is no automatic query retry, separate unbounded agent queue, offline result cache, or on-disk metric storage. Upgrade the Rootly backend before deploying a capacity-aware multi-provider agent. The agent refuses a work stream that does not acknowledge per-provider capacity support. Older Kubernetes-only agents can continue using global capacity during this rollout. Coordinate rollback of the agent and backend together. Oversized or truncated responses fail instead of silently giving AI SRE incomplete evidence. Narrow the selector, window, metric name, or requested limit. Successful results preserve the Prometheus envelope, sample values, and warning/info annotations.Credentials, TLS, and Data Handling
- HTTPS verifies hostnames and certificates with TLS 1.2 or newer; there is no skip-verification option. A
ca_bundle_fileextends system trust and requires an agent restart after trust-root changes. - Bearer and basic-auth files are read on each request for rotation. Missing, empty, or malformed credentials fail closed.
client_certificate_fileandclient_key_fileenable mTLS. They are loaded at startup and on new handshakes; restart for an immediate cutover of established sessions.- Redirects are rejected, and the adapter does not inherit environment HTTP proxy settings. Rootly control-plane credentials are never forwarded upstream.
- Registration excludes configured endpoint URLs and credential paths/content. Upstream HTTP error bodies and transport URL details are not returned to Rootly.
- Successful metric data and labels are sensitive evidence and are not generically redacted. They can enter AI context and history under the Private Agent retention model.
Health and Compatibility
Health uses a smallvector(1) query with bounded probing and caching. Probes have independent admission and connection capacity, so user saturation alone does not mark an upstream unhealthy. An unavailable instance is reported as unhealthy without preventing healthy neighboring providers from registering or serving work. Overall /readyz returns not_ready when a provider is not healthy, while liveness and the shared work stream remain independent. Invalid initial configuration or unreadable credentials stop startup. See provider status and dispatch semantics for the distinction between reported availability and display-only freshness labels.
In Settings → Private agents, inspect each instance’s type, status, last check, and reported capabilities. Agent connectivity is distinct from upstream health; stale observations are not shown as healthy. Refreshing the page retrieves the stored snapshot rather than initiating a probe.
The adapter targets the stable Prometheus /api/v1 API and has been tested against Prometheus 3.5.0. This testing does not certify production load capacity or compatibility with Thanos, Mimir, VictoriaMetrics, and hosted services. Confirm their API and authentication requirements before use.