Sentry ile Gerçek Zamanlı Uygulama Performansı İzleme ve Analizi
İçindekiler
- Giriş
- Uygulama Performans İzleme [Application Performans Monitoring (APM)]
2.1. Neden Önemlidir? - Front‑End APM Neden Daha Önemli Hâle Gelmiştir?
- APM Araçlarının Genel Özellikleri
- Öne Çıkan Front‑End APM Araçları
5.1. Prometheus & Grafana
5.2. Zabbix
5.3. Grafana FARO
5.4. Datadog
5.5. Sentry
5.6. New Relic - Sentry
6.1. Neden Sentry Kullanılmalıdır?
6.2. Sentry Kullanımının Başlıca Avantajları
6.3. Sentry’yi Rakiplerinden Ayıran Özellikler - Self‑Hosted Sentry
7.1. Docker Kurulumu
7.2. Kaynaklara Erişimin Artırılması
7.3. Self-Hosted Sentry Kurulumunun Başlatılması
7.4. Docker Servislerini Başlatma
7.5. Çalışan Uygulamaları Görüntüleme
7.6. Yönetim Ekranına Erişim
7.7. Projeye Entegrasyon - Sentry’nin Kontrol Paneli Kullanımı
8.1. Sorunlar (Issues)
8.2. Projeler (Projects)
8.2.1. Performans ve Çökme Analizi
8.2.2. Sorunların Yönetimi
8.3. Performans (Performance)
8.4. Oturum Tekrarları (Session Replays)
8.5. Uyarılar (Alerts)
8.6. Keşfet (Discover)
8.7. Dashboards (Gösterge Paneli)
8.8. Sürümler (Releases)
8.9. İstatistikler (Statistics) - Performans İzleme
9.1. Performans İzleme Sayfası
9.2. Performans Metrikleri
9.2.1. Kullanıcı Memnuniyeti Endeksi [Application Performance Index (Apdex)]
9.2.2. Başarısızlık Oranı (Failure Rate)
9.2.3. Verim (Throughput)
9.2.4. Ortalama İşlem Süresi (Average Transaction Duration)
9.3. TTFB ve TTI: Kullanıcı Odaklı Performans Metrikleri
9.3.1 İlk Baytın Alınma Süresi [Time to First Byte (TTFB)]
9.3.2 Etkileşime Geçiş Süresi [Time to Interactive (TTI)]
9.4. Kullanıcı Memnuniyetsizliği (User Misery)
9.5. Özel Performans Metrikleri - Sonuç
- Kaynakça
1. Giriş
Günümüzde web uygulamaları, kullanıcı beklentilerinin ve rekabetin giderek artmasıyla birlikte her zamankinden daha fazla performans odaklı hâle gelmektedir. Sayfaların hızlı yüklenmesi, etkileşimli öğelerin sorunsuz çalışması ve genel kullanıcı deneyiminin en üst düzeyde tutulması, başarılı bir web projesinin temel taşları arasında yer almaktadır. Tam da bu noktada Uygulama Performans İzleme [Application Performance Monitoring (APM)] devreye girmektedir. APM, uygulamanın farklı katmanlarının izlenmesini, analiz edilmesini ve iyileştirilmesini sağlayan hayati bir unsur olarak ön plana çıkmaktadır.
Bu yazıda, özellikle ön yüz (front-end) tarafında performans yönetiminin nasıl yapılabileceği, hangi araçların katkı sağlayabileceği ve APM kavramının neden bu kadar kritik olduğu incelenecektir. Bu kapsamda, ön yüz performans takibi ve hata ayıklama alanında yaygın olarak kullanılan araçlardan biri olan Sentry’nin bu alandaki rolü ve sunduğu çözümler detaylı şekilde ele alınacaktır.
2. Uygulama Performans İzleme [Application Performans Monitoring (APM)] Nedir?
Uygulama performans izleme, uygulamanın performansını ve işleyişini izlemek, analiz etmek ve iyileştirmek amacıyla kullanılan araçlar bütünüdür. Başka bir deyişle, kullanıcı deneyimine doğrudan etki eden ön yüz (front-end) ve arka uç (back-end) katmanlarındaki hız ve verimlilik sorunlarını ortaya koymakta ve çözüm önerileri sunmaktadır.
2.1 Neden Önemlidir?
-
Hız: Her bir saniyelik gecikme, kullanıcı memnuniyetini ve dönüşüm oranlarını (conversion rate) önemli ölçüde düşürmektedir.
-
Kullanıcı Deneyimi: Yavaş yüklenen sayfalar veya takılan animasyonlar, kullanıcıların uygulamadan kopmasına yol açmaktadır.
-
Kök Neden Analizi (Root Cause Analysis): APM sayesinde sorunların kaynağı net bir şekilde görülmekte ve kalıcı çözümler üretilmektedir.
-
Önleyici Tedbirler: Sorun henüz geniş kitlelere yansımadan, uyarı mekanizmaları ile hızlıca müdahale edilebilmektedir.
3. Front‑End APM Neden Daha Önemli Hâle Gelmiştir?
Geleneksel APM çözümleri çoğunlukla CPU, bellek gibi sunucu (server) kaynaklarının izlenmesine odaklanmaktadır. Oysa günümüzün zengin etkileşimli web uygulamalarında, ön yüz (front-end) katmanının karmaşıklığı giderek artmaktadır. Bu nedenle front-end APM’in önemi belirgin şekilde artmıştır. Özellikle aşağıda sıralanan etmenler bu artışı desteklemektedir:
-
Tek Sayfa Uygulamalar [Single Page Application (SPA)] sayesinde uygulamanın büyük bölümü istemci tarafında işlenmektedir. Bu da, JavaScript kodunun hacmini ve Belge Nesne Modeli [Document Object Model (DOM)] manipülasyonunu artırmaktadır.
-
Kullanıcıların anlık tepki beklentisi, milisaniyeler düzeyindeki gecikmelerin bile memnuniyetsizliğe yol açmasına neden olmaktadır.
-
Sayfa yükleme süreleri ve etkileşim gecikmeleri kullanıcı deneyimini doğrudan etkilemektedir; dolayısıyla etkileşimli öğelerin sorunsuz çalışması sağlanmalıdır.
-
Önbellek (cache) kullanımı, asenkron veri çekme (AJAX) ve dinamik içerik yükleme gibi teknikler, performans darboğazlarını görünmez kılabilmektedir; bu darboğazların tespiti APM araçlarıyla mümkün olmaktadır.
-
Ağ (network) gecikmeleri ve kaynak yükleme süreleri, front-end performansını belirleyen kritik faktörlerdir ve dikkatle izlenmelidir.
Tüm bu maddeler doğrultusunda, front-end APM sistemleri; kullanıcıya yansıyan gerçek hız ve tepki sürelerini ölçerek performans sorunlarının kaynağını net bir şekilde ortaya koymaktadır.
4. APM Araçlarının Genel Özellikleri
APM araçları, uygulama performans yönetimini kolaylaştırmak amacıyla aşağıdaki temel özellikleri sunmaktadır:
-
Gerçek Zamanlı İzleme: Kullanıcı etkileşimleri sonucu oluşan isteklerin yanıt süreleri ve ağ gecikmeleri anlık olarak yakalanmaktadır.
-
Hata İzleme ve Raporlama: JavaScript veya diğer dillerde meydana gelen hatalar otomatik olarak kaydedilmekte ve detaylı raporlar oluşturulmaktadır.
-
Kök Neden Analizi (Root Cause Analysis): Performans sorunlarının hangi dosya, hangi API isteği veya hangi kullanıcı etkileşimi ile ilgili olduğu tespit edilmektedir.
-
Ölçüm ve Metrikler: TTFB (Time to First Byte), TTI (Time to Interactive), Apdex (Application Performance Index) gibi kullanıcı odaklı metrikler izlenmektedir.
-
Uyarı Mekanizmaları (Alerts): Tanımlı eşikler aşıldığında e‑posta, SMS veya Slack gibi mesajlaşma platformları üzerinden kanallar aracılığıyla ekip uyarılmaktadır.
-
Entegrasyon Desteği: React, Angular, Vue.js gibi çerçeveler ve Node.js, Python, Java gibi arka uç teknolojileriyle kolay entegrasyon sağlanmaktadır.
-
Dashboard ve Görselleştirme: Performans eğilimleri, hata oranları ve iş yükü metrikleri interaktif panolar (dashboard) üzerinde görselleştirilmektedir.
-
Ölçeklenebilirlik: Küçük projelerden büyük kurumsal uygulamalara kadar farklı ölçeklerde sorunsuz çalışmaktadır.
-
Raporlama ve Arşiv: Geçmiş metrik verileri saklanmakta, raporlanmakta ve zaman içindeki değişimler analiz edilmektedir.
5. Öne Çıkan Front‑End APM Araçları
Front-end performans izleme ve hata takibi alanında sıkça tercih edilen araçlar bu bölümde detaylıca ele alınmıştır. Her bir çözümün odak noktası, temel özellikleri ve ideal kullanım senaryoları açıklanmıştır.
5.1 Prometheus & Grafana
Odak Noktası: Sistem ve servis izleme & veri görselleştirme
Sunduğu Özellikler:
-
Prometheus: Veri tabanı kullanarak sistem ve servis metriklerini toplama, sorgulama ve saklama.
-
Grafana: Farklı veri kaynaklarından gelen metrikleri görselleştirerek, özelleştirilebilir dashboard’lar oluşturma.
-
Alarm Mekanizmaları: Tanımlı eşik değerleri aşıldığında anlık uyarılar gönderme.
Uygun Olduğu Proje Türleri:
-
Altyapı ve sistem metriklerinin izlenmesi gereken projeler.
-
Node.js servisleri, Kubernetes pod’ları veya API çağrıları gibi dinamik ortamlarda performans takibi yapılması gereken projeler.
5.2 Zabbix
Odak Noktası: Ağ ve altyapı izleme
Sunduğu Özellikler:
-
Açık kaynaklı ağ izleme: sunucuların, ağ cihazlarının ve uygulamaların performansını takip etme.
-
Altyapı seviyesinde ayrıntılı metrik toplama, grafikler ve raporlama.
-
Uyarı kuralları ile kritik durumlarda önceden bildirim gönderme.
Uygun Olduğu Proje Türleri:
-
Büyük ölçekli ağ ve veri merkezi altyapısının izlenmesi gereken projeler.
-
Fiziksel/sanal sunucular, yönlendiriciler, switch’ler gibi cihaz performansını sürekli izleme gereksinimi olan organizasyonlar.
5.3 Grafana FARO
Odak Noktası: APM için gerçek zamanlı performans izleme & veri görselleştirme
Sunduğu Özellikler:
-
Kapsamlı Uygulama İzleme: API yanıt süreleri, hata oranları ve diğer performans metriklerini eş zamanlı olarak izler.
-
Dinamik Dashboard’lar: Özelleştirilebilir, etkileşimli panolarla verileri görselleştirir.
-
Tahmine Dayalı Analiz: Makine öğrenimi teknikleriyle potansiyel performans sorunlarını önceden tespit eder.
-
Alarm ve Uyarı Mekanizmaları: Kritik eşik aşımlarında gerçek zamanlı bildirim gönderir.
Uygun Olduğu Proje Türleri:
-
APM araçlarıyla entegrasyon ve gerçek zamanlı performans görselleştirmesi istenilen projeler.
-
Performans sorunlarını önceden tespit ederek hızlıca müdahale etmek isteyen geliştirme süreçleri.
5.4 Datadog
Odak Noktası: Uçtan uca uygulama performansı ve altyapı yönetimi
Sunduğu Özellikler:
-
Gerçek zamanlı uygulama performans takibi.
-
Yanıt süreleri, kullanıcı trafiği ve hata oranlarının görselleştirilmesi.
-
Geniş entegrasyon desteği ile uçtan uca izleme olanağı.
Uygun Olduğu Proje Türleri:
- Bulut tabanlı uygulamalar ve mikroservis mimarilerinde kapsamlı performans ile altyapı takibi ihtiyacı duyan ekipler.
5.5 Sentry
Odak Noktası: Uygulama performansı ve hata izleme (özellikle front-end ve back-end seviyesinde)
Sunduğu Özellikler:
-
Gerçek zamanlı performans takibi: Kullanıcı deneyimini etkileyen yavaşlıkları ve hataları tespit etme.
-
Otomatik hata yakalama: JavaScript, React, Next.js, Node.js gibi teknolojilerde runtime hataları anlık olarak loglama.
-
Trace ve Replay özelliğiyle kullanıcı hareketlerini izleyebilme.
-
Geliştiricilere özel hata detayları (stack trace, kullanıcı bilgisi, tarayıcı tipi vb.) sunar.
-
E-posta gibi entegrasyonlarla anlık uyarılar gönderme.
Uygun Olduğu Proje Türleri:
-
Performans ve hata takibinin kritik olduğu üretim ortamları.
-
React, Vue, Angular gibi modern front-end kütüphanelerini kullanan projeler.
-
Node.js, Python, Java gibi arka uç teknolojileriyle geliştirilmiş uygulamalar.
5.6 New Relic
Odak Noktası: Uygulama performansı ve kullanıcı deneyimi analizi
Sunduğu Özellikler:
-
Detaylı performans metrikleri ve kullanıcı etkileşim takibi.
-
Sorun kök neden analizleri için güçlü görselleştirmeler.
-
Dağıtım bazlı (release) performans izleme ve alarmlar.
Uygun Olduğu Proje Türleri:
-
Hızlı performans sorun tespiti ve çözümü gereken projeler.
-
Özellikle mikro servis tabanlı ve kullanıcı odaklı deneyim optimizasyonu isteyen ekipler.
Bu yazıda, ağ ve altyapı izleme konusunda Zabbix gibi çözümler önemli bir yer tutsa da; kullanıcı deneyimi, uygulama performansı ve hata takibi gibi yazılım seviyesindeki ihtiyaçlar doğrultusunda Sentry APM tercih edilmiştir. Yazının devamında Sentry’nin sunduğu özellikler ve hangi projelerde etkili olduğu detaylı şekilde ele alınacaktır.
6. Sentry
Sentry, uygulamalarınızda ortaya çıkan hata ve performans sorunlarını gerçek zamanlı olarak izleyen, raporlayan ve kök neden analizleriyle hızlı çözümler sunan bir Application Performance Monitoring (APM) platformudur. JavaScript, Python, Java, PHP, .NET, Node.js, React, Angular gibi pek çok dil ve framework ile uyumlu çalışarak; hem hata yakalama (error tracking) hem de performans izleme (performance monitoring) ihtiyaçlarını tek bir araçta birleştirir [1].
6.1 Neden Sentry Kullanılmalıdır?
-
Gerçek Zamanlı Hata İzleme: JS hatalarından sistem çökmesine kadar tüm istisnaları anında yakalar ve ayrıntılı stack trace’ler sunar.
-
Performans Darboğazlarının Tespiti: API yanıt süreleri, sayfa yükleme ve işlem süreleri gibi metrikleri anlık olarak takip ederek yavaş noktaları belirler.
-
Kök Neden Analizi: Hatanın hangi sürümde, hangi kod satırında ve hangi kullanıcı oturumunda meydana geldiğini gösterir.
-
Geniş Entegrasyon Desteği: Slack, Jira, GitHub gibi işbirliği araçları ve popüler CI/CD çözümleriyle kolayca entegre olur.
-
Self‑Hosted & SaaS Seçenekleri: Hem bulutta hem de altyapıda çalıştırılabilecek esneklik sunar.
-
Kullanıcı Segmentasyonu: Hataları ve performans verilerini kullanıcı gruplarına veya oturum özelliklerine göre filtreleyip önceliklendirmeye yardımcı olur.
6.2 Sentry Kullanımının Başlıca Avantajları
-
Projelerde sorunlara hızlı geri bildirim sağlanması: Gerçek zamanlı hata bildirimleriyle sorunların detaylı analizi yapılmakta ve kullanıcı deneyimi korunmaktadır.
-
Kod dağıtımı sırasında risklerin azaltılması: Kod dağıtımında oluşabilecek sorunlar tespit edilerek, bu sorunların kullanıcıları etkilemeden önce fark edilmesi sağlanmaktadır.
-
Performans yönetiminin gerçek zamanlı yapılabilmesi: Performans darboğazları tespit edilmekte ve bu darboğazların giderilmesi için etkili adımlar atılmaktadır.
-
Kolay anlaşılabilir bir yapı sunulması: Kullanıcı dostu arayüzü ve detaylı raporları sayesinde, teknik karmaşıklığın azaltılması ve sorunların daha hızlı çözülmesi mümkün kılınmaktadır.
Bu avantajlar sayesinde, Sentry hem küçük hem de büyük ölçekli projelerde yazılım kalitesini artırmaya yönelik etkili bir araç olarak öne çıkmaktadır.
6.3 Sentry’yi Rakiplerinden Ayıran Özellikler
Sentry, hata izleme ve performans izleme alanında sunduğu birçok özellik ile rakiplerinden ayrılmaktadır:
-
Gerçek Zamanlı Hata ve Performans İzleme: Uygulamalarda meydana gelen hatalar ve performans sorunları anında tespit edilerek hızlı geri bildirim sağlanmaktadır.
-
Zengin Entegrasyon Desteği: JavaScript, Python, Java, PHP, .NET, Node.js, React, Angular gibi birçok programlama dili ve framework ile uyum sağlanmakta, ayrıca Jira, Slack, GitHub gibi popüler araçlarla entegrasyon imkânı sunulmaktadır.
-
Derinlemesine Analiz ve Hata İzolasyonu: Hataların meydana geldiği kod satırları, kullanıcı davranışları ve sistem durumları detaylı bir şekilde raporlanarak hataların kök nedenleri hızla tespit edilmektedir.
-
Self-Hosted ve SaaS Seçenekleri: Sentry, SaaS (Software as a Service) ve Self-Hosted olmak üzere iki farklı kullanım seçeneği sunmaktadır.SaaS modeli, bulut tabanlı bir yapı sunarak hızlı başlangıç ve düşük operasyonel bakım avantajı sağlarken; Self-Hosted seçeneği, uygulamanın kurumların kendi sunucularında barındırılmasına olanak tanıyarak veri güvenliği ve altyapı kontrolü gibi ihtiyaçlara uygun esneklik sunmaktadır.
-
Performans İzleme ve APM: Performans sorunları analiz edilerek, uygulama performansının optimize edilmesine olanak tanıyan Application Performance Monitoring (APM) özelliği sunulmaktadır.
-
Kullanıcı Dostu Arayüz: Basit ve etkili arayüzü ile raporların kolayca anlaşılması ve tüm ekibin hızlı bir şekilde uyum sağlaması sağlanmaktadır.
-
Ölçeklenebilirlik: Küçük ölçekli projelerden büyük kurumsal uygulamalara kadar geniş bir yelpazede uyumluluk ve yüksek performans sunulmaktadır.
-
Açık Kaynak Topluluk Desteği: Açık kaynak topluluğu tarafından desteklenen Sentry, sürekli güncellenen bir platform ve geniş bir bilgi havuzu sunmaktadır.
Bu özellikler, Sentry’nin yalnızca bir hata izleme aracı değil, aynı zamanda kapsamlı bir performans ve kullanıcı deneyimi yönetim platformu olmasını sağlamaktadır[2].
7. Self‑Hosted Sentry
Yukarıda Sentry’yi rakiplerinden ayıran özellikler arasında Self-Hosted seçeneği kısaca belirtilmişti. Bu bölümde, Self-Hosted kurulumun sunduğu avantajlar ve tercih edilme sebepleri daha ayrıntılı olarak ele alınmaktadır[3].
-
Self-Hosted Sentry, Sentry’yi kurumun kendi altyapısında çalıştırma imkânı sunar. Sentry’nin bulut üzerinde yönetilen servisi olan SaaS (Software as a Service) hızlı başlangıç ve düşük operasyonel bakım gerektirirken; Self-Hosted seçeneği, tüm Sentry özelliklerinin kurum sunucularında barındırılmasına olanak tanır.
-
Bu seçenek, özellikle veri gizliliği ve güvenliği konusunda hassasiyet taşıyan kuruluşlarca tercih edilir. Kendi sunucularda Sentry’nin barındırılması, verilerin tamamen kurum kontrolünde kalmasını sağlar. Kurumsal ağ içi kullanım ve özel güvenlik politikalarına tam uyum imkânı sunulur. Ayrıca, altyapı ve kaynak kullanımı üzerinde tam denetim kurularak ihtiyaçlara göre özelleştirme yapma esnekliği sağlanır.
Aşağıda Self-hosted Sentry kurulumunun adımları açıklanmaktadır:
7.1. Docker Kurulumu
Sentry Self‑Hosted’i çalıştırmak için öncelikle bilgisayarda Docker Engine ve Docker Compose’un kurulu olması gerekir.
-
Docker Engine kurulumu:
“https://docs.docker.com/engine/install/” adresindeki resmi yönergelerin izlenmesi gerekmektedir . -
Docker Compose kurulumu:
“https://docs.docker.com/compose/install/” sayfasındaki adımların uygulanması gerekmektedir.Kurulum tamamlandığında terminalde
“docker –version” ve “docker-compose –version”
komutlarıyla sürümler doğrulanabilir.
7.2. Kaynaklara Erişimin Artırılması
Self-Hosted Sentry’nin stabil ve kesintisiz çalışabilmesi için kaynaklara erişimin artırılması kritik öneme sahiptir. Kaynak erişimi en üst seviyeye çıkarılmadığı takdirde, işlemci veya bellek sınırlamalarına bağlı olarak performans düşüşleri, uygulama çökmeleri veya veri kaybı gibi çeşitli hatalar oluşabilir. Ayrıca, bu kurulumun yüksek miktarda kaynak tüketebileceği ve cihazların ciddi şekilde ısınmasına neden olabileceği de göz önünde bulundurulmalıdır. Şekil 1’de gerekli kaynak kullanımını gösterilmiştir.
Şekil 1: Docker Kaynak Düzenleme Ekranı
7.3. Self-Hosted Sentry Kurulumunun Başlatılması
Kurulumuna başlamak için Sentry’nin resmi self-hosted deposunun (repository) yerel makineye klonlanması gerekmektedir. Klonlama işlemi tamamlandıktan sonra, kurulum komut dosyaları çalıştırılarak Self-Hosted Sentry’nin kurulumu sağlanmaktadır.
Kurulum tamamlandıktan sonra, terminalde bir kullanıcı oluşturma ekranının görüntülenmesi beklenmektedir. Bu adımda, Sentry Self-Hosted üzerinde oturum açılabilmesi ve projelerin yönetilebilmesi için bir kullanıcı hesabının oluşturulması gerekmektedir. Kullanıcı oluşturma işlemi tamamlandıktan sonra, Sentry kullanıma hazır hale gelecektir. Şekil 2’de terminal başlatma ekranı gösterilmiştir.
Sentry Self-Hosted üzerinde giriş yapmak için gerekli oturum bilgileri doldurularak kullanıcı hesabının oluşturulması sağlanmaktadır [4].
Şekil 2: Self-Hosted Terminal Başlatma Ekranı
7.4. Docker Servislerini Başlatma
Sentry Self-Hosted gibi uygulamaların çalıştırılmaya hazır hale getirilebilmesi için Docker servislerinin başlatılması gerekmektedir. Bu işlem ile projenin tüm bağımlılıklarının ve hizmetlerinin doğru bir şekilde çalışır duruma getirilmesi sağlanmaktadır. Docker üzerinde servislerin başlatılması için, terminalde “docker compose up –d” komutunun kullanılması önerilmektedir.
Bu komut ile docker-compose.yml dosyasında tanımlı tüm servislerin arka planda çalışacak şekilde başlatılması sağlanmaktadır.
Docker servisleri başarıyla başlatıldıktan sonra, çalışmakta olan uygulamaların görüntülenmesi ve yönetilmesi için Docker Desktop (Docker Engine Masaüstü Uygulaması) aracının kullanılması gerekmektedir. Şekil 3’de bu gösterim örneklenmiştir.
Şekil 3: Docker Konteyner Kontrolünün Sağlandığı Terminal Ekranı
7.5. Çalışan Uygulamaları Görüntüleme
Docker Desktop uygulaması açıldığında, "Containers" sekmesi aracılığıyla çalışmakta olan tüm konteynerlerin görüntülenmesi sağlanmaktadır. Bu liste aracılığıyla her bir konteynerin adı, durumu ve hangi portlarda çalıştığı bilgisi görüntülenebilmektedir. Sentry Self-Hosted kurulumu sırasında, başlatılan servisler arasında nginx-1 adlı bir konteynerin bulunduğunun fark edilmesi beklenmektedir. Şekil 4’te bu ekran gösterilmiştir.
Şekil 4: Docker Desktop Konteyner Kontrol Ekranı
Sentry kurulum sürecinde çok sayıda imajın ayağa kalkması, kaynak kullanımı ve sistem performansı açısından endişe verici bir durum oluşturmaktadır. Bu, özellikle bellek ve işlemci yükünde artışa neden olarak uygulamanın istikrarını etkileyebilmektedir. Daha optimize bir kurulum süreci veya kaynak yönetimi mekanizması sağlanması faydalı olacaktır.
7.6. Yönetim Ekranına Erişim
nginx-1 konteynerinin çalıştığı portlar genellikle 9000:80 şeklinde görülmektedir. Bu yapılandırma, konteyner içerisindeki 80 numaralı portun, yerel makinedeki 9000 numaralı porta yönlendirilmiş olduğunu ifade etmektedir. Sentry’nin yönetim ekranına erişim sağlanması için aşağıdaki adımların izlenmesi gerekmektedir:
1. nginx-1 konteyneri, Docker Desktop üzerinde bulunmalıdır.
2. Port bilgisi kısmında belirtilen 9000 numaralı porta erişim sağlanmalıdır.
3. Tarayıcı, otomatik olarak http://localhost:9000/auth/login/sentry/ adresini açacaktır ve böylece Şekil 5’teki gibi yönetim ekranı görüntülenecektir.
Şekil 5: Self-Hosted Sentry Giriş Ekranı
Sentry Self-Hosted yönetim ekranına erişim sağlandıktan sonra, kurulum sırasında oluşturulmuş olan kullanıcı adı ve parola ile giriş yapılması gerekmektedir. Bu bilgiler kullanılarak oturum açıldığında, Sentry’nin yapılandırılması ve projelerin izlenmeye başlanması mümkün hale getirilecektir. Şekil 6’da Issues ekranı örneklenmiştir.
Şekil 6: Sentry Issues Ekranı
7.7. Projeye Entegrasyon
Uygulamada Sentry APM kullanılarak performans izleme işlemlerine başlanabilmesi için öncelikle gerekli olan Sentry kütüphanesi projeye eklenmelidir. Bu adım, projenin APM özelliklerini kullanabilmesi için temel bir işlem olarak değerlendirilmektedir.
Sentry’nin @sentry/wizard paketinin en güncel sürümünün indirilmesiyle, APM entegrasyonu için gerekli yapılandırmalar otomatik olarak gerçekleştirilebilir. Özellikle Next.js gibi popüler framework’ler kullanıldığında, APM kurulum sürecinin hızlı ve sorunsuz şekilde tamamlanması sağlanmaktadır.
Bu adım tamamlandıktan sonra, projeye Sentry APM’in entegre edilmesi için yapılandırma dosyalarının düzenlenmesine başlanmalıdır. Düzenleme tamamlandığında, uygulama performansının detaylı bir şekilde izlenmesi ve analiz edilmesi mümkün hale gelecektir.
Sentry APM entegrasyonu sırasında kurulum adımlarında, "Are you using Sentry SaaS or self-hosted Sentry?" sorusunun görüntülenmesi beklenmektedir. Bu adımda, Sentry’nin hangi türünün kullanılacağı seçilmelidir.
Sentry’nin yerel (Self-Hosted) sunucu altyapısında çalıştırılacak olması durumunda, ilgili seçeneğin etkinleştirilmesi gerekmektedir. Şekil 7’de entegre etme sayfası gösterilmiştir.
Şekil 7: Projeye Self-Hosted Sentry’yi Entegre Etme Terminal Sayfası
Self-Hosted seçeneği belirlendikten sonra, Docker üzerinde çalışan nginx konteynerinin port bilgisi terminalden girilmelidir. Bu işlemler ile Sentry APM’in self-hosted ortamına uygun şekilde yapılandırılması sağlanmaktadır.
Proje bağlaması yapıldıktan sonra kurulumun başarılı bir şekilde gerçekleşip gerçekleşmediğini doğrulamak için bir Example Page oluşturulması önerilmektedir. Bu sayfa, Sentry’nin uygulamada hataları ve performans verilerini doğru bir şekilde izleyip izlemediğini kontrol etmek için faydalı bir araçtır.
Tüm bu işlemler tamamlandıktan sonra, Sentry projeye başarıyla entegre edilmiş olur ve uygulama hataları ile performans verilerinin izlenmesine hazır hâle gelir.
8. Sentry’nin Kontrol Paneli Kullanımı
Sentry’nin dashboard (gösterge paneli) özellikleri, uygulama performansının kapsamlı bir şekilde izlenmesini ve analiz edilmesini sağlamaktadır. Her panel, birden fazla widget (bileşen) içerebilmekte ve her bileşen, belirli veri setlerini görselleştirmektedir. Sentry araçları, performans eğilimlerini, hata oranlarını ve diğer kritik metrikleri gerçek zamanlı olarak izlemektedir. Ayrıca, potansiyel problemler hızlıca tespit edilmekte ve çözüm geliştirilmesine imkân tanınmaktadır. Aşağıda, Self‑Hosted APM’de aktif olarak kullanılabilecek sayfalar demo projeler ışığında gösterilmektedir.
8.1 Sorunlar (Issues)
Issues (Sorunlar) uygulamalardaki hata ve istisnaları izlemek, yönetmek ve çözmek için kullanılır. Aşağıda bu sayfada sunulan temel işlevler verilmiştir:
-
Sorun Takibi: Hata ve istisnalar liste halinde sunulmakta, her bir sorunun türü, sıklığı ve etkilenen kullanıcı sayısı görüntülenmektedir.
-
Kategorize Etme: Benzer özeliklere sahip sorunlar gruplandırılmaktadır.
-
Hata Yönetimi: Sorunlar işaretlenebilmekte, çözüm önerileri eklenebilmekte ve belirli hatalar ekip üyelerine atanarak takip edilebilmektedir.
Şekil 8’de bu sayfaya ait bir örnek arayüz gösterilmektedir.
Şekil 8: Sorunlar Sayfasındaki Hata Görme Ekranı
8.2 Projeler (Projects)
Projeler sayfası, Sentry ile izlenen projeleri birbirinden ayıran bir paneldir. Bu panel üzerinden, takımlara göre hangi projelere yetki vereceğini belirlemek mümkündür. Ayrıca, projelerle ilgili çeşitli performans ve hata verilerine erişim sağlanmaktadır.
Şekil 9: Bütün Projelerin Listelendiği Projeler Sayfası
Her projenin başlığı altında, o projede bugüne kadar oluşan hata sayısı ve toplam işlem (transaction) sayısı gibi temel bilgiler görüntülenir. Bunun yanı sıra, sayfanın ortasında yer alan grafikler Şekil 9’da da görüldüğü gibi projedeki hata ve işlem sayılarını belirli tarih ve saat aralıklarına göre görselleştirir; böylece daha detaylı bir analiz imkânı sunar. Aşağıda “Performans ve Çökme Analizi” başlığı altında bu analiz yöntemleri ayrıntılı olarak ele alınmaktadır.
8.2.1 Performans ve Çökme Analizi
Performans ve çökme analizi kapsamında projelerin performansına dair önemli metrikler, çökme yaşanmayan oturumların (session) yüzdesi ve kullanıcı bazında çökme yaşanmayan oranları gibi bilgiler, özel araçlar üzerinden sunulur. Ayrıca, uygulamanın kaç kez yayınlandığı (release) gibi veriler de takip edilebilir.
Sentry, CI/CD araçlarıyla entegre olarak projelerdeki yayın (deploy) işlemlerini de izler. Bu entegrasyon sayesinde, belirli bir yayınla ilişkili sorunları tespit etmek veya performans değişikliklerini analiz etmek mümkündür. Örneğin, GitHub Actions, Jenkins, GitLab CI/CD gibi araçlarla Sentry entegrasyonu sağlanarak, yeni bir sürüm yayınlandığında bu bilgilerin Sentry’ye iletilmesi ve sürüme özel metriklerin görüntülenmesi mümkün olmaktadır. Böylece, hem performansı hem de kullanıcı deneyiminin ölçülmesi kolaylaşmaktadır.
8.2.2 Sorunların Yönetimi
Proje detayları bölümünün alt kısmında, tüm sorunların listelendiği bir tablo bulunur. Bu tabloda:
-
Olay Sayısı (Events): Belirli bir hatanın kaç kez oluştuğunu,
-
Etkilenen Kullanıcılar (Users): Bu hatadan etkilenen kullanıcıların sayısını,
-
Sorumlu Kişi (Assignee): Hatanın çözümünden sorumlu olan kişiyi gösterir.
Tabloyu daha etkili bir şekilde kullanmak için projeler, tarih aralıkları veya belirli kriterlere göre filtreleme yapılabilir. Bu sayede, sorunların yönetimi ve çözüm süreçleri daha düzenli ve hızlı bir şekilde gerçekleştirilebilir.
8.3 Performans (Performance)
Sentry’deki Performance sayfası, işlemler veya eğilimleri görselleştiren grafiklerle birlikte, işlemlerin detaylı olarak incelenebileceği tabloları içermektedir. Bu sayfada yer alan temel işlevler aşağıda açıklanmıştır.
İşlem İzleme: Performans sayfası, uygulamadaki işlemleri izlemeye; işlem süreleri, yanıt süreleri ve performans eğilimleri hakkında bilgi edinmeye imkân tanır. Her işlem, belirli bir kullanıcı etkileşimini veya sistem sürecini temsil eder; böylece performanstaki darboğazlar (bottleneck) kolayca tespit edilebilir.
Metriklerin Görselleştirilmesi: Sayfa, işlem süreleri, yanıt süreleri, veri tabanı sorgu süreleri ve diğer performans metriklerini grafikler ve çizelgeler şeklinde sunar.
İşlem Alanı: Performans bölümünden belirli bir proje seçilerek, o projede yer alan yavaş işlemlerin detaylarına ulaşılabilmektedir.
Metriklerle Analiz: Kullanıcı Memnuniyetsizliği (User Misery), Uygulama Performans Endeksi (Apdex) ve Hata Oranı (Failure Rate) gibi metrikler üzerinden işlemler analiz edilebilmektedir.
Yavaş İşlemler: Yavaş işlem listesinde yer alan bir işlem seçilerek, işlem sürelerinin ayrıntıları detaylı şekilde incelenebilmektedir.
Bu özellikler, uygulamanın performansını iyileştirmek ve kullanıcı deneyimini optimize etmek için kritik bilgiler sunar.
8.4 Oturum Tekrarları (Session Replays)
Oturum tekrarı (Session Replay) özelliği, kullanıcı oturumlarının yeniden oynatılmasını sağlayarak uygulamadaki kullanıcı deneyimini daha iyi anlamaya ve iyileştirmeye olanak tanır. Aşağıda bu başlık altında hem oturum ayrıntıları hem de replay’in sunduğu faydalar ayrıntılı olarak ele alınacaktır.
Bu sayfa, projelere, sürümlere ve tarihlere göre kullanıcı oturumlarının filtrelenmesini sağlamaktadır. Bu özellik sayesinde, belirli bir zaman dilimi veya proje bazında kullanıcı oturumları detaylı bir şekilde analiz edilebilmektedir. Aşağıda hem oturum ayrıntıları hem de Replay’in sunduğu faydalar ayrıntılı olarak ele alınacaktır. Bu ekranın genel görünümü Şekil 10’da gösterilmektedir.
Şekil 10: Sentry Session Replay Sayfası
Oturum Ayrıntıları
Şekil 10’da yer alan her oturum, bir kullanıcının uygulama içerisindeki etkileşimlerini ve davranışlarını detaylı bir şekilde içermektedir:
-
Kullanıcı Bilgileri: Kullanıcının e posta adresi, oturum sırasında ziyaret ettiği URL’ler ve diğer temel kimlik bilgilerinin bir arada sunulmasıdır.
-
Cihaz ve Tarayıcı Bilgileri: Kullanıcının işlem gerçekleştirdiği cihazın işletim sistemi ve tarayıcı sürümü gibi ayrıntılar (Örneğin macOS 10.15.7, Chrome 113) gösterilir. Bu veriler, hataların veya performans sorunlarının belirli platformlara özgü olup olmadığını analiz etmek için önem taşımaktadır.
-
Oturum Süresi: Kullanıcının oturum boyunca ne kadar süre aktif kaldığı bilgisi verilir (Örneğin 18 saniye). Bu süre, kullanıcı deneyiminin akıcılığını ve potansiyel bekleme noktalarını değerlendirmede kullanılır.
-
Hata Sayısı: Oturum sırasında meydana gelen toplam hata adeti (Örneğin 1 hata) gösterilir. Bu metrik, o oturumun kararlılık durumunu anlamaya yardımcı olur.
-
Aktivite Seviyesi: Kullanıcının oturum süresince yaptığı işlemler ve genel etkinlik durumu.
-
Hassas Verilerin Korunması (Data Privacy Protection)
Şekil 11: Session Replay Alanındaki Kullanıcı Aktivitesini Oynatma Ekranı
Sentry, oturum tekrarları sırasında hassas verilerin gizliliğini sağlamak için özel yapılandırmalar sunmaktadır. Şekil 11’de bu ekran gösterilmiştir. Projemize eklenen konfigürasyon dosyası üzerinden yapılabilecek bu ayarlar, kullanıcı ekranında görünen hassas bilgilerin şifrelenmesini veya gizlenmesini sağlamaktadır. Bu sayede, oturum tekrarları sırasında oluşabilecek gizlilik riskleri en aza indirgenmiş olur. Örneğin: Kredi kartı bilgileri, şifreler gibi hassas alanlar şifrelenerek görüntülenir maskedFields ve blockAllMedia gibi ayarlar, hangi verilerin maskelenip tamamen engelleneceğini belirler.
Oturum Tekrarının Faydaları
Oturum tekrarı özelliği kullanıcı davranışlarını, hataları ve etkileşimleri detaylı bir şekilde incelemek için oldukça yararlı bir araçtır. Bu özellik sayesinde:
-
Kullanıcıların uygulamayla nasıl etkileşimde bulunduğu gözlemlenebilir,
-
Hatalar tespit edilerek çözüm önerileri geliştirilebilir,
-
Kullanıcı deneyimini iyileştirmek amacıyla doğru verilere dayalı aksiyonlar alınabilir.
8.5 Uyarılar (Alerts)
Sentry’deki uyarılar sayfası mevcut olan uyarı kurallarını görüntülemek ve yeni kurallar oluşturmak için kullanılır. Şekil 12’de görüldüğü gibi “Uyarı Kuralları” sekmesi, mevcut uyarı kurallarınızı, geçerli durumları, proje, ekip ve oluşturulma tarihleriyle birlikte görüntüler.
Şekil 12: Sentry Uyarılar Sayfası
Ayrıca, sayfada uyarıların ne zaman tetiklendiği ve ne kadar süre aktif olduğu gibi bilgiler içeren bir listenin bulunduğu geçmiş (history) sekmesi bulunur. Sentry, ekiplerin hataları hızlıca fark edebilmesi için güçlü bir bildirim sistemi sunar. Sentry, Slack gibi popüler iletişim uygulamalarıyla entegre olabilir ve ciddi hatalar veya önceden tanımlanmış kurallar tetiklendiğinde bildirim göndererek geliştiricilerin anında haberdar olmasını sağlar. Bu özellik sayesinde projelerde, sorunları mümkün olan en kısa sürede çözmek için harekete geçilebilir. Uyarılar sayfasından varsayılan bir uyarı seçilebildiği gibi ekip ihtiyaçlarına göre özel uyarılar da oluşturulabilmektedir. Üç farklı uyarı tipi bulunur. Bunlar;
-
Issue Alerts (Sorun Uyarıları): Bir projede belirtilen kriterlere uyan herhangi bir sorun ortaya çıktığında tetiklenir.
-
Metric Alerts (Metrik Uyarıları): Hata veya işlem olayları için belirlenen bir metriğin aşıldığında tetiklenir.
-
Uptime Monitoring Alerts (Çalışma Süresi İzleme Uyarıları): Bir HTTP denetim isteği, çalışma süresi kriterlerine uymadığında tetiklenir. Bu uyarılar, belirli bir URL’nin sürekli olarak erişilebilir olmasını sağlamak amacıyla kullanılır. İsteğe uygun bir şekilde sayfada bulunan uyarılar sessize alınabilir veya devre dışı bırakılabilmektedir.
8.6 Keşfet (Discover)
Sentry’nin Discover özelliği, projeler ve ortamlar genelinde meta verileri sorgulamanıza olanak tanıyan güçlü bir sorgu motorudur. Discover, hatalarınızı detaylandırarak farklı ortamlar arasındaki verileri görünür hâle getirir, sistem sağlığı hakkında içgörüler sağlar ve önemli iş sorularına yanıt bulmanıza yardımcı olur.
Sentry’nin Discover özelliğinin sunduğu gelişmiş sorgu yetenekleri kapsamında sunduğu başlıca işlevler aşağıda açıklanmaktadır.
Ana Sayfa ve Sorgu Yönetimi
-
Sorgu Oluşturucu: Yeni sorgular oluşturulmasını sağlar. Varsayılan olarak tüm olaylar gösterilir, ancak ana sayfa özelleştirilebilir.
-
Kaydedilmiş Sorgular: Tüm kaydedilmiş ve önceden hazırlanmış sorgulara erişim sağlar, sorgular yönetilebilir ve sistemdeki acil sorunlar hızlıca tespit edilebilir.
-
Sorgu Kartları: Her kart, sorgu adı, arama koşulları, oluşturucu, grafik, tarih aralığı ve son düzenleme bilgilerini içerir.
-
Sonuç Görüntüleme: Sorgu kartına tıklanarak grafik, tablo ve açılabilir etiket özeti (facet map) görüntülenebilir.
-
Dinamik Menü: Tablo hücrelerinde arama koşulları güncellenebilir, filtreler eklenebilir veya veriler daha derinlemesine incelenebilir.
-
Olay Detayları: İlk sütunda birleşik olaylar varsa, ikona tıklanarak detaylı listeye erişilebilir.
8.7 Gösterge Paneli (Dashboards)
Dashboard sayfası, Sentry’deki tüm araç setlerini tek bir ekranda toplar. İhtiyaca göre “Genel”, “Ön Yüz”, “Arka Yüz” veya “Mobil” şablonlarından birini seçerek önceden tanımlı araç gruplarını hızla ekleyebilir, panelleri kullanıma göre özelleştirilebilmektedir. Oluşturulan panel araçlarını genişletilmiş araç görüntüleyici modunda açarak, temel kart görünümünde bulunmayan gelişmiş filtreleme, sıralama ve gezinme özellikleriyle detaylı inceleme yapılabilmektedir.
Kontrol Panelini Düzenleme
Paneli Düzenle (Edit Dashboard) bölümünden, panellerde yer alan araçların boyutları, isimleri ve özellikleri özelleştirilebilir. Ayrıca, mevcut bir araç kopyalanarak birden fazla kez kullanılabilir. Araç Ekle (Add Widget) seçeneğiyle, ihtiyaçlara göre özelleştirilebilir araçlar oluşturulabilir ve panel optimize edilebilir.
Özelleştirilebilir araç oluşturma işlemi aşağıda verilen birkaç temel adımdan oluşmaktadır.
-
Görselleştirme Seçimi Aracın kontrol panelindeki ön izlemesi bu bölümde görülmektedir. Tablo, grafik gibi farklı görselleştirme türleri arasından seçim yapılarak verilerin sunuluş biçimi belirlenebilmektedir.
-
Veri Kümesi Seçimi Bu bölümde, araçta kullanılacak veri kümesi seçilebilir. Seçilen veri kümesi, aracın hangi bilgileri göstereceğini belirler. Örneğin, "Hatalar" (Errors) veya "Sorunlar" (Issues) gibi veri kümesi seçenekleri mevcuttur.
-
Sütunları Seçimi: Verileri düzenlemek için kullanılabilecek bir bölümdür. Olaylar için işlevler eklenebilir ve alanlar ile etiketler kullanılarak daha ayrıntılı veriler görüntülenebilir.
-
Sonuçları Filtreleme: Sonuçlar daraltılabilir. Belirli projeler, ortamlar veya tarih aralıkları gibi kriterler eklenerek hedeflenen verilere ulaşılabilir.
-
Bir Sütuna Göre Sıralama: Oluşturulan sütunlara göre sonuçlar sıralanabilir. Sıralama sütunlarından "yüksekten düşüğe" şeklinde sıralama yapılabilir.
8.8 Sürümler (Releases)
Sentry’nin Sürümler (Releases) bölümü, uygulamanın dağıtılan sürümlerini takip etmeye ve bu sürümlerle ilişkili performans ve hata verilerini analiz etmeye olanak tanır. Bu bölüm, yeni hataları ve gerilemeleri tespit etmek, bir problemin çözülüp çözülmediğini doğrulamak ve dağıtılan uygulamanın genel işleyişini izlemek için kullanılır. Şekil 13’te bu sayfa örneklenmiştir.
Şekil 13: Sentry Sürümler Sayfası
Releases bölümünde aşağıda verilen bilgiler sunulmakta olup, uygulama sürümleriyle ilgili sorunları hızlı bir şekilde tespit etmeye, çözüm süreçlerini izlemeye ve genel performansı değerlendirmeye yardımcı olmaktadır.
-
Sürüm Adı: Sürümün kısa hali (hash olmadan).
-
İlgili Proje: Sürümün hangi projeye ait olduğunu gösterir.
-
Kullanım Durumu: Sürümün kabul aşamasını ve kullanım oranını belirtir.
-
Commit Yazarları: Sürüme katkıda bulunan geliştiricilerin bilgileri.
-
Hatasız Kullanıcı Yüzdesi: Belirli bir sürümde hatasız deneyim yaşayan kullanıcıların oranı.
-
Hatasız Oturum Yüzdesi: Sürümde gerçekleşen çökme yaşanmamış oturumların yüzdesi.
Sürüm Detayları ve Performans Analizi
Sürümler sayfasında, projeler sürümlerine göre tablo halinde düzenlenmiştir. Bu tablolar sayesinde belirli bir sürümün çökme oranı, çökme sayısı ve dağılımı görülebilmektedir.
Herhangi bir sürüme ilişkin daha ayrıntılı bilgiye erişilmek istendiğinde, ilgili sürümün sol tarafında yer alan Detay Görüntüle (View) butonuna tıklanarak, o sürüme ait tüm çökme ve hata kayıtlarına ulaşılabilmektedir. Bu özellik, uygulamanın farklı sürümlerini izleme ve yönetiminde kolaylık sağlayarak kullanıcı deneyiminin iyileştirilmesine katkıda bulunmaktadır.
8.9 İstatistikler (Statistics)
İstatistikler Sayfası, Sentry’nin tüm organizasyondan aldığı kullanım verilerinin genel bir görünümünü sunar. Bu sayede, son zamanlarda aktivite artışı gösteren veya diğerlerine göre daha fazla hata kaydeden alanlar tespit edilerek detaylı olarak incelenmesi gereken kısımlar belirlenebilmektedir. Ayrıca, görüntülenen tarih aralığı ayarlanarak belirli bir zaman dilimine odaklanılabilir veya daha geniş bir görünüm için zaman aralığı genişletilebilir. Bu sayfada Kullanım (Usage), Sorunlar (Issues) ve Sağlık (Health) olmak üzere üç sekme bulunmakta olup, aşağıda her biri detaylı olarak açıklanmaktadır.
-
Kullanım
Bu sekme, Sentry’nin projelerden aldığı hatalar ve işlemler hakkında genel bilgi verir. Her projenin detaylarının istemci tarafından kategorize edildiği bir döküm içerir.
-
Sorunlar
Bu sekme, atanan sorunların etkinliğini göstermektedir. Belirli bir zaman diliminde kaç yeni sorunun tespit edildiği, daha önce çözülmüş ancak yeniden ortaya çıkan sorunların sayısı ile birlikte, bu sorunların önceliklendirme kriterlerine hakkında bilgi sunar.
- Sağlık Bu sekme, projelerin genel işleyişi hakkında bilgi sunar; çökme yaşanmayan oturumlar, projenin ana işlemlerindeki sorunları, alarm kurallarına göre tetiklenen uyarı sayısı ve her proje başına yapılan sürüm sayısını içerir.
9. Performans İzleme
9.1 Performans İzleme Sayfası
Sentry platformu üzerinde tanımlı projelere ait performans verilerinin merkezi olarak izlenmesini sağlayan bir arayüz sunmaktadır. Bu sayfa; uygulamadaki işlem süreleri, yanıt süreleri ve performans eğilimlerini grafikler ve tablolar aracılığıyla gerçek zamanlı olarak takip etmeyi mümkün kılar. İşlem ayrıntılarına erişip gerektiğinde derinlemesine incelemeler yaparak performans sorunları Şekil 14’te hızla tespit edilebilmektedir [5].
Şekil 14: Sentry Performans Sayfası
9.2. Performans Metrikleri
9.2.1. Kullanıcı Memnuniyeti Endeksi [Application Performance Index (Apdex)]
Uygulama yanıt sürelerine dayalı olarak kullanıcı memnuniyetini izlemek ve ölçmek için kullanılan endüstri standardı bir ölçümdür. Apdex puanı, tatmin edici bir deneyime sahip oturumların oranını ifade eder ve 0 ile 1.0 arasında değer alabilir. 1.0 değeri, tüm kullanıcıların tatmin olduğunu; puan yükseldikçe ise daha iyi bir kullanıcı deneyimini gösterir. Düşük puan kötü bir kullanıcı memnuniyetini belirtir.
9.2.2 Başarısızlık Oranı (Failure Rate)
Failure Rate, başarısız işlemlerin yüzdesini gösterir. Sentry, “Tamamlandı (OK)”, “İptal Edildi (CANCELLED)” ve “Bilinmeyen (UNKNOWN)” durumları dışındaki işlemleri başarısız olarak değerlendirir. Bu sayede, problem çıkaran veya hedefe ulaşmayan işlemler net şekilde takip edilebilir.
- OK: İşlemin başarılı bir şekilde tamamlandığını ifade eder.
- CANCELLED: İşlemin, kullanıcı veya sistem tarafından tamamlanmadan iptal edilmesi durumudur.
- UNKNOWN: İşlemin son durumunun net şekilde belirlenememiş olmasıdır.
9.2.3. Verim (Throughput)
Verim, sunucunun belirli bir zaman aralığında ne kadar iş yaptığını gösteren kritik bir performans metriğidir. Bu değer, sistemin iş yükü altındaki kapasitesini anlamaya ve ölçeklendirme kararları almaya yardımcı olur. Aşağıda, verim metriklerinin en yaygın kullanılan üç türü açıklanmaktadır:
- Toplam İşlem (Total): İncelenen dönemde gerçekleşen toplam işlem sayısını gösterir.
- Dakika Başına İşlem (TPM – Transactions Per Minute): Her bir dakikada gerçekleşen ortalama işlem sayısını ifade eder.
- • Saniye Başına İşlem (TPS – Transactions Per Second): Her bir saniyede gerçekleşen ortalama işlem sayısını ifade eder.
9.2.4. Ortalama İşlem Süresi (Average Transaction Duration)
Belirli bir işlemin tüm oluşumları için ortalama yanıt süresini ifade etmektedir. P50, P75, P95 ve P99 gibi eşikler üzerinden değerlendirilmekte olup, her bir eşik istatistiksel bir yüzdeyi temsil etmektedir:
-
P50 Eşiği: İşlem sürelerinin yüzde 50’sinin eşikten büyük olduğu değerdir (medyanı ifade etmektedir).
-
P75 Eşiği: İşlem sürelerinin yüzde 75’inin eşikten büyük olduğu değerdir.
-
P95 Eşiği: İşlem sürelerinin yüzde 95’inin eşikten büyük olduğu değerdir.
-
P99 Eşiği: İşlem sürelerinin yüzde 99’unun eşikten büyük olduğu değerdir.
Bu veriler, uygulamada en çok beklemeye neden olan işlemlerin tespit edilmesine olanak tanımaktadır.
9.3. TTFB ve TTI: Kullanıcı Odaklı Performans Metrikleri
Aşağıda, kullanıcı odaklı iki önemli performans metriği açıklanmaktadır:
9.3.1 İlk Baytın Alınma Süresi [Time to First Byte (TTFB)]
TTFB, bir HTTP isteği yapıldığı andan ilk baytın tarayıcıya ulaşmasına kadar geçen süreyi ifade etmektedir. Hem sunucu (server) hem de ağ gecikmelerini (network latency) ölçmek için kullanılmaktadır ve kullanıcı deneyiminin hız algısını doğrudan etkilemektir. Genellikle aşağıdaki iki temel faktöre bağlıdır:
TTFB’yi Etkileyen Faktörler
-
İstemciden (client) sunucuya (server) iletim gecikmesi: Kullanıcı ile sunucu arasındaki mesafeye bağlı olarak ortaya çıkan ağ gecikmeleri, TTFB süresini uzatabilmektedir.
-
Sunucunun (server) isteği işleme süresi: Sunucunun gelen isteği işleme hızı, özellikle yüksek yük altında TTFB değerini artırabilmektedir.
APM araçları, bu faktörlere dair ayrıntılı veriler sunarak, TTFB sürelerini etkileyen asıl nedenlerin belirlenmesine yardımcı olmaktadır.
9.3.2. Etkileşime Geçiş Süresi [Time to Interactive (TTI)]
TTI, sayfanın kullanıcı etkileşimlerine tam olarak yanıt verebilir hâle gelme süresini ifade etmektedir. Sayfanın “ağır” veya “yanıt vermeyen” algısının önüne geçmek için kritik bir performans metriğidir.
Time to Interactive, kullanıcının sayfayla etkileşime geçebilmesi için geçen süreyi ifade eder. Kullanıcı deneyimi açısından kritik bir öneme sahiptir çünkü uzun bir TTI, sayfanın "ağır" veya "yanıt vermeyen" olduğu algısını yaratabilir.
TTI’yı Etkileyen Faktörler:
-
Content Load (HTML, CSS, JS’in yüklenmesi):
Sayfa içeriğinin doğru ve hızlı şekilde yüklenmesi, TTI’yi doğrudan etkiler.
-
Script Execution (JavaScript’in parse edilmesi, compile edilmesi ve çalıştırılması):
JavaScript kodlarının işlenmesi ve çalıştırılması sırasında yaşanan gecikmeler, TTI süresini uzatabilir.
Bu aşamalar hakkında ayrı ayrı bilgi alınabilirse, uzun TTI’ya neyin sebep olduğunu daha iyi anlaşılabilmektedir. Böyle bir bilgi mevcutsa, bu detayların belirtilmesi performans iyileştirmeleri için kritik olacaktır.
9.4 Kullanıcı Memnuniyetsizliği (User Misery)
User Misery, uygulama performansının göreceli büyüklüğünü değerlendirmek için kullanıcı ağırlıklı bir metrik olarak tanımlanmaktadır. Kullanıcılar üzerinde en yüksek etkiye sahip işlemler ön plana çıkarılmakta ve projenin genel memnuniyet durumu sayısal olarak yansıtılmaktadır.
9.5 Özel Performans Metrikleri
Yukarıda açıklanan otomatik performans ölçümlerine ek olarak, Sentry, işlemlere ilişkin özel performans metriklerinin tanımlanmasını desteklemektedir. Bu sayede uygulama için önemli olan ancak varsayılan olarak takip edilmeyen metrikler belirlenebilmekte ve proje ihtiyaçlarına uygun şekilde kullanılabilmektedir. Şekil 15’te bu alan gösterilmiştir.
Şekil 15: Sentry Özel Performans Metriği Ekleme Alanı
10. Sonuç
Sonuç olarak, APM araçları arasında yapılan detaylı inceleme, özellikle Sentry’nin sunduğu kapsamlı özelliklerin, performans izleme ve uygulama hatalarını analiz etme noktasında diğer alternatiflere göre belirgin avantajlar sağladığını ortaya koymuştur. Sentry’nin self-hosted kurulumu ve konfigürasyonu, esneklik ve özelleştirilebilirlik açısından önemli avantajlar sunmakta ve farklı projelerde, kullanıcı taleplerine uygun çözümler geliştirilmesini sağlamaktadır. Özellikle Sentry’nin dashboard yapısı, gerçek zamanlı izleme, olay analizi ve performans metriklerini görselleştirme imkânı sunarak, ekiplerin uygulama performansına dair daha net içgörüler elde etmesini sağlamaktadır. Uygulama içindeki hata oranları, performans darboğazları ve yavaş işlem süreleri gibi metriklerle sağlanan derinlemesine analizler, uygulama üzerinde herhangi bir performans sıkıntısının hızlıca tespit edilmesine olanak tanımaktadır. Ayrıca, Sentry’nin izleme ve analiz yetenekleri göz önünde bulundurarak, uygulama performansını daha verimli bir şekilde optimize etmeye olanak sağlar. Tüm bu özellikler, geliştirici ekiplerin uygulamalarındaki hataları daha hızlı tespit etmelerini, çözüm süreçlerini hızlandırmalarını ve sonuç olarak kullanıcı deneyimini iyileştirmelerini sağlar. Sentry’nin sunduğu bu güçlü araçlar ve analiz teknikleri, uygulamaların daha stabil ve yüksek performanslı bir şekilde çalışmasını sağlamak için kritik bir rol oynamaktadır.
*Bu yazının hazırlanmasında katkı sağlayan teknik gözden geçirme için Bilgehan AYGÜN’e, içerik düzenlemelerinde destek sunan Nurhan ÖNER’e ve Kübra ERTÜRK’e teşekkür ederiz. Sağladıkları geri bildirimler, yazının hem teknik doğruluğunu hem de okunabilirliğini artırmada önemli rol oynamıştır.
11. Kaynakça
[1] Sentry, “Getting started with Sentry,” URL: https://docs.sentry.io/product/sentry-basics/ (Erişim Zamanı: Temmuz 31, 2025).
[2] Sentry, “Sentry for Frontend,” URL: https://develop.sentry.dev/frontend/ (Erişim Zamanı: Temmuz 31, 2025).
[3] Sentry, “Self-hosted Sentry,” URL: https://develop.sentry.dev/self-hosted/ (Erişim Zamanı: Temmuz 31, 2025).
[4] 8grams, “How to setup self-hosted Sentry,” URL: https://8grams.medium.com/how-to-setup-self-hosted-sentry-50a2ebd5c8f2 (Erişim Zamanı: Temmuz 31, 2025).
[5] Sentry, “Sentry Project Walkthroughs,” URL: https://docs.sentry.io/product/ (Erişim Zamanı: Temmuz 31, 2025).