Skip to content

Reqly

Self-hosted API monitoring that tells you what broke, when, and which deploy did it — for Python, Node.js and any OpenTelemetry stack.

Reqly watches every request your APIs serve and explains problems instead of just charting them. When a route starts failing, it tells you which release was running, which host or client the errors came from, and whether you're burning your error budget. You can also ask it why in plain English. Everything runs on your own Postgres: one docker compose up or helm install, a one-line SDK, or plain OpenTelemetry.

  • Quickstart


    Run the stack and see your first metrics in five minutes.

    Quickstart

  • Python


    FastAPI, Flask, Django, Starlette, Litestar and any WSGI/ASGI app.

    Python SDK

  • Node.js


    Express, Fastify, Hono, Koa and NestJS, with no runtime dependencies.

    Node SDK

  • Any language


    Point an OpenTelemetry exporter at Reqly. Go, Java, .NET and more.

    OpenTelemetry

What you get

Metrics that are right p50/p95/p99 per route and per service from mergeable percentile sketches, error rates, status codes, deploy markers and per-release health. Metrics & releases
It explains what broke Hourly alerts against a weekday × hour baseline, with the release that was running, root-cause leads and the clients that were hit. A weekly AI report narrates the findings. Alerts
Ask Reqly "Why did /orders start failing?" answered from your own data through read-only query tools, with every query shown and every number checked. Ask Reqly
API-level depth SLOs with burn-rate alerts, OpenAPI drift, API consumers and LLM cost per route.
Small and safe The SDKs add ~6–33 µs per request (measured) and never raise into your app. No request bodies, query strings or headers are captured.
For teams Projects, scoped API keys and sign-in when several teams share one collector.

How it fits together

[Python app + reqly]        ──►  POST /v1/ingest
[Node app + reqly-node]     ──►  POST /v1/ingest
[Any app + OpenTelemetry]   ──►  POST /otlp/v1/traces
                                        │
                              [Collector — FastAPI]
                                        │
                              [TimescaleDB + Toolkit]
                                        │
          ┌─────────────────────────────┼──────────────────────────┐
     [Dashboard]                  [Scheduler]                 [Ask Reqly]
   charts, panels,          hourly alerts, SLO burn,      read-only tools →
   settings, sign-in        weekly report → Slack …       Groq → verified answer
  • SDKs record each request (method, route template, status, duration, error type, release, sizes) into a bounded queue and ship batches in the background.
  • The collector validates events, stores them in a TimescaleDB hypertable, and keeps continuous aggregates current. It also runs the alert and SLO checks and the weekly report.
  • The dashboard is a static React app that reads from the collector.

Try it