Meet Gotcha

Gotcha is self-hosted observability in one Go binary: error tracking, uptime, tracing, metrics, and profiling. It works with stock Sentry SDKs and accepts OTLP, so moving to your own server takes about as long as swapping the DSN in an SDK you’ve already set up.

Why

Event data — traces, errors, metrics, profiles — is often the most sensitive logging in a system: it can carry user data, internal addresses, and stack traces with secrets in them. Gotcha lets you keep all of that on your own infrastructure, under your own control, instead of a third-party cloud. It’s Apache-2.0 licensed and the source is open.

What’s inside

Architecture

A single gotcha binary with a --mode flag that selects which subsystems run in a given process: ingest (event ingestion), web (the UI), uptime (checks), probe (a remote probe), or all — everything at once, the default for a small self-hosted install. Relational state lives in PostgreSQL; high-volume event data lives in ClickHouse, with configurable retention per signal type. It comes up with a single Docker Compose command.

More in the docs and on the install page.