Herkese selamlar, bilindiği üzere projelerin hem geliştirme aşamasında hem de üretime alındıktan sonraki süreçte performans ve hata takiplerinin yapılması çok kıymetlidir. Uygulamanın çökme durumları, sayfalarda gezinirken karşılaşılan exceptionlara zamanında müdahale edilmediğinde hem itibar hem de finansal olarak projenizin gidişatını olumsuz olarak etkileyebilmektedir.
İşte tam da burada işlerimizi kolaylaştıracak araçlar karşımıza çıkıyor. Peki hata ve performans izleme araçlarını seçerken nelere dikkat etmemiz gerekir? Hangi platformlar projeniz için en uygundur?
Fiyatlandırma: Kullanacağınız aracın fiyatlandırması oldukça önemli bir kriterdir. Uygulamanızın en sık kullanılan ekranının “Anasayfa” ekranı olduğunu düşünelim ve bu sayfada 3 tane hatayla karşılaşıldığını ve bu hatanın kullandığınız bir platform aracılığıyla size bildirildiğini hayal edelim. Uygulama içerisinde gezerken anasayfaya 1 kullanıcı 5 defa uğrayabilir ve bu durumda kullanıcıdan size 15 defa exception gelecektir. Ortalama 1000 kullanıcı için sadece anasayfada karşılaştığımız bu hata 15.000 defa size kullandığını platform aracılığıyla gönderilmiş olacaktır. Bunun gibi farklı durumların oluşması ve sürpriz faturalarla karşılaşmamak için fiyatlandırma kriterleri göz önünde bulundurulmalı ve duruma göre önlemler alınmalıdır.
Gerçek Zamanlı Uyarılar (Real-Time Alerts): Kullanıcıların karşılaştığı hatalar veya performansla ilgili belirli bir eşik değerinin aşılması durumunda anlık olarak bildirim gönderilmelidir.
Ayrıntılı Raporlaa: Meydana gelen hatanın ne tür bir cihazda, hangi tarihte gerçekleştiğinin yanı sıra hatanın detayı da çok kıymetlidir. Özellikle de logların görüntülenebilmesi gerekmektedir.
Kullanıcı Dostu Arayüz: Bu tarz platformlarda oldukça fazla veri bulunduğu için kullanımı basit ve arayüzü sade olmalıdır. Dashboardlara her zaman teknik ekipten bir kişinin bakmayacağı senaryolar da olacaktır. Hem teknik ekip hem de iş birimleri, pazarlama ekipleri gibi teknik alt yapısı bir yazılımcıya göre değişken olan bireyler tarafından da rahatça kullanılabilir olmalıdır.
Entegrasyon Kolaylığı: Kullanılacak olan sistemin, süreçlere sorunsuz bir şekilde dahil edilebilmesi gerekmektedir. Entegrasyon sırasında karşılaşılabilecek zorluklar, versiyon yükseltmelerindeki problemler ilgili platformun tercih edilirliğini azaltacaktır.
Önde gelen platformları inceleyelim:
1. Sentry
Sentry sayesinde projenizin üretim sürecindeki risklerden kolaylıkla sıyrılabilirsiniz. Hızlı geri bildirimleri ve hata ekranının ekran görüntüsü desteği ile ön plana çıkmaktadır. Karşılaşılan problemleri geliştiricilere kolayca assign edebilirsiniz. Hataları kullanıcı ve platform bazlı filtreleyebilir, çözülen hataları “resolved” statüsüne çekebilirsiniz.
Apdex puanı sayesinde uygulamanın yanıt süresini öğrenebilir, P95 ve P50 eşikleri ile işlem sürelerini ölçebilirsiniz. TPM, User Misery, Failure Rate değerleri ile oldukça ölçülebilir ve yönetilebilir bir performans izlemesi yapabilirsiniz.
2. Firebase Crashlytics
Mobil uygulama geliştiricilerine yönelik Google tarafından geliştirilen Firebase alt yapılı bir hata raporlama aracıdır. Uygulamalarda oluşan çökme ve hataları gerçek zamanlı olarak izleyerek, bu hataların kaynağını hızlı bir şekilde tespit etmeyi ve düzeltmeyi sağlar.
Crashlytics kullanırken özel olarak key ve loglar ekleyebilirsiniz. Anlık uyarılar mail yoluyla geliştirici ekibine iletilebilir. Hataların gruplandırılmasını mümkün kılar. Çökmelerle ilgili önceliklendirmeler sayesinde kritik hataların çözümü için öne çıkmaktadır. Alınan hatayla ilgili detaylı bilgi verir. İşletim sistemi, cihaz bilgilerine varana kadar hatanın logları detaylıdır.
2019 yılında Huawei’nin ABD tarafından kara listeye alınmasından dolayı Google hizmetlerine erişimin kısıtlanması sebebiyle Crashlytics hizmeti Play Store içermeyen Huawei cihazlarda çalışmayacaktır. Alternatif olarak Huawei Mobile Services (HMS)’nin Huawei Crash Service aracı kullanılabilir. Bu servis ile de uygulamada meydana gelen çökmeleri takip edebilir, hatayla ilgili detayları öğrenebilirsiniz.
3. New Relic
2008 yılında kurulan New Relic, geliştiricilere ve işletmelere, uygulamalarının ve altyapılarının performansını gerçek zamanlı olarak izlemelerine ve iyileştirmelerine yardımcı olmaktadır.
Dağıtılmış İzleme (Distributed Tracing) özelliği ile mikrosunucu mimarilerinde hizmetlerin birbirleriyle nasıl etkileşime girdiğini izler ve analiz eder, böylece karmaşık sistemlerdeki sorunları kolayca tespit eder. Sunucular, konteynerlar ve cloud hizmetlerinin performanslarını izler. CPU, bellek ve networkle gibi metriklerle ilgili bilgi sağlar. APM ve gerçek zamanlı izleme özelliklerine sahiptir. Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) gibi çeşitli bulut sağlayıcıları ve Slack, Jira, PagerDuty gibi işbirliği araçlarıyla entegre olabilir.
Entegrasyonu kolaydır.
4. Datadog
Datadog, bulut tabanlı uygulamalar ve altyapılar için gözlemlenebilirlik, izleme ve güvenlik hizmetleri sunan bir platformdur. 2010 yılında kurulan Datadog, geliştiricilere, BT operasyon ekiplerine ve güvenlik ekiplerine, uygulamalarının ve altyapılarının performansını izlemeleri, analiz etmeleri ve iyileştirmeleri için gerekli araçları sağlar. Gelişmiş analitik ve özelleştirilebilir dashboard’lar sunarak, performans verilerini görselleştirmeyi ve analiz etmeyi sağlar. Veri görselleştirmeleri ile sistemlerin durumu hakkında hızlı bilgi sağlar. Web uygulamaları için sentetik testler yaparak performans sorunlarını ve kesinti sürelerini önceden tespit eder.
AWS, Azure, Google Cloud Platform gibi bulut sağlayıcıları ve Docker, Kubernetes gibi konteyner teknolojileriyle entegre olabilir. Ayrıca Slack, Jira ve PagerDuty gibi işbirliği araçlarıyla da entegrasyon sağlar.
5. Raygun
GitHub, Jira, Bitbucket, GitLab ve Slack gibi popüler işbirliği araçlarıyla entegre olabilir. CI/CD araçları ve hata izleme sistemleriyle uyumlu çalışarak iş akışlarını optimize eder. Gerçek zamanlı hata ve performans izleme ile sorunları hızlı bir şekilde tespit etmeyi ve çözmeyi sağlar. Yeni sürümlerin ve güncellemelerin performans üzerindeki etkisini izler. Deploy sonrası ortaya çıkan hataları ve performans sorunlarını hızlı bir şekilde tespit eder.
Raygun, web, mobil ve masaüstü uygulamalar için kapsamlı destek sunar. Bu, farklı platformlarda çalışan uygulamalar için tek bir izleme çözümü kullanmayı mümkün kılar. Raygun’un hata izleme yetenekleri, detaylı hata raporlaması ve hata gruplama özellikleriyle öne çıkar. Hata raporları, stack trace, kullanıcı verileri ve çevresel bilgiler gibi detaylı bilgiler içerir. Otomatik hata gruplama, benzer hataların tek bir raporda toplanmasını sağlar, bu da hata yönetimini kolaylaştırır.
6. Rollbar
Tıpkı Raygun’a benzer özellikler içerir. Her iki platform da hata izleme, performans izleme ve kullanıcı deneyimi izleme gibi temel yetenekleri sunar. Ancak, detaylı özellikler ve farklı odak noktaları vardır. Örneğin, Raygun’un deploy takip özelliği ve gerçek kullanıcı izleme (RUM) özellikleri, Rollbar’da benzer özelliklerden daha ayrıntılı olabilir veya Rollbar’ın daha kapsamlı bir API ve entegrasyon seti sunması gibi farklar olabilir.
7. Bugsnag
GitHub, Jira, Bitbucket, GitLab ve Slack gibi popüler işbirliği araçlarıyla entegre olabilir. CI/CD araçları ve hata izleme sistemleriyle uyumlu çalışır.Hataların ve performans sorunlarının derinlemesine analizini sağlar. Özelleştirilebilir raporlar ve dashboard sunarak, performans verilerini görselleştirir. Bugsnag, benzer hataları otomatik olarak gruplar ve sınıflandırır. Bu, hata yönetimini kolaylaştırır ve benzer hataların tekrarlanmasını önler. Bugsnag, hata kararlılığı (error stability) özelliği ile belirli bir süre içinde sürekli olarak tekrarlanan hataları ve yeni hataları takip eder. Bu, hata yoğunluğunu ve önemli hataları belirlemeye yardımcı olur.
8. AppDynamics
AppDynamics, yapay zeka ve makine öğrenimi teknolojilerini kullanarak otomatik anlama ve anlam çıkarma yetenekleri sunar. Bu, hataları ve performans sorunlarını otomatik olarak analiz ederek, daha hızlı çözümler üretilmesine yardımcı olur.
AppDynamics, bulut tabanlı uygulamaları izleme konusunda özel yeteneklere sahiptir. AWS, Azure ve Google Cloud gibi büyük bulut sağlayıcılarıyla entegrasyonlar ve özel izleme yetenekleri sunar. AppDynamics, web, mobil ve bulut tabanlı uygulamalar gibi farklı platformlarda çalışan uygulamaları destekler. Bu, farklı platformlarda çalışan uygulamalar için tek bir izleme çözümü kullanmayı mümkün kılar.
Uygulama bileşenlerinin ve bağımlılıklarının görsel bir haritasını sunar. Bu, uygulama mimarisini ve etkileşimlerini daha iyi anlamanızı sağlar. Uygulamalardaki hataları gerçek zamanlı olarak izler ve raporlar. Hata raporları, stack trace, hata oranları ve kullanıcı bilgileri gibi detaylı bilgiler içerir. Gerçek kullanıcıların uygulama ile nasıl etkileşime girdiğini izler. Kullanıcıların coğrafi konumlarına, cihaz türlerine ve tarayıcılarına göre performans verilerini sunar. eni sürümlerin ve güncellemelerin performans üzerindeki etkisini izler. Deploy sonrası ortaya çıkan hataları ve performans sorunlarını tespit eder.