jevtraces
OpenTelemetry trace processor that asks Jev whether an operation is diagnostic, business-critical and worth keeping, and annotates spans.
Overview
jevtraces is an alpha OpenTelemetry Collector trace processor. For each operation, it asks Jev whether representative traces containing it are likely useful for diagnosis, business-critical and worth retaining, caches those judgments, and annotates later matching spans with the probabilities. The processor itself retains every span regardless of the scores; it does not buffer traces, change sampling flags or perform whole-trace retention, and the README warns not to treat a low score as permission to discard a span.
An opt-in adaptive sampling experiment combines these annotations with OTel tail sampling in a separate configuration, keeping a full archive branch and sampling a comparison branch that retains protected or uncertain traces plus a 10% baseline. A standalone Collector distribution is built with the Collector Builder, and a smoke test runs with a local Jev stub and no credentials. It is a sibling to jevmetrics but has no dependency on it. It suits observability engineers studying semantic trace retention.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Are traces containing this operation likely useful for diagnosis? | — |
| Yes / no | Is this operation business-critical? | — |
| Yes / no | Are traces with this operation worth retaining? | — |
How it works
- Collector receives OTLP traces
- For uncached operations, metadata is sent to Jev
- Judgments are cached and spans annotated with probabilities
- All spans are retained by the processor
- Optional experiment feeds annotations into tail sampling with an archive branch
Strengths
- Non-destructive annotations by default
- Caching limits API calls per operation
- Credential-free smoke test
- Experimental sampling keeps a full archive for comparison
Caveats
- Alpha status
- Judges operation metadata, not whole traces or request outcomes
- Live use needs a Jev key
Getting started
go install go.opentelemetry.io/collector/cmd/builder@v0.161.0, make collector, export JEV_API_KEY, then ./_build/otelcol-jevtraces --config examples/otelcol/config.yamlAt a glance
- Type
- Project
- Status
- prototype
- Language
- Go
- Runtime
- OpenTelemetry Collector processor
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
OpenTelemetry Collector processor that uses Jev to assess span operation metadata and annotate spans with diagnostic value, business criticality, and retention probabilities without dropping traces.
hellogumbo/awesome-jev
Frequently asked questions
Does it drop spans?
No. The processor keeps every span; only the separate opt-in experiment samples.
What does Jev judge?
Operation metadata: diagnostic value, business criticality and retention worth.
Can I test without a key?
Yes, scripts/smoke-traces.py uses a local Jev stub.
Related projects
OpenTelemetry Collector processor that asks Jev how useful each metric is from its metadata and applies keep/drop policy.
ServiceprototypeGoScores OpenTelemetry logs with Jev for diagnostic value, priority and routing before any expensive LLM analysis.
ProjectbetaTypeScriptRecords the full distribution of every Jev answer by state, question and model, so thresholds can move over history with no new calls.
LibrarybetaPythonChinese-documented LLM gateway with virtual model routing, protocol conversion and a transparent Jev System One proxy.
ServicebetaTypeScriptSplunk search command that asks Jev typed questions about events and adds probabilities, choices and scores as fields.
AppbetaPythonBash-native CLI that filters any stream by meaning with Jev, like grep for semantics, so an agent wakes only for lines that matter.
ProjectbetaTypeScript