Best Open Source Error Tracking Tools 2026
Best Open Source Error Tracking Tools in 2026
TL;DR
Sentry Team costs $26/month for 50K error events — a single high-traffic app can exceed that in hours during an incident. GlitchTip gives you 80% of Sentry's functionality at 10% of the server resources, and it's Sentry SDK-compatible so migration is a one-line config change. Highlight.io adds session replay and log management for full-stack observability. Bugsink is the smallest, fastest option for teams that just need errors without the overhead.
Key Takeaways
- Sentry (self-hosted) (Apache-2.0, 39K+ stars) is the most feature-complete option but requires 8–16 GB RAM and 20+ containers
- GlitchTip (MIT, 1K+ stars) is Sentry-SDK compatible — swap one environment variable and your existing SDKs work without changes
- Highlight.io (Apache-2.0, 8K+ stars) provides errors + session replay + logs + traces in a single platform
- Bugsink (BSL, 2K+ stars) runs on 512 MB RAM and is the simplest possible deployment for error-only tracking
- Self-hosting saves $258–$3,024/year per 50K–500K monthly events versus Sentry Team pricing
- GlitchTip's 3-container setup (app + PostgreSQL + Redis) is deployable in under 10 minutes
The Error Tracking Cost Problem
Error tracking costs are often invisible until they become painful. A well-functioning application sends few errors. But during an incident — a bad deploy, a third-party outage, a traffic spike — error event volume can spike 1,000x in minutes. Sentry's event-based pricing means your bill spikes in lockstep with your worst production incidents.
Sentry's sampling options help, but sampling errors means missing intermittent bugs that appear at low frequency. Teams typically end up either over-spending on high event limits or under-sampling and missing real issues.
Self-hosted error tracking eliminates event-based pricing entirely. You pay for the VPS that runs the tracking server, and that cost is fixed regardless of whether you have a quiet week or a catastrophic incident.
Sentry (Self-Hosted) — Most Complete Platform
Sentry's self-hosted distribution is the same codebase as their cloud offering, including features like performance monitoring, session replay, profiling, and cron monitoring. If you're already using Sentry Cloud and want to cut costs, the self-hosted version is an exact replica — same SDKs, same dashboard UI, same alert rules.
The catch is infrastructure requirements. The official Sentry self-hosted Docker Compose file spawns 20+ containers: Nginx, Sentry web, Sentry worker, Sentry cron, ClickHouse, Kafka, Redis, PostgreSQL, and several auxiliary services. A minimum production deployment needs 8 GB RAM — 16 GB is recommended.
This is a real constraint. A $40/month Hetzner CPX31 (4 vCPU, 8 GB RAM, 160 GB SSD) is the practical minimum for self-hosted Sentry. That's $480/year — more than many teams' current Sentry Cloud bill if they're on the free tier. Self-hosted Sentry only makes financial sense at 100K+ events/month where Sentry Cloud starts charging significantly.
# Self-hosted Sentry setup
git clone https://github.com/getsentry/self-hosted
cd self-hosted
./install.sh
docker compose up -d
Key features:
- Error tracking for 100+ platforms and languages
- Performance monitoring (transaction tracing, spans)
- Session replay (watch user sessions at the time of error)
- Profiling (CPU and memory)
- Cron monitoring (alert on missed scheduled jobs)
- Release tracking and deployment integration
- GitHub/GitLab issue integration
- Alert rules and notification integrations
GlitchTip — Best Lightweight Sentry Alternative
GlitchTip is the pragmatic choice for teams that want Sentry's error tracking without Sentry's infrastructure requirements. The project explicitly supports all Sentry SDKs — if your application is already instrumented with @sentry/node, sentry-python, or any other official Sentry SDK, switching to GlitchTip is a one-line change:
// Before: pointing at Sentry Cloud
Sentry.init({
dsn: "https://key@o123456.ingest.sentry.io/project",
});
// After: pointing at self-hosted GlitchTip
// Same SDK, different DSN
Sentry.init({
dsn: "https://key@glitchtip.yourdomain.com/1",
});
No SDK changes, no code changes, no need to update your error boundaries or instrumentation. Just update the DSN environment variable.
GlitchTip runs on 3 containers (Django app, PostgreSQL, Redis) and requires 1–2 GB RAM. A $6/month Hetzner CX22 handles it comfortably for low-to-medium event volumes.
# docker-compose.yml
services:
glitchtip-web:
image: glitchtip/glitchtip:latest
environment:
- DATABASE_URL=postgres://glitchtip:password@db:5432/glitchtip
- SECRET_KEY=your-secret-key
- EMAIL_URL=smtp://user:pass@smtp.provider.com:587
- GLITCHTIP_DOMAIN=https://glitchtip.yourdomain.com
- DEFAULT_FROM_EMAIL=errors@yourdomain.com
ports:
- "8000:8000"
depends_on:
- db
- redis
glitchtip-worker:
image: glitchtip/glitchtip:latest
command: ./bin/run-celery-with-beat.sh
environment:
- DATABASE_URL=postgres://glitchtip:password@db:5432/glitchtip
- REDIS_URL=redis://redis:6379/0
db:
image: postgres:15
volumes:
- pg_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
volumes:
pg_data:
Key features:
- Sentry SDK compatibility (all official Sentry SDKs work)
- Error tracking with grouping and fingerprinting
- Performance monitoring
- Uptime monitoring (ping endpoints)
- Issue assignment and team workflows
- Email and webhook notifications
- 1–2 GB RAM requirement (vs 8–16 GB for self-hosted Sentry)
- MIT license
- PostgreSQL + Redis backend (simple ops)
What GlitchTip lacks vs Sentry: No session replay, no profiling, no cron monitoring, no source map processing (you see minified stack traces unless you configure source map uploads separately). For most teams tracking errors in server-side code, these omissions don't matter.
Highlight.io — Full-Stack Observability
Highlight.io positions itself as a full-stack observability platform rather than pure error tracking. The product bundles four capabilities into one: error tracking, session replay, log management, and distributed tracing. If you're running multiple Sentry-equivalent tools — Sentry for errors, LogRocket or Hotjar for sessions, Datadog or Grafana for logs — Highlight.io collapses those into one self-hosted deployment.
The session replay feature is particularly valuable for debugging frontend issues. When a JavaScript error fires in production, you can watch the 30-second session recording leading up to it — network requests, console logs, user interactions, and DOM state all captured. This eliminates the "I can't reproduce it" debugging loop.
# Highlight.io self-hosted setup
git clone https://github.com/highlight/highlight
cd highlight/docker
./start-hobby.sh
# Accessible at localhost:3000
The self-hosted deployment uses ClickHouse for storage (same as Sentry's self-hosted build) and requires 4–8 GB RAM. It's heavier than GlitchTip but lighter than full Sentry.
Key features:
- Error tracking with JavaScript and backend SDKs
- Session replay (user recordings with error context)
- Log management with structured search
- Distributed tracing (OpenTelemetry-compatible)
- All-in-one observability dashboard
- Self-hostable with Docker Compose
- Apache-2.0 license
Bugsink — Simplest Error Tracking
Bugsink is the newest tool in this comparison and takes the most opinionated approach: just capture errors, nothing else. No performance monitoring, no session replay, no distributed tracing. Just a clean interface showing which errors are happening, how often, and in what context.
The result is a tool that runs on 512 MB RAM and deploys as a single Docker container. Setup takes under 5 minutes. If your team is frustrated by the operational complexity of self-hosted Sentry but needs basic error visibility, Bugsink hits the sweet spot.
docker run -d \
-p 8000:8000 \
-e SECRET_KEY=$(openssl rand -hex 32) \
-v bugsink_data:/storage \
bugsink/bugsink:latest
Bugsink supports Sentry SDKs for the core error capture flow, so SDK migration is the same one-line DSN change as GlitchTip.
Full Comparison
| Feature | Sentry (self-hosted) | GlitchTip | Highlight.io | Bugsink |
|---|---|---|---|---|
| License | Apache-2.0 | MIT | Apache-2.0 | BSL |
| Min RAM | 8–16 GB | 1–2 GB | 4–8 GB | 512 MB |
| Containers | 20+ | 3 | 6–10 | 1 |
| Sentry SDK compat | ✅ Native | ✅ | ✅ (errors) | ✅ |
| Session Replay | ✅ | ❌ | ✅ | ❌ |
| Performance Monitoring | ✅ | ✅ | ✅ | ❌ |
| Log Management | ✅ | ❌ | ✅ | ❌ |
| Profiling | ✅ | ❌ | ❌ | ❌ |
| Cron Monitoring | ✅ | ❌ | ❌ | ❌ |
| Uptime Monitoring | ❌ | ✅ | ❌ | ❌ |
| Source Maps | ✅ | Limited | ✅ | ❌ |
Decision Framework
Choose GlitchTip if: You're already using Sentry SDKs and want the lowest-effort migration to self-hosted. Single config change, 1–2 GB RAM, MIT license.
Choose Highlight.io if: You need errors + session replay + logs in one platform. Accepts higher resource cost to eliminate multiple tools.
Choose self-hosted Sentry if: You need every Sentry feature (profiling, cron monitoring, session replay) and can afford 8–16 GB RAM.
Choose Bugsink if: You want the simplest possible error visibility with minimal infrastructure. 512 MB RAM, 1 container, no complexity.
Cost Savings
| Events/month | Sentry Team (cloud) | GlitchTip (self-hosted) | Annual Savings |
|---|---|---|---|
| 50K | $312/year | $72/year (VPS) | $240 |
| 500K | $3,120/year | $72/year | $3,048 |
| 5M | $16,800/year | $144/year | $16,656 |
At 5M events/month, self-hosted GlitchTip saves $16,656/year compared to Sentry Team pricing. Infrastructure cost stays essentially flat.
Turning Error Tracking Data Into Shipped Fixes
Error tracking is only valuable if errors actually get resolved. The gap between "we have error tracking" and "our error rate is declining" is almost entirely a process problem, not a tooling problem. Teams that deploy Sentry or GlitchTip and then fail to close the loop on errors end up with growing error queues that nobody looks at.
Triage cadence. Error tracking tools accumulate noise. Every new deployment generates new errors; some are regressions, some are expected (errors in third-party integrations you can't control), and some are critical. Without a regular triage process, the queue grows until it becomes so overwhelming that nobody looks at it. The most effective pattern is a weekly 15-minute error review: one person goes through new errors grouped by first occurrence, assesses severity (user-visible / data-corrupting / background noise), and creates tickets for those that matter. Tools like GlitchTip and Sentry support "issue assignment" to route specific error types to the engineers responsible for that code.
Error grouping tuning. Automatic error grouping (fingerprinting) works for most cases but fails on dynamic error messages. An error like Connection refused: 10.0.0.${random_ip} becomes a thousand unique issues instead of one grouped issue, burying the signal in noise. Both GlitchTip and Sentry support custom fingerprint rules — configure them for any error type that generates dynamic message content (database connection strings, user IDs in error messages, rate limit responses with request IDs).
Source maps and readable stack traces. Browser JavaScript errors in production show minified stack traces unless you configure source map uploads. Both Sentry and Highlight.io support uploading source maps at deploy time, which resolves minified lines to original file names and line numbers. GlitchTip has limited source map processing — for JavaScript-heavy frontend applications where minified stack traces are a significant problem, Highlight.io or Sentry's self-hosted version provides better source map support.
Release tracking closes the feedback loop. Tagging errors with the release version (a commit SHA or semantic version) lets you answer "did this error appear after the last deploy?" Both Sentry and GlitchTip support release creation and error-to-release association. When you deploy version 1.4.3, new errors from that deploy are tagged with 1.4.3 — making it immediately visible when a specific deploy introduced a regression. This tracking, combined with a consistent deploy notification to your error tracking system, is what turns error data from a reactive alert tool into a proactive quality metric.
Integration with the issue tracker. The most impactful workflow integration is creating tickets automatically from errors. Sentry and GlitchTip both support GitHub, GitLab, and Jira issue creation from error events. Set up auto-creation rules for high-severity errors (affecting >1% of users, occurring >10 times/hour) and manual creation for the rest. The ticket should link back to the error group so developers can see the latest occurrence, affected users, and stack trace without leaving the issue tracker.
Related: GlitchTip vs Highlight.io: Error Tracking Compared · How to Migrate from Sentry to GlitchTip · Best Open Source Alternatives to Sentry · Best Open Source Monitoring Tools 2026
See open source alternatives to Sentry on OSSAlt.