Prometheus API metric schema
The Prometheus API exposes a fixed, public set of metrics for your SLOs. Each metric is a
gauge.
Labels
Every SLO metric carries these labels:
| Label | Description |
|---|---|
project | Project the SLO belongs to. |
slo | SLO name. |
objective | Objective (threshold) name within the SLO. |
service | Service the SLO is attached to. |
Metrics whose names start with component_ carry three additional labels identifying the
component SLO within a composite SLO:
| Label | Description |
|---|---|
component_project | Project of the component SLO. |
component_slo | Name of the component SLO. |
component_objective | Objective of the component SLO. |
Use any of these labels as PromQL matchers, for example reliability{project="default",slo="my-slo"}.
Core metrics
Available for all SLOs.
| Metric | Description |
|---|---|
reliability | SLO objective reliability as a ratio from 0 to 1. |
target | Current target of the SLO objective. Reflects the currently configured value. |
budget | Remaining error budget as a ratio from 0 to 1. It can be negative when the budget is overspent. |
burn_rate | SLO objective burn rate, where 1 means a 1x burn rate. |
count_good | Count of good events or good minutes observed in the time window. |
count_total | Count of total events or total minutes observed in the time window. For occurrence composites it is always 1. |
Threshold SLI metrics
Available for SLOs that use a threshold (single time series) SLI.
| Metric | Description |
|---|---|
sli_threshold | Threshold SLI value received by Nobl9. |
sli_threshold_status | Threshold SLI status, where 0 means bad and 1 means good. |
threshold | Current threshold of the SLO objective. Reflects the currently configured value. |
Ratio SLI metrics
Available for SLOs that use a ratio (good-over-total) SLI.
| Metric | Description |
|---|---|
sli_ratio_received_good | Good ratio SLI value received by Nobl9. |
sli_ratio_received_bad | Bad ratio SLI value received by Nobl9. |
sli_ratio_received_total | Total ratio SLI value received by Nobl9. |
sli_ratio_used_good | Good ratio SLI value used to calculate the SLO budget. |
sli_ratio_used_total | Total ratio SLI value used to calculate the SLO budget. |
The received metrics are the raw good, bad, and total values as Nobl9 received them. The used
metrics are what actually went into the budget calculation. The two can differ: when the good (or
bad) and total time series aren't aligned in time, points without a matching counterpart may be
dropped, or a value may be interpolated between two existing points. Use the received metrics to
see the incoming data and the used metrics to reconcile how the budget was computed.
Time-slices metrics
Available for SLOs that use the time-slices budgeting method.
| Metric | Description |
|---|---|
time_slice_allowance | Current configured time-slice allowance. Reflects the currently configured value. |
time_slice_reliability | Good-to-total ratio for a time slice. |
time_slice_status | Time-slice status, where 0 means bad and 1 means good. |
Composite metrics
Available for composite (v2) SLOs. The component_ metrics also carry the
component labels described above.
| Metric | Description |
|---|---|
component_weight | Current configured weight of a component SLO. Reflects the currently configured value. |
component_impact | Impact of a component SLO on the composite budget. |
component_delay | Delay of a component SLO, in seconds, when the composite result was calculated. |
component_was_delayed | Component delay-strategy outcome: 0 used, 1 counted as good, 2 counted as bad, 3 ignored. |
composite_max_delay | Composite max-delay setting, in seconds. |
Data for composite 1.0 objectives is not queryable through the Prometheus API. Use composite v2 SLOs to query component metrics.
Configured values versus historical values
Some metrics come from the SLO's current configuration rather than from time-series data:
target, threshold, time_slice_allowance, and component_weight. These always report the
currently configured value, even when you query a past time range during which the value was
different. All other metrics reflect the value computed for the queried point in time.
Discovering what's available
To list the projects, SLOs, services, or objectives you can query, use the
/label/{label_name}/values endpoint, for example to
list all SLOs in a project:
curl --globoff -u 'clientId:clientSecret' \
'https://app.nobl9.com/api/prometheus/v1/api/v1/label/slo/values' \
--data-urlencode 'match[]=reliability{project="default"}'