Errors, uptime, traces, metrics and profiles — on your own server

Self-hosted observability in one small Go binary. Works with stock Sentry SDKs and OTLP. Open source, Apache-2.0.

$ git clone git@gitflic.ru:otezvikentiy/gotcha.git
$ cd gotcha
$ docker compose up -d

Point your Sentry SDK at a new DSN — the first error arrives in seconds.

Gotcha is a self-hosted observability platform in a single Go binary: error tracking, distributed tracing, metrics, profiling, and uptime monitoring — all on your own server. It works with stock Sentry SDKs and ingests OTLP, so moving off the cloud takes about as long as changing a DSN. Open source, Apache-2.0 licensed.

Error tracking

Event ingestion via the Sentry SDK protocol, automatic grouping into issues.

  • Stack traces, breadcrumbs, tags and contexts
  • Automatic error grouping
  • Filters and issue assignment
Issues list in Gotcha

Uptime monitoring

HTTP checks from a built-in local region and remote probes.

  • Incident detection
  • Remote probes (--mode=probe)
  • Public status pages
Uptime monitors and status page

Performance / tracing

Distributed traces and transactions, Web Vitals, performance-issue detection.

  • Distributed traces and transactions
  • Web Vitals
  • Performance regression detection
Transaction trace in Gotcha

Metrics

Metric ingestion via OTLP, metric queries.

  • Ingestion via OTLP
  • Metric queries
  • Threshold-based alert rules and incidents
Metrics dashboard

Profiling

CPU/flamegraph profiles from Sentry profiling payloads and pprof.

  • Flamegraphs from Sentry profiles and pprof
  • Profile regression detection
Flamegraph profile

Alerting

Alert delivery via email, webhook, and Telegram.

  • Rules for new issues and spikes
  • Metric thresholds
  • Performance and uptime regressions
Alert rules

SSO and RBAC

Multi-tenant organizations, teams and roles; SSO login.

  • OIDC (generic), Yandex ID, VK ID
  • Organizations, teams, roles
  • Each provider configured independently
SSO settings

Privacy by default

Server-side PII scrubbing and SSRF protection for outbound requests — both on by default.

  • IP/email zeroing
  • Key-based redaction
  • SSRF protection for webhook/uptime
Privacy settings

How it works

One Go binary, PostgreSQL + ClickHouse. --mode=ingest|web|uptime|probe|all flags for scaling out. No Kafka or Redis. Configurable retention per signal type.

System requirements

One server, three processes (the app, PostgreSQL, ClickHouse). The only dependency is Docker and Docker Compose.

Minimum 2 vCPU · 2 GB RAM · 20 GB SSD personal projects, staging
Recommended 4 vCPU · 4 GB RAM · 40 GB SSD+ production with real traffic

OS: Ubuntu 22.04/24.04 or Debian 12 · x86-64

Learn more — installation

Open source

Apache-2.0 license. Stack: Go, PostgreSQL, ClickHouse.

GitHub GitFlic ♥ Support

Frequently asked questions

What is Gotcha?

Gotcha is a self-hosted observability platform in a single Go binary: error tracking, distributed tracing, metrics, profiling, and uptime monitoring. Everything runs on your own server. Open source, Apache-2.0 licensed.

Does Gotcha work with stock Sentry SDKs?

Yes. Gotcha ingests events over the Sentry protocol, so you just point your existing Sentry SDK at a new DSN — moving off the cloud takes about as long as changing a DSN in an already configured app.

Can I migrate from Sentry to Gotcha without changing code?

Yes. Gotcha ingests over the Sentry protocol, so migration comes down to swapping the DSN in the same official Sentry SDK — no application code rewrite. A step-by-step walkthrough is in the guide "How to migrate from Sentry to self-hosted Gotcha".

Does Gotcha need Kafka or Redis?

No. Gotcha runs as a single Go binary with PostgreSQL and ClickHouse — no Kafka and no Redis. The quickest start is docker compose up -d.

Which observability signals does Gotcha support?

Errors grouped into issues, distributed traces and transactions (including Web Vitals), metrics over OTLP with threshold alerts, CPU/flame-graph profiles, and uptime monitoring with public status pages.

How do I deploy Gotcha?

Gotcha is a single Go binary that needs PostgreSQL and ClickHouse. The quickest start is docker compose up -d. For scaling out there are --mode=ingest|web|uptime|probe|all flags. No Kafka or Redis required.

What license is Gotcha released under?

Apache-2.0. The source code is open and available on GitHub and GitFlic.

Install in a minute

Gotcha Cloud — coming soon

The cloud version is in the works. Leave your email to hear about the launch.

Join the waitlist