Skip to content

jev-logtriage

One Jev call per log batch answers noise and severity questions; code maps answers to suppress, watch, review, notify or page.

ProjectbetaMIT

Overview

jev-logtriage is a Python tool for on-call operators who want help with log lines that are hard to express as PromQL alerts. It collapses repeated log lines (for example from Loki), sends each source batch to Jev in a single call with six typed questions, and lets plain code decide the action.

The decision model only answers questions such as whether an on-call engineer would dismiss the batch and how severe it is. The thresholds live in code, which maps answers to suppress, watch, review, notify or page. Low confidence never auto-acts and goes to review, and the tool never executes anything. A bundled demo fixture of sanitised homelab logs lets you try it without Loki. The project states it is independent and not an official TypeSafe project.

What the decision model decides

TypeQuestionAnswers
Yes / noWould an on-call engineer dismiss this?yes · no
ScoreSeverity, from 0 routine to 3 critical0 · 1 · 2 · 3
ChoiceWhich category does this batch belong to?(inferred)expected_noise · network · security · config · infra

How it works

  1. Pull warn/error logs from Loki or the bundled demo fixtures
  2. Collapse repeated lines per source
  3. Send one Jev call with six questions per source batch
  4. Code gates map answers to suppress, watch, review, notify or page
  5. Low-confidence results go to review; nothing is executed

Strengths

  • Six questions cost a single call per source
  • Deterministic code gates: the README notes numbers move slightly between runs but the gates do not
  • Low confidence never triggers an automatic action
  • Easy to try with uvx and bundled fixtures

Caveats

  • Requires a TypeSafe API key (hosted dependency)
  • Unofficial, independent project
  • Recommendations only; integration with paging systems is left to you

Getting started

export TYPESAFE_API_KEY=apikey_... then uvx --from jev-logtriage logtriage --demo

At a glance

Type
Project
Status
beta
Language
Python
Runtime
CLI
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • On-call operations: batches collapsed Loki logs into one Jev call of Noul, Score, and Choice questions, then maps answers in code to suppress, watch, review, notify, or page, with low confidence going to review and nothing executed.

    yibie/awesome-jev
  • Jev scores collapsed log batches for noise, severity, and whether an operator should act. Code maps the answers to suppress, watch, review, notify, or page. Nothing is executed.

    cobanov/awesome-jev
  • Jev scores collapsed log batches; code maps answers to suppress, watch, review, notify, or page. Nothing is executed.

    hellogumbo/awesome-jev

Frequently asked questions

What does jev-logtriage decide?

Whether a batch of logs is routine noise, how severe it is and how broad its impact is; code turns those answers into suppress, watch, review, notify or page.

Do I need Loki?

No. The --demo flag runs the same pipeline on bundled fixture logs.

Can it take actions automatically?

No. It only prints decisions, and low-confidence results are always sent to review.

Related projects

  • Self-hosted Stacks blockchain data service whose Slack gate and fault-triage paths reportedly run on Jev decisions.

    ServiceproductionTypeScript
  • Home Assistant integration that runs weekly checks with Jev judgments and turns confident findings into Repairs cards for you to confirm.

    ProjectbetaPython
  • Scores OpenTelemetry logs with Jev for diagnostic value, priority and routing before any expensive LLM analysis.

    ProjectbetaTypeScript
  • Python CLI that analyses JSON, NDJSON and JSONC logs and artifacts with Jev question packs, anchoring each answer to source lines.

    CLIbetaPython
  • Splunk search command that asks Jev typed questions about events and adds probabilities, choices and scores as fields.

    AppbetaPython
  • On-call tooling where Jev judges alerts and incident hypotheses and plain code decides: alert routing plus a no-LLM root-cause benchmark.

    ProjectbetaPython