Expand description
The alert rules the credit registration dashboard renders.
An alert carries identifiers and numbers, never prose: the study registryβs own error text is written for an integrator and is not translated, so the frontend renders one key per alert id with these values interpolated. The thresholds travel with the alerts, not hardcoded twice.
StructsΒ§
EnumsΒ§
ConstantsΒ§
- CREDENTIAL_
REJECTION_ πWINDOW_ SECS - Within this much of the past, one rejected credential is enough.
- FAST_
TRACK_ πNAME_ MISMATCH_ COUNT - One person the registry names differently from the account whose address matched is worth a look: it is the only signal we get that a university address was reissued.
- IDLE_
QUEUE_ πDEPTH - Queued work that makes a day without a single completion mean something.
- LATENCY_
REGRESSION_ πFACTOR - LATENCY_
REGRESSION_ πFLOOR_ SECS - Under this the registry is quick enough that a doubling says nothing.
- LATENCY_
WINDOW_ πSECS - LINKING_
MAIL_ πHOURLY_ CAP - Linking mails one hour may hand over before the volume itself is the problem.
- LINKING_
MAIL_ πWINDOW_ SECS - MISREGISTRATION_
CRITICAL_ πCOUNT - A reversal is always worth saying; this many at once is an incident.
- NEVER_
ENTERED_ πMIN_ AGE_ SECS - How long a completion may sit outside the ledger before
materializeis the suspect rather than the clock. - NEVER_
ENTERED_ πSAMPLE_ LIMIT - Bounds the anti-join behind that rule; a bigger backlog reports as this many.
- PERMANENT_
FAILURE_ πCOUNT - PERMANENT_
FAILURE_ πRATE_ PERCENT - PHASE_
CONSECUTIVE_ πFAILURE_ LIMIT - Failures in a row before a phase counts as broken rather than unlucky.
- PHASE_
HEARTBEAT_ πINTERVAL_ MULTIPLIER - A phase is late once this many of its own intervals have passed without a heartbeat.
pub(crate)because the dashboardβs phase rows apply the same threshold server-side. - PHASE_
SUCCESS_ πINTERVAL_ MULTIPLIER - A phase that owns a nonempty queue and has not succeeded within this many of its own intervals is running without getting anywhere, which no failure count catches.
- SISU_
OUTAGE_ πFAILURE_ SHARE_ PERCENT - SISU_
OUTAGE_ πMIN_ ITEMS - Below this many items the share below is one bad batch, not a signal.
- SISU_
OUTAGE_ πWINDOW_ SECS - STUCK_
CRITICAL_ πCOUNT - Above this many stuck rows the backlog stops being something to look at tomorrow.
- STUCK_
THRESHOLDS π - TERMINAL_
WINDOW_ πSECS - The window every βin the last dayβ rule shares.
- UNREACHABLE_
CONSECUTIVE_ πFAILURES - Below this the run is a bad minute rather than an outage.
- UNREACHABLE_
WINDOW_ πSECS
FunctionsΒ§
- course_
configuration_ πalert - Modules the last configuration check found broken. Never checked is not counted: the Courses tab renders unknown and broken differently, and so must this.
- depth_
of π - evaluate
- Runs every rule and ranks what it found.
- fast_
track_ πname_ mismatch_ alert - Persons whose university address matched a verified account under a different name. The observable signature of an address reissued to somebody else, and the only warning we get before a link is made to the wrong account.
- is_
heartbeat_ πlate - A phase counts as late once more than
PHASE_HEARTBEAT_INTERVAL_MULTIPLIERof its own interval has passed since its last heartbeat. A paused phase is never late: it is not expected to be heartbeating at all. - latency_
regression_ πalert - How long the study registry is taking to confirm, this week against last.
countis this weekβs p95 in seconds andtotallast weekβs, so the banner can name both. - linking_
mail_ πalert - Linking mails we could not hand over at all. The recipient domain rides along because an undeliverable host is the usual cause.
- linking_
mail_ πrate_ alert - The volume guard: how many people we mailed in the last hour against what an hour should hold. Counts addresses, which is what the per-person caps govern.
- never_
entered_ πalert - Completions old enough that
materializehas had every chance and still has no ledger row for them. Sampled rather than counted, so the anti-join stops early on a large backlog. - owned_
depth π - phase_
alerts π - What the phase table says about itself: phases that stopped reporting, and phases that report but get nowhere.
- sisu_
outage_ πalert - The share of recent items the study registry blamed on Sisu. Our only proxy for Sisuβs uptime, which is why it is a rule of its own rather than part of the request-level one above.
- state_
name π - The stateβs own wire name, taken from its serialisation so the two cannot drift.
- stuck_
alert π - Rows the pipeline should have moved on by now. Terminal states are outside this by construction rather than by a filter that could be forgotten.
- stuck_
thresholds - terminal_
outcome_ πalerts - The three rules read off the last dayβs terminal outcomes: failures piling up, reversals, and a pipeline that finished nothing while holding work.
- thresholds
- Alias for
stuck_thresholds: the same values, named for the health-poll wire response.
Type AliasesΒ§
- Credit
Registration Alert Thresholds - The only thresholds the frontend reads off the health poll: how long a row may sit in each state before it counts as stuck. The other rule constants stay server-side.