· Admin

GlitchTip vs Sentry: Hata İzleme Platformu Karşılaştırması

GlitchTip vs Sentry: Hata Izleme Platformu Karsilastirmasi

Production'da bir hata oldu. Kullanici bildirmeden once haberiniz olsa guzel olmaz miydi? Sentry bu isin standardi, neredeyse herkes kullaniyor veya duymus. Ama Sentry'nin self-hosted kurulumu 16GB RAM ve 12+ container istiyor. Kucuk-orta projeler icin bu fazla. GlitchTip tam bu boslugu dolduruyor: Sentry API uyumlu, acik kaynak, hafif ve 1GB RAM ile calisiyor. Bu yazida ikisini projelerimden orneklerle karsilastirdim.

Hata Izleme (Error Tracking) Nedir?

Uygulamanizda bir exception firlatildiginda, error tracking araci bu hatayi otomatik yakalayip merkezi bir panelde gosterir. Sadece hata mesaji degil, stack trace, kullanici bilgisi, tarayici, isletim sistemi, request verisi -- her seyi toplar.

Laravel'de try-catch ile yakalayamayacaginiz veya yakalamak istemediginiz hatalar icin bu araclar hayat kurtarici. 500 hatasi alan bir kullanici size bildirmez, sessizce gider. Ama Sentry veya GlitchTip aninda bildirim gonderir.

Sentry: Endustri Standardi

Sentry 2012'den beri var ve su an en yaygin kullanilan error tracking platformu. Python ile yazilmis, 90'dan fazla dili ve framework'u destekliyor.

Temel Ozellikler

  • Error Tracking: Stack trace, breadcrumbs, context bilgisi
  • Performance Monitoring: Transaction tracing, database sorgu sureleri
  • Session Replay: Kullanicinin ekranini kaydedip hatayi gorsel olarak izleme
  • Cron Monitoring: Zamanlanmis gorevlerin calisip calismadigini takip
  • Code Profiling: Performans darbogazlarini kod seviyesinde tespit
  • Distributed Tracing: Mikroservisler arasi istek takibi
  • Alerting: Slack, email, PagerDuty entegrasyonlari

Laravel Entegrasyonu

composer require sentry/sentry-laravel
// .env
SENTRY_LARAVEL_DSN=https://[email protected]/0
// config/sentry.php
return [
    'dsn' => env('SENTRY_LARAVEL_DSN'),
    'traces_sample_rate' => 0.2, // %20 transaction orneklemesi
    'profiles_sample_rate' => 0.1,
];

Kurulum bu kadar. Artisan komutuyla test edebilirsiniz:

php artisan sentry:test

Bu komut bir test exception firlatiyor ve Sentry'de gorunup gorunmedigini kontrol ediyor.

Ozel Hata Yakalama

// app/Exceptions/Handler.php veya bootstrap/app.php (Laravel 11+)
use Sentry\Laravel\Integration;

->withExceptions(function (Exceptions $exceptions) {
    Integration::handles($exceptions);
})
// Controller icinde manuel hata raporlama
use function Sentry\captureException;
use function Sentry\captureMessage;

try {
    $result = $paymentGateway->charge($amount);
} catch (\Exception $e) {
    captureException($e);
    // Kullaniciya guzel bir hata mesaji goster
    return back()->with('error', 'Odeme islenemedi.');
}

// Ozel mesaj gonderme (exception olmadan)
captureMessage('Stok miktari kritik seviyeye dustu: ' . $product->name);

Breadcrumbs ve Context

use Sentry\State\Scope;
use function Sentry\configureScope;

configureScope(function (Scope $scope): void {
    $scope->setUser([
        'id' => auth()->id(),
        'email' => auth()->user()->email,
    ]);

    $scope->setTag('payment_provider', 'iyzico');
    $scope->setExtra('order_id', $order->id);
});

Hata olustugunda Sentry panelinde kullanicinin kim oldugunu, hangi odeme saglayicisini kullandigini ve siparis ID'sini gorebilirsiniz.

Fiyatlandirma

  • Developer: Ucretsiz (5K hata/ay, 1 kullanici)
  • Team: 26$/ay (50K hata/ay, session replay)
  • Business: 80$/ay (100K hata/ay, code profiling)
  • Self-hosted: Ucretsiz ama BSL lisansi (rekabetci hosting yasak)

GlitchTip: Hafif Alternatif

GlitchTip, Sentry'nin API'siyle uyumlu acik kaynak bir alternatif. MIT lisansli, yani istediginiz gibi kullanabilirsiniz. Django + Celery ile yazilmis.

Temel Ozellikler

  • Error Tracking: Sentry SDK'lariyla tam uyumlu
  • Performance Monitoring: Temel transaction takibi
  • Uptime Monitoring: Web sitesi erisilebilirlik kontrolu (Sentry'de yok)
  • MIT Lisans: Tamamen ozgur, ticari kullanim dahil
  • Hafif: 256MB-1GB RAM yeterli

Sentry'de Olup GlitchTip'te Olmayanlar

  • Session Replay (kullanici ekran kaydi)
  • Cron Monitoring
  • Code Profiling
  • Distributed Tracing
  • Gelismis filtreleme ve arama

GlitchTip'te Olup Sentry'de Olmayanlar

  • Uptime Monitoring: Dahili site erisilebilirlik kontrolu
  • MIT Lisansi: Gercek anlamda acik kaynak
  • Minimal kaynak tuketimi: Ucuz VPS'te calisir

Self-Hosted Kurulum Karsilastirmasi

Iki platform arasindaki en buyuk fark self-hosted kurulumda ortaya cikiyor.

Sentry Self-Hosted

# Sentry icin gereken servisler (12+)
services:
  web, worker, cron          # Sentry core (3)
  postgres                   # Database
  redis                      # Cache + queue
  kafka, zookeeper           # Event streaming (2)
  clickhouse                 # Analytics DB
  snuba-api, snuba-consumer  # Query engine (2+)
  relay                      # Event ingestion
  memcached                  # Additional cache
  symbolicator               # Stack trace processing
  • Minimum RAM: 16GB (resmi onerilen)
  • Disk: 50GB+ (ClickHouse cok yer kaplar)
  • Container sayisi: 12-20 arasi
  • Kurulum: ./install.sh ile 15-20 dakika
  • Guncelleme: Bazen breaking change, dikkatli olmak lazim

GlitchTip Self-Hosted

# docker-compose.yml (minimal)
services:
  web:
    image: glitchtip/glitchtip
    ports:
      - "8000:8000"
    environment:
      DATABASE_URL: postgres://postgres:secret@postgres:5432/glitchtip
      SECRET_KEY: degistir-bunu-rastgele-uzun-string
      PORT: 8000
      GLITCHTIP_DOMAIN: https://glitchtip.example.com
      DEFAULT_FROM_EMAIL: [email protected]
      EMAIL_URL: smtp://user:[email protected]:587
      CELERY_WORKER_CONCURRENCY: 2
    depends_on:
      - postgres
      - redis

  worker:
    image: glitchtip/glitchtip
    command: ./bin/run-celery-with-beat.sh
    environment:
      DATABASE_URL: postgres://postgres:secret@postgres:5432/glitchtip
      SECRET_KEY: degistir-bunu-rastgele-uzun-string
    depends_on:
      - postgres
      - redis

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: glitchtip
      POSTGRES_PASSWORD: secret
    volumes:
      - pg-data:/var/lib/postgresql/data

  redis:
    image: valkey/valkey:7-alpine

volumes:
  pg-data:
docker compose up -d
  • Minimum RAM: 256MB (minimal), 512MB-1GB (onerilen)
  • Disk: 5-10GB yeterli
  • Container sayisi: 4
  • Kurulum: 5 dakika
  • Guncelleme: docker compose pull && docker compose up -d

Fark dramatik. GlitchTip'i Azure B1s (1 vCPU, 2GB RAM) uzerinde rahatca calistirabilirsiniz. Sentry icin minimum B2ms (2 vCPU, 8GB RAM) lazim.

Laravel ile GlitchTip Entegrasyonu

GlitchTip, Sentry SDK'lariyla uyumlu oldugu icin kurulum neredeyse ayni:

composer require sentry/sentry-laravel
// .env
SENTRY_LARAVEL_DSN=https://[email protected]/1

Tek fark DSN adresi. ingest.sentry.io yerine kendi GlitchTip sunucunuzun adresini yaziyorsunuz. Kod degisikligi sifir.

JavaScript Frontend

<script src="https://browser.sentry-cdn.com/7.x/bundle.min.js"></script>
<script>
Sentry.init({
    dsn: "https://[email protected]/2",
    tracesSampleRate: 0.2,
});
</script>

Flutter

import 'package:sentry_flutter/sentry_flutter.dart';

await SentryFlutter.init(
  (options) {
    options.dsn = 'https://[email protected]/3';
    options.tracesSampleRate = 0.2;
  },
  appRunner: () => runApp(MyApp()),
);

Ayni Sentry SDK'lari, farkli DSN. Bu gecis kolayligi GlitchTip'in en buyuk avantaji.

Karsilastirma Tablosu

Ozellik Sentry GlitchTip
Error Tracking Tam Tam
Performance Monitoring Gelismis Temel
Session Replay Var Yok
Uptime Monitoring Yok Var
Cron Monitoring Var Yok
Distributed Tracing Var Yok
Code Profiling Var Yok
SDK Uyumu Kendi SDK'lari Ayni Sentry SDK'lari
Self-hosted RAM 16GB+ 256MB-1GB
Container sayisi 12-20 4
Lisans BSL (kisitli) MIT (ozgur)
SaaS ucretsiz plan 5K event/ay 1K event/ay
SaaS ucretli 26$/ay'dan 15$/ay'dan
Kurulum suresi 15-20 dk 5 dk

Ne Zaman Sentry, Ne Zaman GlitchTip?

Sentry'yi sec eger:

  • Session Replay lazimsa (kullanicinin ne yaptigini gormek)
  • Distributed tracing gerekiyorsa (mikroservis mimarisi)
  • Buyuk ekip ve karmasik proje yonetiyorsaniz
  • SaaS kullanmak istiyorsaniz ve butce varsa
  • Code profiling ile performans analizi yapacaksaniz

GlitchTip'i sec eger:

  • Self-hosted istiyorsaniz ve sunucu kaynaklari kisitliysa
  • MIT lisans onemli ise (ticari kullanim, modifikasyon ozgurlugu)
  • Temel error tracking + uptime monitoring yeterliyse
  • Butce kisitli ise (ucuz VPS'te calisir)
  • Birden fazla kucuk-orta proje izliyorsaniz
  • KVKK uyumu icin verilerin Turkiye'de kalmasini istiyorsaniz

Ucuncu Secenek: Bugsink

Arastirma sirasinda Bugsink'e de rastladim. Tek container, SQLite destegi, gunde 1.5 milyon event isleyebiliyor. GlitchTip bile fazla geliyorsa Bugsink en minimal secim. Ama uptime monitoring ve performance tracking yok, sadece error tracking.

Grafana Entegrasyonu

GlitchTip'i Grafana ile entegre edebilirsiniz. Sentry data source olarak ekleyin, GlitchTip URL'ini verin:

Data Source Type: Sentry
URL: https://glitchtip.example.com
Auth Token: (GlitchTip profil sayfasindan)
Organization Slug: your-org

Mevcut Grafana dashboard'larinizda hata istatistiklerini, trend grafikleri ve alert kurallarini gorebilirsiniz. Zaten sunucu monitoring icin Grafana kullaniyorsaniz hata izlemeyi de ayni panele tasimak mantikli.

Sonuc

Sentry endustri standardi ve ozellik olarak rakipsiz. Ama self-hosted kurulumun agir kaynak gereksinimi ve BSL lisansi dezavantaj. GlitchTip ayni SDK'larla calisan, MIT lisansli, 4 container ile kurulabilen pratik bir alternatif. Cogu proje icin GlitchTip'in sundugu error tracking + uptime monitoring yeterli.

Pragmatik yaklasim su olabilir: development ve kucuk projelerde GlitchTip self-hosted ile baslayin. Proje buyudukce ve session replay, distributed tracing gibi gelismis ozellikler gerektiginde Sentry SaaS'a gecin. DSN degistirmek disinda kod degisikligi yok.