APP ERROR MONITORING (CapsLog)

rana haydaroglu
DigiGeek
Published in
2 min readJan 3, 2022

Mobil uygulama kullanıcılarının aldıkları hataları anlamlandırabilmek ve hızlı çözüme kavuşturabilmek günümüz dijital dünyasında çok önemli bir hale geldi. Çoğumuz “işleminizi şu an gerçekleştiremiyoruz” hatasını görmekten haz etmiyoruz. Hatta bu hatayı gördükten sonra bir iki kere şans verip hata düzelmeyince uygulamayı silme eğilimine yönleniyoruz. Dolayısıyla kullanıcının hata aldığı ve hatanın çözülmesi arasında geçen süre zarfının olabildiğince minimuma indirilmesi gerekiyor. Bunun için de problemin nereden kaynaklandığını kısa sürede anlayıp çözümlemek gerekiyor.

Altyapı yani backend tarafında alınan hataları kolay yakalayabiliyoruz ancak client tarafında alınan hataların takibini yapmak daha zor oluyor.

App Error Monitoring, bizim isim verdiğimiz haliyle CapsLog, tam da bu noktada yardımımıza koşuyor. CapsLog ismiyle geliştirdiğimiz bir SDK ve altyapı ile, Client üzerinden alınan hataları takip edebileceğimiz standart bir loglama yapısı kurduk.

Yazının devamında loglamayı sağlayan SDK’mızın kendisinden artık CapsLog olarak bahsedeceğim :)

Capslog Nedir?

Client üzerinden, daha backend’e erişilemeden alınan hataları yakalamamızı sağlayan bir yapıdır. Bu yapı; veritabanı ve SDK içeren bir üründür.

Capslog yapısının özelliklerini kısaca özetlememiz gerekirse;

• Uygulamalar arası standart bir client log yapısını içermektedir.

• Kurulan bu yapı SDK olarak geliştirildiği için mobil uygulamalara kolaylıkla entegre edilebilmektedir.

  • Backend ve IOS & Android Client’larında geliştirmeler içermektedir.

Capslog ile Neler Hedefledik?

Öncellikle daha backend’e hiç gitmeden ya da direkt client’ın entegre olduğu yerlerde alınan hataları yakalayıp izini tutabilmeyi amaçladık.

CapsLog’u bir SDK olarak geliştirdik ve böylece tüm client’lar bu SDK’ya entegre olarak loglama yapısını kullanabiliyor oldu.

Client üzerinden alınan hatalarını app versiyon, device model gibi bilgilere göre analiz edebilir hale geldik.

Client üzerinden alınan hatalardan alarm mekanizmaları oluşturabildik.

Client ve backend isteklerini eşleştirebildik.

Capslog Nasıl Geliştirmeler İçeriyor?

Clientlar’ın başarılı istekler dışında, sadece hata durumlarında uygulamaya istek atmalarını sağladık.

Tüm clientların entegre olabileceği ortak bir altyapı modülü geliştirdik.

Tüm clientların entegre olabileceği ortak bir SDK geliştirdik.

Clientların gönderdikleri isteklerde, tutarlılık için standart bir header yapısı oluşturduk.

Hata loglarının izlenebilmesi için Splunk ile entegresyon gerçekleştirdik.

Kafka veritabanına gönderilen istekler için ON/OFF mekanizması kurarak, istendiği zaman log yazılıp, istendiği zaman loglamanın kapatılmasını sağladık.

IP/deviceid bazında kısıtlama kontrolü sağlayarak log atılması engellenebilir hale getirdik.

CAPSLOG Mimari Yapısı

Kafka → Asenkron mesajlaşmayı sağlar

Producer → Clientlardan gelen rest istekleri Kafka’ya gönderir

Consumer → Kafka’daki istekleri veritabanına gönderir.

Bu yazının devamında backend ve client geliştirmelerinin detaylarından bahsediyor olacağım :)

--

--