Monday SLO review OPS-2340

OpenIncident response · Easy · Investigate · about 25 min ·Linux

Lab machine

A private Linux machine with the problem already set up. Sessions last up to 60 minutes.
Mara Okafor opened OPS-2340 at Mon 09:00task

Product wants to ship the new label designer this week. Whether that is allowed depends on how much of Waybill's error budget the last 28 days used.

An error budget turns "is Waybill reliable enough to keep shipping?" into a number. Waybill promises 99.5% of public requests succeed over 28 days; the remaining 0.5% is the budget.

"Product will ask whether they can ship. Get the number right and the decision makes itself. Read the SLO doc, the exclusions matter." (Mara)

The hourly counts include internal traffic and two announced maintenance windows. The SLO excludes both. Each session's data is different.

Your task

Compute the error budget consumed exactly as docs/slo.md defines it and update release/gate.yaml: the percentage, and freeze set by the policy. Keep SEC-88 in the exceptions.

On the machine

  • docs/slo.md
  • var/metrics/requests.csv (hourly, 28 days)
  • ops/maintenance.md
  • release/gate.yaml

Timeline

Every MonOn-call reviews the SLO and updates release/gate.yaml.
Mon 09:00Product asks to ship the label designer this week.
Mon 12:00Release planning meeting.

Done when

  1. release/gate.yaml records the budget consumed, within one percentage point.
  2. freeze matches the policy: true at 100% or more, false below.
  3. SEC-88 is still listed in exceptions.

Hints

Hint 1

Read docs/slo.md twice. Which rows count?

Hint 2

Exclude route_class=internal and every hour inside the maintenance windows.

Hint 3

Budget = 0.5% of counted requests. Consumed = counted errors / budget x 100.

Hint 4

awk -F, works well: skip the header, filter rows, and sum two columns.

Show the solution

Sum requests and errors_5xx for public rows outside the maintenance hours, compute errors / (0.005 x requests) x 100, write it as budget_consumed_percent, and set freeze to true if it is 100 or more.