owl exposes its own runtime, storage, dashboard and alerter state at
GET /metrics in Prometheus text exposition format. The payload is
rendered on demand on each request — nothing is persisted until
something scrapes it.
The owl-self target
The bundled examples/config.yml ships an owl-self scrape target
that points back at the process's own endpoint:
targets:
- name: owl-self
url: "http://127.0.0.1:9090/metrics"
labels:
job: owl
That single entry is what makes the bundled Owl Health dashboard light up out of the box. Drop or override it to point an external Prometheus at the same endpoint instead — both consumers see the same series.
With self-scrape on, expressions like
increase(owl_alerts_webhook_failures_total[10m]) > 0 or
rate(owl_alerts_evaluations_total[5m]) == 0 become valid alert
rules that catch a stuck alerter or a broken webhook receiver. See
Alerting for the rule shape.
What is exported
The payload covers four families:
- process —
owl_goroutines,owl_heap_objects_bytes,owl_gc_pause_seconds_total. - storage —
owl_storage_samples_total,owl_storage_size_bytes. The latter sums.db,-waland-shmon disk. - dashboards —
owl_dashboards_loaded, the count of JSON files successfully parsed fromdashboards.dir. - alerts —
owl_alerts_evaluations_total,owl_alerts_webhook_sends_total,owl_alerts_webhook_failures_total,owl_alerts_firing.
Registry
The table below is generated from internal/web.Registry(), the
single source of truth that both the runtime handler and this docs
generator iterate. Adding a metric in one place is enough; this page
re-renders to match.
alerts family
| Metric | Type | Description |
|---|---|---|
owl_alerts_evaluations_total |
counter | Total alert-rule evaluation cycles since process start. |
owl_alerts_firing |
gauge | Number of (rule, series) lineages currently in the firing state. |
owl_alerts_webhook_failures_total |
counter | Total webhook deliveries that returned an error since process start. |
owl_alerts_webhook_sends_total |
counter | Total webhook delivery attempts since process start. |
dashboards family
| Metric | Type | Description |
|---|---|---|
owl_dashboards_loaded |
gauge | Number of dashboards currently indexed. |
process family
| Metric | Type | Description |
|---|---|---|
owl_gc_pause_seconds_total |
counter | Cumulative time spent in GC stop-the-world pauses since process start. |
owl_goroutines |
gauge | Number of goroutines that currently exist. |
owl_heap_objects_bytes |
gauge | Bytes of currently live heap objects. |
storage family
| Metric | Type | Description |
|---|---|---|
owl_storage_samples_total |
gauge | Total number of samples currently in storage. |
owl_storage_size_bytes |
gauge | On-disk size of the SQLite database in bytes. |