GlitchTip als Open-Source-Alternative zu Sentry
von Andreas van Hulst
Error-Tracking gehört zu den Tools, die man erst vermisst, wenn es zu spät ist. Ein 500er in der Produktion, ein stiller JavaScript-Fehler, der den Checkout blockiert – ohne systematische Fehlererfassung bleiben solche Probleme oft unentdeckt, bis sich Kunden melden.
Sentry ist hier der unangefochtene Platzhirsch. Leistungsfähig, gut dokumentiert, riesiges Ökosystem. Aber: Die Kosten skalieren schnell, die Daten liegen bei einem US-Anbieter, und seit dem Lizenzwechsel zur BSL (Business Source License) ist Sentry kein echtes Open-Source-Projekt mehr.
Ich setze in meinen Projekten seit einiger Zeit auf GlitchTip – eine Open-Source-Alternative, die sich mit Sentrys eigenen SDKs integriert, selbst gehostet werden kann und einen Bruchteil der Ressourcen benötigt. In diesem Artikel zeige ich, was GlitchTip kann, wie Sie es selbst hosten und wie Sie es in Shopware und Contao einbinden.
Was ist GlitchTip?
GlitchTip ist eine Open-Source-Plattform für Error-Tracking, Uptime-Monitoring und Performance-Monitoring. Das Projekt reimplementiert Sentrys BSD-lizenziertes Backend und ist vollständig kompatibel mit den offiziellen Sentry-SDKs. Das bedeutet: Sie verwenden die gleichen, gut gepflegten Client-Bibliotheken – lediglich der DSN (Data Source Name) zeigt auf Ihre eigene GlitchTip-Instanz statt auf sentry.io.
Feature-Überblick
- Error Tracking – Fehlererfassung mit Stacktraces, Breadcrumbs, Kontext-Informationen und Issue-Gruppierung
- Uptime Monitoring – HTTP(S)-Checks mit konfigurierbaren Intervallen und Benachrichtigungen
- Performance Monitoring – Transaktionen und Spans zur Analyse von Antwortzeiten
- GitLab-Integration – Issues direkt aus GlitchTip in GitLab erstellen
- Prometheus-Metriken – Exportierbare Metriken für Grafana-Dashboards
- Social Auth – Login via GitHub, GitLab, Google, Microsoft, Okta oder generisches OIDC
- Datenretention – Konfigurierbare Aufbewahrungsfristen (Standard: 90 Tage)
GlitchTip vs. Sentry im Vergleich
| Kriterium | GlitchTip | Sentry |
|---|---|---|
| Lizenz | MIT (echtes Open Source) | BSL 1.1 (Source Available) |
| Error Tracking | Ja (Sentry-SDK-kompatibel) | Ja |
| Uptime Monitoring | Ja (integriert) | Ja (Cron Monitoring) |
| Performance Monitoring | Ja (Transaktionen/Spans) | Ja (umfangreicher) |
| Session Replay | Nein | Ja |
| Profiling | Nein | Ja |
| Self-Hosting | Einfach (Docker Compose, ~256 MB RAM) | Komplex (20+ Services, ~4 GB RAM) |
| Managed Hosting | Ab ~5 €/Monat (PikaPods, Elestio) | Ab $0 (Free Tier, dann ab $26/Monat) |
| DSGVO / Datensouveränität | Volle Kontrolle bei Self-Hosting | Daten bei US-Anbieter (EU-Region wählbar) |
| Sentry-SDK-kompatibel | Ja | – |
| GitLab-Integration | Ja | Ja |
| GitHub-Integration | Eingeschränkt | Ja |
| Slack/E-Mail-Alerts | Ja | Ja |
Kurzfassung: GlitchTip deckt die Kernfunktionen ab, die 90 % der Projekte brauchen. Sentry bietet mehr (Profiling, Session Replay, umfangreichere Dashboards), kostet aber auch mehr – in Euro und in Komplexität beim Self-Hosting.
Self-Hosting: Vorteile und Nachteile
Vorteile
- Datensouveränität – Fehlerdaten bleiben auf Ihrer eigenen Infrastruktur. Keine Übertragung an Dritte, keine DSGVO-Diskussionen mit dem Datenschutzbeauftragten.
- Kosten – Ein kleiner VPS (ab ~4 €/Monat) reicht für die meisten Projekte. Keine nutzungsbasierten Gebühren, keine Überraschungen bei der Abrechnung.
- Kontrolle – Sie bestimmen Updates, Datenretention und Zugangsrechte. Kein Vendor Lock-in.
- Geringe Ressourcen – GlitchTip läuft mit 256 MB RAM im All-in-One-Modus. Sentry benötigt für Self-Hosting mindestens 4 GB RAM und über 20 Services.
Nachteile
- Wartungsaufwand – Updates, Backups und Monitoring liegen in Ihrer Verantwortung.
- Kein Support-Team – Bei Problemen sind Sie auf die Community und die Dokumentation angewiesen.
- Fehlende Features – Session Replay, Profiling und einige fortgeschrittene Funktionen gibt es nur bei Sentry.
- Skalierung – Für sehr große Projekte (>100k Events/Tag) braucht es eine durchdachte Infrastruktur.
Meine Einschätzung: Für die meisten Agentur- und Mittelstandsprojekte ist Self-Hosting mit GlitchTip die pragmatischere Lösung. Die Wartung ist überschaubar, die Kosten minimal.
GlitchTip selbst hosten – So geht's
Voraussetzungen
- Ein Server mit Docker und Docker Compose (VPS ab 1 vCPU, 512 MB RAM)
- PostgreSQL 14+ (als Container oder externer Service)
- Eine Domain mit SSL-Zertifikat (z. B. via Let's Encrypt)
- Optional: Redis/Valkey für Caching und Celery-Queue
Docker Compose Setup
Erstellen Sie eine docker-compose.yml:
x-environment: &default-environment
DATABASE_URL: postgres://glitchtip:your_secure_password@postgres:5432/glitchtip
SECRET_KEY: change-me-to-a-random-string
PORT: 8000
GLITCHTIP_DOMAIN: https://glitchtip.example.com
DEFAULT_FROM_EMAIL: glitchtip@example.com
EMAIL_URL: smtp://mail.example.com:587
CELERY_WORKER_AUTOSCALE: "1,3"
CELERY_WORKER_MAX_TASKS_PER_CHILD: "10000"
x-depends_on: &default-depends_on
- postgres
- redis
services:
postgres:
image: postgres:16
environment:
POSTGRES_DB: glitchtip
POSTGRES_USER: glitchtip
POSTGRES_PASSWORD: your_secure_password
volumes:
- pg-data:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: valkey/valkey:8
restart: unless-stopped
web:
image: glitchtip/glitchtip
depends_on: *default-depends_on
ports:
- "8000:8000"
environment: *default-environment
restart: unless-stopped
worker:
image: glitchtip/glitchtip
command: ./bin/run-celery-with-beat.sh
depends_on: *default-depends_on
environment: *default-environment
restart: unless-stopped
migrate:
image: glitchtip/glitchtip
depends_on: *default-depends_on
command: ./manage.py migrate
environment: *default-environment
volumes:
pg-data:
Starten und einrichten
# Services starten
docker compose up -d
# Ersten Admin-Benutzer anlegen (nach Migration)
docker compose exec web ./manage.py createsuperuser
Anschließend ist GlitchTip unter http://localhost:8000 erreichbar. Für den Produktivbetrieb sollten Sie einen Reverse-Proxy mit SSL vorschalten.
Nginx Reverse-Proxy (Beispiel)
server {
listen 443 ssl http2;
server_name glitchtip.example.com;
ssl_certificate /etc/letsencrypt/live/glitchtip.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/glitchtip.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Datenretention konfigurieren
Standardmäßig behält GlitchTip Daten 90 Tage. Sie können dies über die Umgebungsvariable anpassen:
GLITCHTIP_MAX_EVENT_LIFE_DAYS=60
GlitchTip in Shopware integrieren
Für Shopware 6.6 und 6.7 habe ich das Plugin AvhGlitchtip entwickelt, das Error-Tracking direkt über die Shopware-Administration konfigurierbar macht – ohne manuelles Editieren von Konfigurationsdateien.
Installation
composer require avh/glitchtip
bin/console plugin:refresh
bin/console plugin:install --activate AvhGlitchtip
Konfiguration
Nach der Installation finden Sie die Einstellungen unter Einstellungen → Erweiterungen → AvhGlitchtip in der Shopware-Administration:
- DSN – Die Data Source Name URL aus Ihrem GlitchTip-Projekt
- Environment –
production,stagingoderdev - Sample Rate – Anteil der erfassten Events (0.0 bis 1.0)
- Bot-Filterung – Automatisches Herausfiltern von Bot-generierten Fehlern
- PII (Personally Identifiable Information) – Standardmäßig deaktiviert für DSGVO-Konformität
Features
- Admin-Panel-Integration – Alle Einstellungen bequem über die GUI verwalten
- Intelligentes Sampling – Konfigurierbare Sample Rate, um die Event-Menge zu steuern
- Bot-Erkennung – Filtert automatisch Fehler, die von Crawlern und Bots verursacht werden
- DSGVO-konform – Personenbezogene Daten (IP-Adressen, User-Agents) werden standardmäßig nicht übertragen
Repository: github.com/avhulst/AvhGlitchtip
GlitchTip in Contao integrieren
Für Contao 5.3+ habe ich das AvhContaoGlitchtipBundle entwickelt. Es basiert auf dem bewährten sentry/sentry-symfony-Bundle und konfiguriert es mit intelligenten Defaults für den Einsatz mit GlitchTip.
Installation
composer require avh/contao-glitchtip-bundle
Konfiguration
In Ihrer .env.local:
GLITCHTIP_DSN=https://your-key@glitchtip.example.com/1
Das Bundle bringt eine vorkonfigurierte sentry.yaml mit:
# config/packages/sentry.yaml (wird vom Bundle bereitgestellt)
sentry:
dsn: '%env(GLITCHTIP_DSN)%'
options:
environment: '%kernel.environment%'
traces_sample_rate: 0.2
send_default_pii: false
tracing:
enabled: true
dbal:
enabled: true
twig:
enabled: true
cache:
enabled: true
http_client:
enabled: true
Features
- Performance Monitoring – 20 % Sampling für Transaktionen (konfigurierbar)
- Datenbank-Tracing – Doctrine DBAL-Queries werden als Spans erfasst
- Template-Tracing – Twig-Rendering-Zeiten werden gemessen
- Cache-Tracing – Cache-Hits und -Misses werden aufgezeichnet
- HTTP-Client-Tracing – Ausgehende HTTP-Requests werden erfasst
- GlitchTip-optimiert – Intelligente Defaults, die mit GlitchTips Feature-Set harmonieren
Repository: github.com/avhulst/AvhContaoGlitchtipBundle
Häufige Fragen (FAQ)
Ja. Da GlitchTip die offiziellen Sentry-SDKs verwendet, müssen Sie lediglich den DSN in Ihrer Konfiguration ändern. Der DSN zeigt dann auf Ihre GlitchTip-Instanz statt auf sentry.io. Am Code selbst ändert sich nichts.
Beim Self-Hosting ja – die Daten verlassen Ihre Infrastruktur nicht. Zusätzlich können Sie mit der Option `send_default_pii: false` sicherstellen, dass keine personenbezogenen Daten wie IP-Adressen oder User-Agents erfasst werden. Bei Managed-Hosting-Anbietern sollten Sie prüfen, wo die Server stehen und ob ein Auftragsverarbeitungsvertrag (AVV) vorliegt.
Alle, für die ein offizielles Sentry-SDK existiert – also unter anderem PHP, Python, JavaScript, Ruby, Go, Java, .NET, Rust und Swift. Für Symfony/Contao und Shopware gibt es mit meinen Bundles fertige Integrationen.
Das hängt von Ihrer Infrastruktur ab. Ein kleiner VPS mit 1 vCPU und 512 MB RAM verarbeitet problemlos einige tausend Events pro Tag. Für höhere Volumina können Sie Worker horizontal skalieren und PostgreSQL auf einen dedizierten Server auslagern.
Nein. Die Daten liegen in PostgreSQL und bleiben bei Updates erhalten. GlitchTip bringt automatische Datenbank-Migrationen mit, die beim Start des `migrate`-Containers ausgeführt werden. Trotzdem empfehle ich, vor jedem Update ein Datenbank-Backup zu erstellen.
Ja. Die Sentry-SDKs unterstützen nur einen DSN gleichzeitig, aber Sie können in verschiedenen Umgebungen unterschiedliche DSNs verwenden – etwa GlitchTip für Staging und Sentry für Production. So lässt sich GlitchTip risikofrei evaluieren.
Die Sentry-SDKs sind so gebaut, dass sie im Fehlerfall still versagen. Ihre Anwendung läuft normal weiter – es gehen lediglich Error-Events verloren, bis GlitchTip wieder erreichbar ist. Das Uptime-Monitoring erkennt Ausfälle allerdings nicht, wenn es auf derselben Instanz läuft.
GlitchTip ist eine Django-Anwendung und lässt sich theoretisch auch nativ mit Python, PostgreSQL und einem WSGI-Server betreiben. Docker Compose ist aber der empfohlene und bestdokumentierte Weg. Alternativ gibt es Helm-Charts für Kubernetes-Deployments.
Fazit: Wann ist GlitchTip die bessere Wahl?
GlitchTip ersetzt Sentry nicht in jedem Szenario. Aber es gibt eine klare Zielgruppe, für die es die pragmatischere Lösung ist:
- Agenturprojekte – Sie betreuen mehrere Kunden-Websites und brauchen Error-Tracking ohne monatliche Pro-Projekt-Kosten.
- DSGVO-sensible Projekte – Fehlerdaten dürfen Ihre Infrastruktur nicht verlassen.
- Kleine bis mittlere Teams – Sie brauchen die Kernfunktionen (Error-Tracking, Uptime-Monitoring, Performance-Monitoring), aber nicht das volle Sentry-Feature-Set.
- Selbsthoster – Sie betreiben bereits eigene Infrastruktur und scheuen den Wartungsaufwand nicht.
Meine Empfehlung: Starten Sie mit einer GlitchTip-Instanz auf einem kleinen VPS, binden Sie ein Testprojekt ein und evaluieren Sie, ob der Feature-Umfang für Ihre Anforderungen ausreicht. In den meisten Fällen tut er das.
Die Kombination aus echtem Open Source (MIT-Lizenz), Sentry-SDK-Kompatibilität und minimalem Ressourcenbedarf macht GlitchTip zu einer ernstzunehmenden Alternative – besonders wenn Datensouveränität und Kosteneffizienz im Vordergrund stehen.
Einen Kommentar schreiben