Analytics evidence collection with Jev
On-call already drowns in threshold alerts. Warehouses and anomaly detectors still own the math. Jev judges whether the written incident is actionable given numbers you already computed. It does not detect spikes or query the warehouse.
This unofficial page is the evidence collection slice of the analytics alert triage pack. Intent: apply the Jev (TypeSafe System One) decision model to analytics alert triage evidence collection. Primary search language: Analytics Jev evidence collection. Confirm patterns on docs.typesafe.ai. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Independent angle (cover ≠ clone): Alert-class + actionability on narrative + precomputed bands — not a clone of a BI-alert product or anomaly-SaaS IA.
Analytics use-case context
Evidence collection for analytics alert triage happens before POST /v1/systemone. Jev does not browse your warehouse, retriever, or ESP. You gather the alert narrative + metric bands facts, filter them, then ask snap questions. This slice is where fan-out cost math belongs: batch questions, do not re-send state.
Hub: Use cases. Compare, when the other tool is the real job: analytics alerts.
Evidence Collection inputs
Collect:
- Alert title + short body
- The runbook sentence the Noul names
- Precomputed bands (ratios, deltas) — not raw floats for Jev to compare
Never send:
- Asking Jev for the root cause SQL
- Full query results as unused tokens
- Screenshots of Grafana
Shape the payload like this once the gather step finishes:
{
"alert": { "id": "a-991", "title": "Checkout p95 up", "body": "p95 2.1s vs 1.2s baseline; error rate flat." },
"bands": { "p95_ratio_band": "1.5-2x", "error_rate_delta_band": "flat" },
"runbook": { "page": "Page if latency ≥ 1.5× and user-facing checkout, unless error_rate also explains it." }
}
Decision signals and actions
Each evidence field should change a named answer:
| Id | Type | Job |
|---|---|---|
klass |
Choice | latency / errors / data_quality / noise / other |
severity |
Score | ignore → user-facing outage language |
page_now |
Noul | Meets runbook.page given bands.*? |
Class + severity + page_now in one call per alert. Correlation across 50 alerts is your grouping job, not a 50-way Choice.
Do not treat a Noul of 0.5 as a “medium” analytics alert triage score — it means yes and no are equally likely. Conjunctions stay in your code.
Guardrails and escalation
If the gather step fails (empty alert narrative + metric bands, redaction stripped everything, retriever empty), fail closed on paging on-call or auto-suppressing a user-facing alert. Do not invent evidence so Jev has something to say. TypeSafe’s confidence-gated examples use a lower bar for recoverable reads than for irreversible actions. Those numbers are illustrations. For analytics alert triage, treat page_oncall as the high bar (paging on-call or auto-suppressing a user-facing alert). Tune on labels — see offline evaluation.
Evaluation and rollout notes
Your eval set should include thin-evidence cases, not only happy alert narrative + metric bandss. Label class gold from on-call, page-now gold, and whether the page was justified. Pin jev-1.13.0 (the versioned id) after you fit thresholds. jev-latest and the marketing line jev-1.13 can move. Log the response model. TypeSafe’s published list price for jev-1.13 is $0.042 per million input tokens (vendor claim — confirm on the models page); output tokens are free on that same page. Unused distractors still bill as input.
Official Python and JavaScript SDKs read TYPESAFE_API_KEY and retry documented 429/529. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Pack map
| Slice | Page |
|---|---|
| Graph and primitives | decision workflow |
What may enter state |
input contracts |
| What to gather first | you are here |
| Atomic rules | policy checks |
| Act / review / abstain | confidence thresholds |
| Reviewer payload | human handoff |
| What to persist | audit trail |
| How it breaks | failure modes |
| Labeled replay | evaluation |
| Shadow → canary | production rollout |
FAQ
Should evidence live in the question text?
Put facts in state and point instructions at alert.title, alert.body, runbook.page, bands.p95_ratio_band. Criteria stay stable so you can replay.
When do I split calls? Class + severity + page_now in one call per alert. Correlation across 50 alerts is your grouping job, not a 50-way Choice.
Where is the rest of the Analytics pack? Start with Analytics input contracts and Analytics decision workflow. Cluster hub: Use cases.
Can Jev replace the anomaly detector? No. Detectors emit numbers. Jev reads the write-up and your runbook excerpt.
Should we send the whole timeseries?
No. Summarize to bands in code. Distractors hurt jev-1.13 and still bill as input (vendor claim).
What this page does not claim
- Not a warehouse, detector, or APM.
- No MTTA/MTTD benchmarks.
- Not official TypeSafe.
- Official TypeSafe status, or that jev.pro issues API keys.
- That a schema-constrained answer is automatically factually correct.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai.
Primary documentation: https://docs.typesafe.ai. Hub: Use cases.
Sources
Public TypeSafe or adjacent documentation only. No private claims.