Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Triage Summary Schema

The triage_summary is always the last line of --json output. It contains everything tailx computed about the log stream, structured for machine consumption.

Top-level structure

{
  "type": "triage_summary",
  "stats": { ... },
  "top_groups": [ ... ],
  "anomalies": [ ... ],
  "hypotheses": [ ... ],
  "traces": [ ... ]
}

stats object

Processing statistics for the entire run.

{
  "events": 47283,
  "groups": 92,
  "templates": 38,
  "drops": 0,
  "events_per_sec": 15252.0,
  "elapsed_ms": 3100
}
FieldTypeDescription
eventsintegerTotal events processed
groupsintegerActive pattern groups
templatesintegerDrain template clusters
dropsintegerEvents dropped (arena OOM)
events_per_secfloatProcessing throughput
elapsed_msintegerWall-clock processing time

top_groups[] array

Up to 20 pattern groups, ranked by score (severity x frequency x trend). Each group represents a cluster of structurally similar log messages.

{
  "exemplar": "Connection refused to <*>",
  "count": 34,
  "severity": "ERROR",
  "trend": "rising",
  "service": "payments",
  "source_count": 3
}
FieldTypeAlways presentDescription
exemplarstringyesRepresentative message for this group
countintegeryesTotal event count in this group
severitystringyesHighest severity seen in the group
trendstringyesrising, stable, falling, new, or gone
servicestringnoService name, if all events share one
source_countintegernoNumber of distinct sources (omitted if 1)

Trend values

TrendMeaning
risingRate is increasing compared to previous window
stableRate is approximately constant
fallingRate is decreasing
newGroup appeared in the current window
goneNo events in the current window (previously active)

anomalies[] array

Active anomaly alerts from the rate detector and CUSUM detector.

{
  "kind": "rate_spike",
  "score": 0.823,
  "observed": 450.0,
  "expected": 120.3,
  "deviation": 4.2,
  "fire_count": 3
}
FieldTypeDescription
kindstringAnomaly type (see table below)
scorefloatSeverity score, 0.0 to 1.0
observedfloatThe actual measured value
expectedfloatThe baseline expected value
deviationfloatZ-score or normalized deviation
fire_countintegerNumber of times this alert has fired

Anomaly kinds

KindSourceDescription
rate_spikeRateDetectorEvent rate significantly above baseline
rate_dropRateDetectorEvent rate significantly below baseline
change_point_upCusumDetectorSustained upward shift in event rate
change_point_downCusumDetectorSustained downward shift in event rate
latency_spike(reserved)Latency above baseline
distribution_shift(reserved)Statistical distribution change
cardinality_spike(reserved)Sudden increase in unique values
new_pattern_burst(reserved)Burst of previously unseen templates

hypotheses[] array

Causal hypotheses from the correlation engine. Each hypothesis explains an anomaly by linking it to temporally proximate signals.

{
  "causes": [
    {
      "label": "DB latency spike",
      "strength": 0.742,
      "lag_ms": 5000
    },
    {
      "label": "deploy detected",
      "strength": 0.381,
      "lag_ms": 15000
    }
  ],
  "confidence": 0.742
}
FieldTypeDescription
causes[]arrayCandidate causes, ordered by strength
causes[].labelstringDescription of the candidate cause
causes[].strengthfloatCause strength, 0.0 to 1.0 (closer in time + higher magnitude = stronger)
causes[].lag_msintegerTime between cause and effect in milliseconds
confidencefloatOverall hypothesis confidence (max cause strength)

traces[] array

Reconstructed request flows from explicit trace_id matching.

{
  "trace_id": "req-abc-123",
  "event_count": 5,
  "duration_ms": 245,
  "outcome": "failure",
  "events": [
    {
      "severity": "INFO",
      "message": "Received POST /api/checkout",
      "service": "gateway"
    },
    {
      "severity": "ERROR",
      "message": "Connection refused to db-primary:5432",
      "service": "payments"
    }
  ]
}
FieldTypeDescription
trace_idstringThe trace identifier
event_countintegerNumber of events in this trace
duration_msintegerTime from first to last event
outcomestringsuccess, failure, timeout, or unknown
events[]arrayEvents in the trace, in order
events[].severitystringEvent severity level
events[].messagestringEvent message
events[].servicestringService name (if present)