0 Yükleniyor ...

CIS MEDYA CIS MEDYA

Uygulama İzleme (App Monitoring)

silhouette photography of man

Uygulamalarımızda biz uyurken bile ne olaylar yaşandığını öğrenebiliriz. Bazı uygulamalar geliştirerek ya da servisler kullanarak 7×24 sağlıklı şekilde kullanılabilir olduğumuzuda takip edebilir, olası bir aksilikte anında kurduğumuz alarmlar sayesinde haberimiz olmasını sağlayabiliriz. Hatta nerede performans sorunları yaşıyoruz onu bile görebiliriz… Peki ya bunlar nasıl mümkün oluyor ve yapılıyor?

Bir uygulamanın (bu yazıda uygulama olarak bir web projesine atıfta bulunuyor olacağız) tam olarak izlenebilir olması noktasında yazılım katmanında yapılması gereken önemli işler vardır. Sizde mevcut projelerinizde aşağıdaki adımları kontrol ederek eksik olduğunu tespit ettiğiniz noktalarda iyileştirme yapabilir ya da yeni projenizde bu hususları dikkate alarak daha izlenebilir ürünler ortaya çıkartabilirsiniz.

Log (Günlük) Yönetimi ve Kayıt Altına Alınması

Eğer log kelimesi size biraz da olsa yabancı geliyorsa o zaman kesinlike Log (Kütük) Kayıtları Nedir? makalesini okumanızı tavsiye ederim.

Öncelikle uygulama içerisinde doğru ve standardize edilmiş bir log yönetimi altyapısı oluşturmalıyız. Sonrasında uygulama içerisinde üretilen olay/hata/performans loglarını anlamlandırıp mümkün olduğunca bunların gruplanabilir olmasını sağlamamız gerekir. Ki böylece bu kayıtlar üzerinden alarmlar oluşturabilelim ya da bir alarm aldığımızda detaylı inceleme sağlamaya gerek kalmadan olayın nerede oluştuğunu görüp, aksiyon önceliğini hızlıca belirleyebilelim. (Burada alınacak aksiyonlar bazen 4 Key Metrics (bkz: cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance) içerisindeki Time to Restore Service {TRS} etkileyebilir.) Uygulamanın ürettiği tüm logları (eğer validation vs. değilse {ki bazen ürüne bağlı olarak onları bile kaydetmek gerekebiliyor)) zaten bir logging tool (bkz: grayloglogstashrollbarapplication insightsentry) kullanarak kaydetmeli ve saklamalıyız.

Burada günlük (log) olarak bahsettiğimiz şey bizim için önemli olan INFO level’da tuttuğumuz kayıtları, eventleri (olayları), oluşan hataları, performans ölçümlerini içeriyor olabilir.

Artık elimizde loglarımız olduğuna (ki yoksa ya da olmasaydı sonraki aşamalarda yapabileklerimiz çok kısıtlı olurdu) göre bunlar üzerinden alarmlar ve başarı/başarısızlık raporları çıkartabiliriz.

Alarmlar çoğunlukla hata logları üzerinden kurgulanır. Fakat diğer loglar üzerinden de alarmlar kurgulayabiliriz. Alarmların bağlı olduğu bir eylem olması gerekir. Bu eylemlere örnek vermek gerekirse; Slack mesaj gönder, uygulama üzerinden mobil bildirim gönder, web üzerinden bildirim gönder, e-posta gönder, sms at, sanal santral üzerinden çağrı oluştur, vs.

Örnek #1
Son 15 dakika içerisinde X koduna sahip hata logu ya da ABC başlığına sahip hata logu sayısı >0 ise alarm oluşturabiliriz.

Örnek #2
Gruplamak ya da tekrar oluşmasını beklemek yerine X tipindeki hata oluştuğu anda alarm oluşturabiliriz.

Örnek #3
Sipariş Oluşturma eylemi için son 30 dakika içerisinde hiç log oluşmamışsa şartlarına sahip bir alarm oluşturabiliriz.

Örnek #3
X operasyonu için başarı oranı %75’in altına düşerse şartına sahip bir alarm oluşturabiliriz.

Özetle elimizde kayıt olduktan sonra istediğimiz şartlara bağlı sınırsız alarm oluşturabilir ve uygulamamızı yakından takip edebiliriz. Anlamlı kayıt tutmanın bu işin özünü oluşturduğunu ifade ettikten sonra şimdi gelelim başka neler yapabileceğimize?


PERFORMANS

Uygulamamızın performansını elle topladığımız kayıtlar üzerinden kendimiz ölçüp/değerlendirebileceğimiz gibi Newrelic gibi (Nisan 2021’de yazılmış www.softwaretestinghelp.com/top-10-application-performance-monitoring-tools/ yazısında popüler APM araçlarının listesini bulabilirsiniz) ürünleride kullanabiliriz. Hatta ben bu olgunlaşmış ürünleri kullanmanızı tavsiye ederim 🙂 (Sonuçta Amerika zaten keşfedilmiş…)

Performans takibi ile uygulamamızda nerelerde dar boğaz (bottleneck) yaşandığını ya da daha iyileştirebileceğimiz noktaları tespit etmemiz çok kolay olacaktır. Tespitleri gerçekleştirdikten sonra ise artık sorunumuzu çözmek için aksiyon alabiliriz.

Yaşasın daha hızlı uygulamalar! 

Halil Şafak KILIÇ


Makaleler

0%