Your monitors in your own Prometheus

One URL, one read-only key: Prometheus collects the status, per-region latency, availability and expiry dates of all your monitors. The Grafana dashboard and the alerting rules are ready to import.

Pro+Read-only Metrics key
grafana.com/grafana/dashboards/25909
The OKStatus Grafana dashboard: monitor counts, availability and error budget gauges, status history and response time heatmap
What the export contains

The figures of your OKStatus dashboard, in your stack

The same computations as the app: the majority rule for status, time-weighted availability for SLAs. No second truth in Grafana.

okstatus_monitor_upStatus of every monitor, and its history: up, degraded, down, maintenance, paused.
okstatus_check_latency_secondsResponse time of the last check, probe region by probe region, and the hour's p50, p95 and p99.
okstatus_monitor_availability_ratioAvailability over 24 hours, 7 and 30 days, downtime, and your SLA targets to compute the error budget.
okstatus_certificate_expiry_timestamp_secondsTLS certificate and domain name expiry, as timestamps ready for an alert.
okstatus_private_agent_upYour private agents: liveness, version, load. The probe you host is watched too.
okstatus_llm_time_to_first_token_secondsAI model monitors: time to first token and time per output token.
Up in three minutes

One key, one config block, one import

Nothing to install on your side: OKStatus already is the probe, Prometheus only reads.

01 Create a Metrics key Settings → API keys. It only reads the export: if it leaks from a config file, it can't change anything.
02 Add the target An eight-line scrape_config, or the same for Grafana Alloy and the Prometheus Operator.
03 Import the dashboard Dashboard 25909 on grafana.com, imported by its ID, and ten tested alerting rules, ready to load into Prometheus.
Configuration

Copy, paste, scraped

The key stays in a separate file. Labels carry the host only, never a monitor URL that could hold a token. Answers are cached 15 seconds and compressed, with a scrape budget separate from the rest of the API.

scrape_configs:
  - job_name: okstatus
    scrape_interval: 30s
    scheme: https
    metrics_path: /api/v1/metrics
    authorization:
      credentials_file: /etc/prometheus/okstatus.token
    static_configs:
      - targets: [api.okstatus.eu]
The Grafana dashboard

Nineteen panels, ready to import

Probe regions, availability against the SLA target, every monitor in one table, expirations, private agents. Filters by group, monitor, region and SLA window.

The rest of the dashboard: status by probe region, availability against the SLA target, the monitors table, upcoming expirations and private agents 1Every monitor from every probe region2Availability against your SLA target3All your monitors, sortable4Certificates and domains about to expire
FAQ

Prometheus and OKStatus

All questions → Prometheus export docs →

To see the outside view of your services next to your internal metrics, in your team's tools, and to correlate: a service down from outside and up from inside points to DNS, a CDN or routing, not the service itself. Alerts can stay with OKStatus, or go through your Alertmanager.

Your first monitor in under a minute.

Free plan, no card. Hosted and operated in Europe.