Skip to main content

tinkr slo

Compute SLO (Service Level Objective) availability, error budget, and burn rate for a service.

tinkr slo <service> [options]

Arguments

ArgumentDescription
serviceService name as configured in the active profile

Options

FlagDefaultDescription
--target FLOAT99.9SLO target as a percentage (e.g. 99.9, 99.5, 99.99)
--window TEXT30dRolling window — e.g. 7d, 30d, 90d
--jsonoffEmit raw JSON

Examples

# Default: 99.9% target over 30 days
tinkr slo payments-api

# Four nines
tinkr slo payments-api --target 99.99 --window 30d

# Weekly SLO check
tinkr slo payments-api --target 99.9 --window 7d

# JSON for dashboards
tinkr slo payments-api --target 99.9 --window 30d --json

Output

SLO Report — payments-api
Target: 99.9% Window: 30d

Availability: 99.71%
Error budget: 43.2 min remaining (of 43.8 min total)
Budget consumed: 98.6% 🔴

Burn rate (1h): 14.2× CRITICAL — budget exhausted in ~3h at this rate
Burn rate (6h): 2.1× WARNING — budget exhausted in ~20h
Burn rate (24h): 0.8× OK

Errors in window: 847
Total requests: 302,400

Availability calculation

Tinkr queries the log backend for error-level events and total request counts:

availability = (total_requests - error_requests) / total_requests × 100

Error budget:

budget_minutes = window_minutes × (1 - target/100)
consumed_minutes = window_minutes × (1 - availability/100)
remaining_minutes = budget_minutes - consumed_minutes

Burn rate (hourly):

burn_rate = hourly_error_rate / hourly_budget_rate

A burn rate > 1.0 means the error budget will be exhausted before the window ends if the rate continues.

Common SLO targets

TargetDowntime allowed (30d)
99.0%7h 12m
99.5%3h 36m
99.9%43m 12s
99.95%21m 36s
99.99%4m 19s

See also