• Hakkımızda
  • Yazı Gönder
  • Sizden Gelenler
  • İletişim
Yazılım Karavanı | Bilim - Teknoloji - Mühendislik
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
Yazılım Karavanı | Bilim - Teknoloji - Mühendislik
No Result
View All Result
Home DevOps

Azure Application Insights

Mercan Karacabey by Mercan Karacabey
Aralık 18, 2021
in DevOps, Genel
6 min read
0
Azure Application Insights

Application_Insights_wallpaper

WhatsApp'ta PaylaşTwitter'da PaylaşLinkedIn'de PaylaşTelegram'da Paylaş

Azure Application Insights, Monitoring için kullanılır.

Azure monitoringin bir özelliği olan Application Insights, geliştiriciler ve DevOps uzmanları için genişletilebilir bir Uygulama Performansı Yönetimi hizmetidir. Canlı uygulamalarımızı izlemek, “request’leri takip etmek, exception oluşan durumları tespit etmek — hangi durumlarda exception oluştuğunu görmek, exception tipleri neler-, uygulama içindeki tüm ağırlık düzeyine göre oluşan logları kontrol etmek” için kullanılır. Performans anormalliklerini otomatik olarak algılar ve sorunları teşhis etmemize ve kullanıcıların uygulamamızla gerçekte ne yaptığını anlamamıza yardımcı olacak güçlü analiz araçları içerir. Uygulama servislerinin de yer aldığı, subscription altından application insight oluşturulur. Application insight yaratıldığında herhangi bir programlama dili üzerinden bağlantıyı sağlayabilmek adına bir instrumentation key elde edilir. Bu instrumentation key, konfigurasyon dosyasında azure bağlantılarının tutulduğu yerin altına konumlandırılır.

azure:
	application-insights:
		instrumentation-key: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx

Java örneklendirmesi ile anlatırsak:

pom.xml dosyamıza kullanılacak olan kütüphanenin bilgileri dependency olarak eklenir.

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-spring-boot-starter</artifactId>
    <version>2.6.3</version>
</dependency>

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-logging-logback</artifactId>
    <version>2.6.3</version>
</dependency>

Uygulama içine entegrasyonu sırasında, konfigurasyon dosyamız ile loglama için ayarların bulunduğu xml dosyasının aynı dizinde yer alması gerekir.Loglamanın yapıldığı xml dosyasında, yeni bir appender olarak application insight’ı tanıtmak gereklidir.

<appender name="aiAppender" class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
        <instrumentationKey>${instrumentationKey}</instrumentationKey>
</appender>

<!--
Burada ${instrumentationKey} konfigurasyon dosyasından alındığı
için property olarak bu dosyanın üst kısmında tanımlama yapılması gerekir.
(yml dosyasındaki indentation dikkat edilerek source parametresi belirlenir.)
-->

<!--Spring property olarak tanımlanışı şu şekildedir:-->
<springProperty scope="context" name="instrumentationKey" source="azure.application-insights.instrumentation-key"/>

Ana ekranda şu şekilde gösterilir:

dashboard app insight
Microsoft sitesinden alınmış örnek Azure Application Insight ekranıdır.



Yukarıdaki resimden de görüldüğü gibi uygulamaya ait bilgileri chartlar halinde görebileceğimiz şekilde zaman filtreli olarak ana ekranda gözükür.
Detay kırılımlarını incelersek:

sublist 2
Alt Kırılımlar


Application map, distributed olarak tasarlanmış modern cloud ve mikroservis mimarisine sahip yapılar için oluşturulmuş bir kırılımdır. Application map sayesinde, hangi mikroservisin çalıştığını — hangi mikroservisler arası iletişim sağlandığını, akışın nasıl gerçekleştiğini göstermek için kullanılır. Buradan canlı veri akışı, servis bağlantı izlemeleri gerçekleştirilir. Monolitik sistemlerde efektif kullanımı yoktur. Sadece servis akışlarını izleyebiliriz.

service flow 3
Distributed Tracing — Dağıtık Sistem Takibi


Smart detection
, alert & alarm oluşturarak sistemin time out’a uğradığı uzun süreli exception’ların oluştuğu servislerin cevap verme süresinin belli bir thresholdun üzerinde yer aldığı durumlarda zaman filtreli olarak kullanımı sağlanır. Belirlenen tespit yöntemlerinden biri yoksa, hiçbir şey göstermez.

Live metrics, start edildikten sonra belirlenen zaman aralığında uygulamaya ait aşağıdaki chartlardaki bilgileri takip etmeyi sağlar. Zaman aralığı canlı akış sağlandığı için kısa tutularak uygulamanın yük testleri yapılırken ya da çok hit aldığı durumlardaki oranlarını hızlı yakalamamızda yardımcı olabilecek tool’lardan biri olarak kullanılabilir. Her bir chart’a ait datayı loglardan View in Logs seçeneği ile bulabiliriz.

live stream 4

Transaction Search,
zaman bazlı filtreleme yaparak uygulama içindeki tüm takibi sağlayabileceğimiz alan burası olarak gösterilebilir.

transaction search 5
Microsoft’un sitesinden alınmış örnek bir Transaction Search örneğidir.


Availability, url ping testi, ssl sertifikası kontrolü testi, mikroservis uygulamalarda akışın gerçekleşip gerçekleşmediğine dair testleri barındıran bir alt kırılımdır. Tanımı yapılmamış testlerde görüntü aşağıdaki gibidir.

availability 6

Failures,
4 ana başlık altında uygulamaya ait alınan hataları hem grafik hem de log olarak görüntüleyebildiğimiz alandır. Bunlar: operasyonlar(Request name, Request Count, Pin), Dependencies/Bağımlıklar, Exceptions , Roles (Requesti atan kullanıcının cloud role’u — burada bağlı olan application’ın active directory’deki rolü üzerinden kontroller yapılır. — , Dependencies, Dependency Failures , Requests, Failed Requests, Total Exceptions, Actions)

Hem sunucu hem de browser üzerinden ayrı kategorilerde filtreleme ile ayrı grafikleri gözlemleyebiliriz.

failures main 7

failures overall 8

Her bir request’in end-to-end transaction details’ine ulaşabiliriz. Stack trace üzerinden hatanın nereden kaynaklandığını board üzerinden görebiliriz. Request üzerinden end to end transaction şu şekilde gözükür:

failures end to end transaction 9

View all telemetry ise, stack traces’ı ve bunun detaylarını gösterir.

New Failures Analysis ile başarısızlıkları custom queryler ile genelleştirmek ve uygulamayı takip etmemiz adına kullanışlı bir alan sağlar. Failure rates, Requests Volume, Request Details, Exception Analysis, Exception Details, Dependency Failure Analysis, Dependency Volume, Dependency Details gibi alanlar altında listeler ve chartlar halinde çıktıları gözlemleyebiliriz.

LOGS:
Application Insight içinde yer alan alt kategorilerden biri olan logs kısmı uygulamamıza ait tüm logların tutulabilmesi için kullanılabilir. Projenin loglama kısmına eklenmiş ve entegre edilmiştir. Uygulamanın tüm logları sorgular yazılarak alınır.

Kendine ait bir sorgu dili mevcuttur. Temel operatorleri şu şekilde listelenebilir.

project : seçili kolonları getirmek için kullanılır.
top X: SQL ‘de olduğu gibi listedeki belirlenen X kadar item’ı getirir.
where: SQL’deki gibi koşul yazmak üzerine kullanılır.

SecurityEvent
| where TimeGenerated > ago(30m)
| where toint(Level) >= 10
| : bu sembol her bir operatörden önce kullanılır. (Mantıksal operatörler hariç)

and, or: Koşullar arasında kullanılan mantıksal operatörlerdir.
ago, before : time bazlı temel fonksiyonlardır.
summarize: group by ile benzer şekilde belirlenen kolona göre gruplamaya yardımcı olur.
sort by: SQL’de kullanıldığı gibi baştan sıralı için ASC ile, tersten sıralama için desc ile beraber kullanılır.

Temel olarak 3 kısımdan oluşur:

logs 10

Bazı sorgular önceden hazırlanmış olarak gelirken, diğerleri özel tanımlı olarak hazırlanabilir. Traces bölümü, uygulamamız tarafından oluşturulan logları listeler. Önem derecesine göre bu listeden sadece hataları değil uyarı — hata ayıklama ve bilgileri de görebiliriz. Uygulamadan gönderilen isteklerin durumlarını ve bodylerini görmek için doğrudan İstekler bölümünden zaman filtreli sorgular gönderebiliriz. Aynı şekilde en çok kullanılanlardan biri olan istisnaları/exceptionları görmek ve hataları ayıklamak için İstisnalar bölümünden zaman filtreli sorgular atılabilir.

Çokça kullanılabilecek ve takip edilmesini kolaylaştıran sorguları hem fonksiyonlar hem de sorgular kısmında görebiliyoruz. Fonksiyonlar, tıpkı programlamada olduğu gibi, functionName() herhangi bir yere yazılarak çağrılır ve çıktısı gözlemlenebilir.

Son olarak logların çıktısını, chart olarak görebilmek adına render operatörü ile beraber chart ismini verdiğimizde çıktıyı o şekilde de elde edebiliriz.

Eğer uygulamamız azure üzerinde deployed haldeyse ve benim fikrimce .NET ile yazılmışsa bu monitoring uygulaması oldukça kullanışlı. Java için kütüphanelerin son versiyonlarını ara sıra kontrol etmeyi unutmayın 🙂

MercanKaracaBey2
Tags: AzureDevOpsMicrosoft
SendTweet5Share1Share
Önceki Gönderi

Google Play App Bundle Uygulama İmzalama

Sonraki Gönderi

AdMob’a En İyi Alternatif: AdColony SDK ve Flutter Kurulumu

İlgili Yazılar

Yapay Zeka Destekli Dijital Medya Takip Aracı: sentitracer.com

Yapay Zeka Destekli Dijital Medya Takip Aracı: sentitracer.com

by Yazılım Karavanı
Şubat 10, 2025
0

Dijital dünyada her gün milyonlarca veri üretilirken, bireyler ve markalar hakkında yapılan yorumlar, haberler ve paylaşımlar büyük bir bilgi havuzu...

Sentry’den Raygun’a: Hata ve Performans İzleme Araçlarını Karşılaştırma

Sentry’den Raygun’a: Hata ve Performans İzleme Araçlarını Karşılaştırma

by Ali Murat Çevik
Mayıs 26, 2024
0

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...

OKR (Objectives and Key Results) Nedir ve Nasıl Uygulanır?

OKR (Objectives and Key Results) Nedir ve Nasıl Uygulanır?

by Yazılım Karavanı
Mayıs 24, 2024
0

OKR Nedir? OKR, Objectives and Key Results (Hedefler ve Anahtar Sonuçlar) kelimelerinin kısaltmasıdır. Bu yönetim metodolojisi, şirketlerin ve bireylerin belirledikleri...

Flutter CI/CD Süreçleri (Azure DevOps Pipeline) – Part1/iOS

Flutter CI/CD Süreçleri (Azure DevOps Pipeline) – Part1/iOS

by Ali Murat Çevik
Mayıs 11, 2023
0

Herkese selamlar, bu yazıda yazılım geliştirme süreçlerinin verimliliğini ve çevikliğini artıracak bir konuyu ele almak istedim. Part1 olarak fazlandırdığım bu...

Telefonlarımız Bizi Dinliyor Peki Ama Nasıl?

Telefonlarımız Bizi Dinliyor Peki Ama Nasıl?

by Tunahan Tekeoğlu
Mayıs 5, 2023
0

IDFA NEDİR ? IDFA, Reklamverenler için "tanımlayıcı" olarak çevrilebilecek bir mobil reklam kimliğidir ve Apple cihazlarını kullanan kullanıcılara verilir. Bu...

Next Post
AdMob’a En İyi Alternatif: AdColony SDK ve Flutter Kurulumu

AdMob’a En İyi Alternatif: AdColony SDK ve Flutter Kurulumu

Veri Bilimi Kongresi “Data’Speak” için Geri Sayım

Veri Bilimi Kongresi "Data'Speak" için Geri Sayım

  • Popüler
  • Yorumlar
  • En Yeniler
Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Temmuz 26, 2021
B Ağaçları (B Trees)

B Ağaçları (B Trees)

Ağustos 24, 2020
Gini Index Kullanılarak Karar Ağacının (Decision Tree)  Oluşturulması

Gini Index Kullanılarak Karar Ağacının (Decision Tree) Oluşturulması

Ağustos 20, 2020
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

Mayıs 18, 2018
2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

6
Magento 2 Detaylı Kurulum & Hatalar

Magento 2 Detaylı Kurulum & Hatalar

5
Flutter’da TFLite Kullanımı

Flutter’da TFLite Kullanımı

4
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

2
Yeni Siber Güvenlik Kanunu: Yazılım Geliştiriciler İçin Neler Değişti?

Yeni Siber Güvenlik Kanunu: Yazılım Geliştiriciler İçin Neler Değişti?

Mart 19, 2025
Google Play Health Connect Politika Güncellemesi: Güncellenen Veri Koruma Kuralları

Google Play Health Connect Politika Güncellemesi: Güncellenen Veri Koruma Kuralları

Mart 10, 2025
Yapay Zeka Destekli Dijital Medya Takip Aracı: sentitracer.com

Yapay Zeka Destekli Dijital Medya Takip Aracı: sentitracer.com

Şubat 10, 2025
OneSignal Kullanarak Güvenli Push Notifications Oluşturma Rehberi

OneSignal Kullanarak Güvenli Push Notifications Oluşturma Rehberi

Aralık 14, 2024

Reklam

Yazılım Karavanı | Bilim – Teknoloji – Mühendislik

Bilgi Teknolojileri alanına meraklı herkesin buluşma noktası!

No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar

© 2020 Yazılım Karavanı Kaynak gösterilmesini rica ederiz.