Azure Application Insights Nedir?
Application Insights bir Azure Monitör servisinin özelliği olan ve özellikle Application Performance Management (APM) alanında kullanılan bir servistir.
Azure platformunun en önemli servislerinden birisi olan App Insights uygulamalarınızı canlı olarak monitör etmenize yarar. Sizin için otomatik olarak uygulamadaki performans sorunlarını, performans metriklerini, session bilgilerini ve birçok metriği takip eder. Uygulamalara entegre etmesi çok kolay ve iş yükü getirmediği için neredeyse tüm uygulamalarmızda rahatlıkla uygulayabileceğimiz bir servistir.
Application Insights Neleri İzler
Azure Application Insights bizim için canlı ortamımızdaki uygulamalarımızdaki ;
- Gelen İstekleri, Cevap Süreleri, Hatalı cevap dönüşleri ve hata tipleri
- Gönderilen İstek Sayıları, Cevap Süreleri, İstek hata dönüşleri ve sayıları
- Uygulama içi hatalar
- Sayfa görüntülemeleri ve yüklenme süreleri
- AJAX çağırımları
- Kullanıcı ve oturum bilgileri.
- Performans metrikleri
- Host bilgileri ve logları
- Uygulama diagnostic bilgileri ve konsolu
- Son olarak bizim belirlediğimiz özel metrikler
gibi parametreleri izler.
Metriklerimi Nerede ve Nasıl Görürüm?
App Insights datalarımızı görmek için Azure Portal’e erişmemiz gerekiyor. Azure Portal üzerinde servisimizi seçtiğimiz zaman sol menüden Investigate adında bir tab göreceğiz. Bu tabda neleri gördüğümüzü açıklamamız gerekirse:
- Application Map : Önemli metrikler ile birlikte uygulamalarımızın bileşenleri
- Smart Detection : Belirli bir pattern belirleyerek bu patternin dışında bir aksiyon olduğu zaman alert mekanizması oluşturabildiğimiz bir özellik.
- Live Metrics : Canlıdaki uygulamamızın anlık olarak gelen/giden request sayıları, cevap süresi, hata sayıları ve tipleri gibi metriklerimizi izleyebildiğimiz bir özellik
- Search : Özel bir logu yada eventi yakalayabilmemiz için arama yapabileceğimiz bir özellik.
- Availability : Uygulamanın üstünde çalıştığı sunucuları ve sağlık durumlarını gösteren bir ekran.
- Failures : Uygulamamızdaki hatalı isteklerin ve iç hataların kodlarına kadar gösterebilen, detaylı log bilgileri
- Performance : Uygulamanın hem request bazında hem altyapı utilizasyonu anlamında performans metriklerini gösteren ekran
- Troubleshooting guides : Belirli bir hatada hangi metriklere bakmamız gerektiğini gösteren bir galeriye ulaştıran bir servis. Bizim için custom ekranlar üretebiliyor.
Monitoring tabı altında ise metric chartlarımıza bakabiliyor, Alert kuralları tanımlayabiliyor, Log analytics ile entegre edebiliyoruz.
Bir diğer önemli tab ise Usage Tab’ı. Bu tabda ise uygulamamıza erişen kullanıcıların session bilgileri, uygulama içi gezinimleri, ne kadar süre geçirdikleri, nereden eriştikleri gibi bilgilere erişebiliyoruz. Ayrıca More Sekmesinden menüde bulunmayan veya kendi istediğimiz ekranlarıda tasarlayabiliyoruz.
Uygulamadan Application Insights’ı Nasıl Kullanırım?
Bir Web uygulasında App Insights’ı aktif etmek istersek bunun birden fazla yolu var. İlk metodumuz Javascript ile Key’imizi göstermek ve telemetrilerimizi toplamaya başlamak için öncelikle bilgisayalarımızda npm komutunu çalıştırabilmek için Node.JS yüklü olması gerekiyor. Daha sonrasında
komutunu çalıştırıyoruz. Bu çalıştırarak kütüphanemizi içeriye aşağıdaki kod bloğu ile yükleyebiliriz.
Bu işlemden sonra istediğimiz gibi metrikler oluşturup toplamaya başlayabiliriz. Aşağıdaki örnekte nasıl custom bir telemetry oluşturuluyor örneği gösteriliyor:
.Net Core da veya .Net Frameworkte ise App Insights için Nuget Package Managerden ; Microsoft.ApplicationInsights.AspNetCore yüklememiz yeterli olacaktır. Daha sonrasında ise uygulamamıza bu servisi çalıştırması için Startup.cs dosyasının içinde aşağıdaki komutu vermemiz gerekiyor.
Son olarakta Azure servisimiz ile ilişkilendirmek için aşağıdaki gibi Appsettings.json dosyamızda instrumental keyimizi giriyoruz:
Bu komuttan sonra otomatik olarak Azure Portal’den verilerimizi görebilir hale geleceğiz. App Insights açıkcası anlatmak istenirse sayfalarca üzerine yazı yazılabilecek bir servis ancak en basit haliyle kurulumu ve ne işe yaradığını bu şekilde anlatmak yeterli olacaktır.