Skip to main content

Prometheus API metric schema

Reading time: 0 minute(s) (0 words)

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:

LabelDescription
projectProject the SLO belongs to.
sloSLO name.
objectiveObjective (threshold) name within the SLO.
serviceService the SLO is attached to.

Metrics whose names start with component_ carry three additional labels identifying the component SLO within a composite SLO:

LabelDescription
component_projectProject of the component SLO.
component_sloName of the component SLO.
component_objectiveObjective 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.

MetricDescription
reliabilitySLO objective reliability as a ratio from 0 to 1.
targetCurrent target of the SLO objective. Reflects the currently configured value.
budgetRemaining error budget as a ratio from 0 to 1. It can be negative when the budget is overspent.
burn_rateSLO objective burn rate, where 1 means a 1x burn rate.
count_goodCount of good events or good minutes observed in the time window.
count_totalCount 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.

MetricDescription
sli_thresholdThreshold SLI value received by Nobl9.
sli_threshold_statusThreshold SLI status, where 0 means bad and 1 means good.
thresholdCurrent threshold of the SLO objective. Reflects the currently configured value.

Ratio SLI metrics

Available for SLOs that use a ratio (good-over-total) SLI.

MetricDescription
sli_ratio_received_goodGood ratio SLI value received by Nobl9.
sli_ratio_received_badBad ratio SLI value received by Nobl9.
sli_ratio_received_totalTotal ratio SLI value received by Nobl9.
sli_ratio_used_goodGood ratio SLI value used to calculate the SLO budget.
sli_ratio_used_totalTotal 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.

MetricDescription
time_slice_allowanceCurrent configured time-slice allowance. Reflects the currently configured value.
time_slice_reliabilityGood-to-total ratio for a time slice.
time_slice_statusTime-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.

MetricDescription
component_weightCurrent configured weight of a component SLO. Reflects the currently configured value.
component_impactImpact of a component SLO on the composite budget.
component_delayDelay of a component SLO, in seconds, when the composite result was calculated.
component_was_delayedComponent delay-strategy outcome: 0 used, 1 counted as good, 2 counted as bad, 3 ignored.
composite_max_delayComposite max-delay setting, in seconds.
Composite 1.0 not supported

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"}'