The interior of a dark observatory dome, a telescope aimed through the open slit at a band of stars.

Internal Tool

Chronicle

See everything. Correlate anything. Fix what matters.

Explore Features

Screenshots

See It in Action

Features

Three Pillars, One Platform

Metrics, logs, and traces in the same system — plus alerts, SLOs, and incidents built on top. No vendor lock-in, no stitching, no "you need a third tool for traces."

Observability Pillars

Metrics, Logs, Traces — All Correlated

  • Metrics at Any Resolution

    1-second raw samples, 1-minute / 5-minute / 1-hour continuous aggregates. The query engine picks the coarsest bucket that still resolves the query.

  • Structured Logs

    Severity, body, attributes, trace-id, span-id, pattern-id, interestingness score. Query by any dimension. Correlate to traces with one click.

  • Distributed Traces

    Spans with parent/child, operation, kind, status, duration, and attributes. Waterfall view. Jump from span to correlated logs via trace-id.

  • SLOs & Burn Rate

    SLOs over any metric expression. Multi-window burn-rate alerts. Error budget remaining shown on every service page.

OpenTelemetry Native

No Vendor Lock-In, No Proprietary Agent

  • OTLP-HTTP JSON Ingest

    Standards-compliant OTLP receivers for metrics, logs, and traces. Use any OTel SDK in any language and it just works.

  • Chronicle SDK

    Three-line wire-up. init_chronicle(service_name) auto-instruments FastAPI, httpx, SQLAlchemy, asyncpg, and redis. The fleet adopted it in a day.

  • Resource Attribution

    Every signal carries service.name, deployment.environment, and service.version. Deploy markers mark version transitions on every metric chart.

  • Prom & StatsD Adapters

    Legacy metric sources keep working. remote_write from Prometheus and UDP StatsD both accepted and normalized.

AI Curation

The Boring 99% Sampled, the Weird 1% Kept

  • Log Interestingness Scoring

    Mercury 2 scores every log line 0.0–1.0 for anomaly value. Sub-threshold lines sample down; above-threshold lines retain full fidelity.

  • Pattern Clustering

    Similar log lines get a shared pattern_id. The top-500 patterns per service become a queryable library — you stop scrolling, you start filtering.

  • Sonnet 4.6 RCA Drafts

    When an alert fires, Sonnet reads correlated traces, logs, recent deploys, and similar past incidents to draft a root-cause hypothesis — before the on-call pages in.

  • Natural-Language Query

    "Show p95 latency for soulcore-inference since the last deploy." The NL translator maps plain English to structured queries and charts the result.

Fleet Integration

The Data Plane for the Whole Renkara Fleet

  • Vigil Dependency Flip

    Vigil becomes a presentation layer for service health. Chronicle stores the probe data, Vigil shows the status page. Two tools, one source of truth.

  • Docket Auto-Filing

    Recurring error signatures open a Docket card automatically. Alerts link to the filed card; fixes close both.

  • Codex Runbooks Inline

    Alert rules carry a runbook_url annotation. The page renders the Codex runbook inline when the alert fires — no tab-switching during a fire.

  • Cadence On-Call, Courier Comms

    On-call rotation lives in Cadence; paging looks up the shift. Customer-facing incident comms drafted from Courier templates.

Accessibility

Built for Everyone

  • WCAG 2.1 AA Compliance

    4.5:1 contrast for body text, 3:1 for large text and UI components, in both light and dark themes.

  • Keyboard Navigation

    Every interaction reachable via keyboard. Logical tab order, visible focus indicators, Escape-to-dismiss for modals.

  • Screen Reader Support

    VoiceOver, NVDA, and JAWS tested. Semantic HTML, ARIA labels, live regions for dynamic updates.

  • Reduced Motion

    Respects prefers-reduced-motion. Usable at 200% zoom. Touch targets meet 44x44 minimum.

How It Works

From Signal to Resolution

  1. Step 1: Emit

    Services ship OTLP. Chronicle SDK wires it in three lines. Metrics, logs, and traces all share a trace_id from the entry span forward.

  2. Step 2: Curate

    The ingest pipeline scores, clusters, and indexes. Interesting lines kept at full fidelity. Boring patterns sampled down. Nothing lost — everything findable.

  3. Step 3: Alert

    Rules evaluate on a window. Firing alerts page via notification-service through the current on-call's Cadence-defined preferences. Runbook renders inline.

  4. Step 4: Resolve

    Sonnet drafts the RCA before the on-call reads the page. Incident timeline captures every action. Postmortem seeds a Narrative blog post and a Slate follow-up.

Technical Specifications

Under the Hood

  • Backend

    • FastAPI (Python 3.12+)
    • PostgreSQL + TimescaleDB for metrics
    • ClickHouse for logs + traces at scale
    • Celery + Valkey workers
    • OTLP-HTTP receivers (v1/metrics, v1/logs, v1/traces)
  • Frontend

    • React 19 + TypeScript
    • Vite build system
    • Recharts for timeseries
    • Composable dashboard widgets
    • Light and dark mode
  • Ingest

    • OTLP-HTTP JSON (primary)
    • Prometheus remote_write adapter
    • StatsD / Fluent Bit / syslog bridges
    • Browser RUM endpoint
    • Back-pressure-aware batching
  • AI

    • Mercury 2 for log scoring + clustering
    • Sonnet 4.6 for RCA drafting
    • NL-to-query translator
    • MCP-native — every query, dashboard, alert, and incident

Development

100% Built by Claude

Every tool in the Renkara fleet was built by Claude (Anthropic) working alongside a single human supervisor. Every line of code, every test, every deployment: AI-authored with human direction. The leverage factor across the fleet runs in the 20x–50x range, with individual sessions regularly exceeding 100x.

See the daily leverage records for per-task numbers across the full build history.