• Hakkımızda
  • Bize Katıl
  • Sizden Gelenler
  • İletişim
Yazılım Karavanı | Bilişim - Teknoloji - Blog
  • 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ı | Bilişim - Teknoloji - Blog
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
SendTweet4Share1Share
Ö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

2022’nin En Popüler Programlama Dilleri ve Python

2022’nin En Popüler Programlama Dilleri ve Python

by Ali Murat Çevik
Haziran 17, 2022
0

Herkese selamlar, bu yazıda 2022 Haziran ayı itibariyle en popüler programlama dillerinden bahsedeceğim. Keyifli okumalar :) Programlama dilleri yapısı gereği...

Azure DevOps Rest Api ile Çalışmak

Azure DevOps Rest Api ile Çalışmak

by Mercan Karacabey
Ocak 28, 2022
0

Bu yazıyı, projede kullanırken özellikle kaynak sıkıntısı yaşamış olduğum için, ekstra bir kaynak türetebilmek amacıyla yazmak istedim. Microsoft’un kendi yayınlamış...

Google Cloud Teknolojileri

Google Cloud Teknolojileri

by Mercan Karacabey
Ağustos 6, 2021
0

Her şeyden önce Google Cloud teknolojileri üzerine yazıyor olduğum bu metinde ilk cevaplamamız gereken kısım Cloud Computing, Türkçesiyle “Bulut Bilişim”...

5 Ana Başlıkta “Kişisel Verilerin Korunması Kanunu”

5 Ana Başlıkta “Kişisel Verilerin Korunması Kanunu”

by Tunahan Tekeoğlu
Mayıs 16, 2021
0

KVKK Nedir? Teknolojinin hayatımızı iyiden iyiye neredeyse ele geçirmesi ile birlikte “kişisel verileri koruma” konusu ve konusu kişiler, kurumlar ve...

Kurumsal Kaynak Planlama (ERP) Nedir?

Kurumsal Kaynak Planlama (ERP) Nedir?

by İrem Türkü ÇINAR
Mayıs 7, 2021
0

Merhaba Arkadaşlar, Bugünkü yazımda sizlere ERP Sistemler olarak anılan, içerisinde bulunduğumuz çalışma süreçleri içerisinde hayatımızı kolaylaştıran yazılım sistemlerinden bahsedeceğim. Öncelikle...

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

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

  • 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
Splash Screen Yapımı #Flutter

Splash Screen Yapımı #Flutter

Mayıs 25, 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
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
VGG-19 Transfer Learning ile Görüntü Sınıflandırma

VGG-19 Transfer Learning ile Görüntü Sınıflandırma

Eylül 12, 2022
SOC Sistemler Üzerine Faydalı Notlar

SOC Sistemler Üzerine Faydalı Notlar

Eylül 2, 2022
Python NLTK Kütüphanesi İle Basit Bir Chatbot Yapımı

Python NLTK Kütüphanesi İle Basit Bir Chatbot Yapımı

Ağustos 23, 2022
Makine Öğrenimi Nedir?

Makine Öğrenimi Nedir?

Ağustos 4, 2022

Reklam

Yazılım Karavanı | Bilişim – Teknoloji – Blog

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.