# Changelog of Distributed Trace Root Cause Analyzer (`michiganpublictech/trace-root-cause-analyzer`) Actor

- **URL**: https://apify.com/michiganpublictech/trace-root-cause-analyzer/changelog.md
- **Full Actor documentation**: https://apify.com/michiganpublictech/trace-root-cause-analyzer.md

## Changelog — Distributed Trace Root Cause Analyzer

### 0.1.0 — unreleased

- Initial version.
- Per-run threshold overrides: the `thresholds` input object (33 known keys such as `slowDbMs`, `nPlusOneMin`,
  `externalSlowMs`) overrides detector defaults; unknown keys or out-of-range values fail the run before any charge.
- Span-name templates: IDs in span names (UUIDs, hex IDs, opaque tokens, numbers, e-mails, query values) become
  `{id}` for call grouping (N+1 / retry detection) and baseline matching, so `GET /users/42` matches `GET /users/7`.
- More real-world export shapes: Tempo v2 `{"trace": …}`, Jaeger v2 `/api/v3` `{"result": …}`, JSON-lines text from
  the OpenTelemetry Collector `file` exporter, and Jaeger API error responses reported with their message.
- Input formats, auto-detected and mixable: OTLP/JSON (hex or base64 IDs, Tempo `batches`, legacy
  `instrumentationLibrarySpans`), Jaeger JSON (µs, `CHILD_OF`/`FOLLOWS_FROM`, tags, logs), Zipkin v2
  (incl. shared B3 spans and lists of traces), and a simplified `{trace_id, spans}` shape with a
  durations-only mode.
- Trace reconstruction: duplicate IDs, cycles, orphans, multiple or missing roots, Jaeger-style clock-skew
  adjustment, async (FOLLOWS_FROM / producer→consumer) children, CLIENT→SERVER pairing.
- Timing: self time via interval union (correct for concurrency), gaps, network/queue split, parallelism
  factor, per-service / per-operation / per-edge aggregation.
- Critical path (iterative backwards walk) with per-span and per-service attribution.
- Error origin vs propagation (error chain), handled errors, independent failure sources.
- 56 detectors (`RCA-*`) and 4 fleet rules (`RCA-FLEET-*`).
- Root-cause ranking with numeric score, confidence label, reasoning, evidence and category-specific
  recommendations.
- Baseline comparison: robust per-operation regressions (median/p95), critical-path shifts, new
  operations/services/errors, call-count increases.
- Fleet summary across traces; `INVESTIGATION.md` with critical-path tables, Mermaid diagrams, ASCII
  waterfalls and error chains.
- Pay-per-event: `trace-investigated` $0.50, `baseline-comparison` $0.25, `fleet-summary` $0.25. Failed
  or skipped traces are never charged.
