ai root-cause · open telemetry · v1.4

Observability that
explains itself.

Ravyn captures logs, errors, traces and metrics from one SDK — then reads them for you. Every exception arrives grouped, traced, and with the offending commit already named — root cause grounded in your actual codebase.

check_circleno vendor lock-incheck_circleno per-seat pricingcheck_circledata never leaves your VPC
~/acme/checkout-api
logs
8.9k/s
errors
12/s
spans
3.1k/s
metrics
410/s
OpenTelemetryNode.jsExpressNestJSClickHousePostgresRedisDockerKubernetesDiscordSlackGitHubOpenTelemetryNode.jsExpressNestJSClickHousePostgresRedisDockerKubernetesDiscordSlackGitHub
use cases

Five ways teams actually use Ravyn

the platform

Four signals, one pipeline, zero surprises

The SDK degrades before your app does. Everything below it is built to stay boring under load.

auto_awesome

AI root cause

Correlates the exception with the surrounding source, recent commits and neighbouring signals — then drafts the fix as a pull request.

reasoning engine
bolt

Sub-second queries

ClickHouse-backed storage answers filters over millions of rows before you lift your finger off Enter.

clickhouse
account_tree

OTel native

Standard OpenTelemetry in, no proprietary agent. Context propagates across every hop automatically.

traces + metrics
shield_lock

PII redaction

Sensitive fields are scrubbed in the SDK before a single byte leaves your process. TLS enforced end to end.

privacy first
notifications_active

Alerts that route themselves

Threshold and anomaly rules fan out to Discord, Slack, email and webhooks with the trace already attached.

multi-channel
key

Bring your own key

Plug in your own OpenRouter key and pick any model it routes to. Frontier models are optional, and your AI spend stays yours.

cost control
integration

Instrumented in under a minute

  1. 1
    Install the SDK

    One package for logs, errors, traces and metrics. Framework adapters ship as subpath exports.

  2. 2
    Point it at your gateway

    A single DSN. Importing the package does nothing until you call init(), and the SDK never throws into your app.

  3. 3
    Watch it explain itself

    Signals land in under a minute. The first exception arrives already grouped, traced and analysed.

Browse the install guidesarrow_forward
ravyn.init.ts
import { init, captureException } from "ravyn";

init({
  dsn: process.env.RAVYN_DSN,
  environment: "production",
  tracesSampleRate: 1.0,
  redactPii: true,
});

// errors, logs, traces and metrics flow from here on
captureException(error, { tags: { checkout: "submit" } });
0k+
events / sec per node
0ms
median query over 2.4M rows
0%
median time to root cause
0
signals, one pipeline

Stop reading dashboards.
Start reading answers.

Spin up a workspace, drop in the SDK, and let the next incident explain itself.