Repository navigation
Add documentation for SLOs and alerting - #2476
Conversation
|
Suggest Da Huang (@git286) , Jeff Luo (@JeffLuoo) and/or Julian Gutierrez Oschmann (@juli4n) as reviewers. |
a5420f7 to
8c3575f
Compare
Jeff Luo (JeffLuoo)
left a comment
There was a problem hiding this comment.
Thanks for the updates. I checked each reply against 8c3575fd. Most of my first-round comments are resolved. Three new comments below need a fix before merge: a false alert in B.1, a GMP-only label that the file does not mention, and the B.2 text.
Smaller fixes, not blocking:
gmp-alerting-rules.yaml:127: The page text says "the 30d 99.9% capacity budget", but the target and the thresholds use 99% (0.01).slos-and-alerts.md:43: The text still says "behaviour". Also,docs/observability.mdstill has no link to this page. The earlier thread marked both as done.slos-and-alerts.md:246: NoSetWorkerCapacityRPC exists. Workers report throughRegisterWorkerandUpdateWorker.slos-and-alerts.md:152: With the defaults (100ms, 1.1x, 5s budget), parking makes at most about 19 attempts, not 23. Jitter only makes the delays longer.slos-and-alerts.md:305and:309: "Ateom" is now ateworker.gmp-alerting-rules.yaml:81: "tighted up" should be "tightened up".
ty, fixed, sorry for missing some of these before. |
1fc1c6d to
e72d73d
Compare
|
I made a few final changes:
|
|
From a user's point of view, low-latency suspend/resume is one of Substrate's main selling points. But the scenarios here only cover availability; the only mention of latency is the TODO in the yaml. Should we add a resume-latency SLI, and maybe one for suspend? |
I don't think it's high priority for suspend/resume; those are per-node operations which the operator can't easily affect (e.g. by adding more capacity). At most it could detect a bad rollout, but it's also very easy for users to add a custom alert. By contrast, the failure rate of For latency of the API server operations - users can add more capacity and bring down the latency. It's quite difficult for me to test, and I suspect that different operators would want different rates, and the structure would be ~identical to the availability SLOs. So I'll comment this better but won't add more at this time. |
e72d73d to
371c0a3
Compare
Most resume latency is snapshot/image transfer, which operators can affect (storage backend, region, node bandwidth). That's what B.4 already says. But line 47 lists snapshot storage as non-primary because it "is visible via the API server", and nothing in the rules watches API latency. Maybe you want line 47 point to B.4 instead of the API server? |
16371aa to
86af312
Compare
Good idea, I've added a link to B.4 from line 47. Even though I haven't defined SLO rules for api server latencies, it's still true that the times are visible from the API server, and I've added notes (GMP.yaml line 180, doc.md line 179) indicating how operators could adapt the availability rules for latency. |
Head branch was pushed to by a user without write access
86af312 to
0cb6824
Compare
This document covers proposed SLIs, SLOs, and non-SLO alerts to monitor essential surfaces in Substrate. Some lower-priority surfaces are still tbd but this is likely good enough for v1.0, as sophisticated operators can likely self-unblock given existing observability. I tested the configurations shown here on GKE 1.35 using GMP, and there are some idiosyncrasies in the code samples as a result. I've tried to call these all out in comments to make it clear how operators can clean them up, either now (e.g. if they're using Prometheus directly and not GMP) or in the future (when the idiosyncrasies are fixed). Signed-off-by: Adrian Ludwin <[email protected]>
0cb6824 to
d7fa810
Compare
This document covers proposed SLIs, SLOs, and non-SLO alerts to monitor
essential surfaces in Substrate. Some lower-priority surfaces are still
tbd but this is likely good enough for v1.0, as sophisticated operators
can likely self-unblock given existing observability.
I tested the configurations shown here on GKE 1.35 using GMP, and there
are some idiosyncrasies in the code samples as a result. I've tried to
call these all out in comments to make it clear how operators can clean
them up, either now (e.g. if they're using Prometheus directly and not
GMP) or in the future (when the idiosyncrasies are fixed).
Fixes #574