Application Performance Management — Dynatrace Infrastructure Monitoring Bölüm-2

Mevlüt Soner
Kodcular
Published in
6 min readAug 19, 2019

Dynatrace Sunucuları, Prosesleri ve Network’ü de dahil olmak üzere tüm altyapıyı izler ve kullanıcıya analiz edebileceği performans metrikleri oluşturur. İşte bu makale serisinin 2.bölümünde Dynatrace’in altyapı bileşenlerini (Host, Network, Process) nasıl izlediğini ve performans metriklerini inceleyeceğiz. Konuya giriş yapmadan önce dikkat çekmek istediğim bir nokta var; Infrastructure Monitoring (Altyapı İzleme) tek başına ne kadar etkili ?

Altyapı bileşenlerini izleme, tüm Dynatrace izleme resminin yalnızca bir karesidir. Server-Side Service Monitoring (Sunucu taraflı servis izleme) ve Web&Mobil Application Monitoring (Web&mobil uygulama izleme) ile birlikte daha etkili hale gelecektir. Bunun nedeni, her Dynatrace izleme perspektifinin diğer izleme perspektifleriyle iç içe geçmiş olmasıdır.

Ne demek istediğimi daha açık bir dil ile ifade edecek olursam; sisteminizde meydana gelen herhangi bir problemde yalnızca altyapıyı izlerseniz, ortamınıza bir yabancının gözüyle bakıyorsunuz demektir. Bu durumda altyapınızın, uygulamalarınız ve temelindeki servislerle olan ilişkisini anlayamazsınız. Bu proaktif bir yaklaşım olmayacaktır. Fakat, sunucu tarafındaki servisleri ve kullanıcıların cihazlarında yaşadığı gerçek kullanıcı deneyimini izleyerek altyapıyı izlerseniz, işinizi destekleyen tüm yazılım ortamını bütüncül bir şekilde anlayarak yaşanan soruna proaktif bir yaklaşım göstermiş olursunuz. Bu konuya da açıklık getirdikten sonra Dynatrece’in altyapıyı nasıl izlediğine ve performans metriklerine yavaştan giriş yapalım.

Sisteminizde meydana gelen herhangi bir problemde yalnızca altyapıyı izlerseniz, ortamınıza bir yabancının gözüyle bakıyorsunuz demektir. Bu durumda altyapınızın, uygulamalarınız ve temelindeki servislerle olan ilişkisini anlayamazsınız. Bu proaktif bir yaklaşım olmayacaktır. Fakat, sunucu tarafındaki servisleri ve kullanıcıların cihazlarında yaşadığı gerçek kullanıcı deneyimini izleyerek altyapıyı izlerseniz, işinizi destekleyen tüm yazılım ortamını bütüncül bir şekilde anlayarak yaşanan soruna proaktif bir yaklaşım göstermiş olursunuz

Host Monitoring (Sunucu İzleme)

Dynatrace, ajan yüklemesinin ardından altyapıda bulunan tüm kaynakları otomatik olarak keşfederek bu kaynakların performansıyla ilgili sürekli güncellenen metrikler üretir. Host’lar ile ilgili üretilen tüm metrikler Dynatrace arayüzünün Host panelinden görüntülenebilir.

Host paneline göz attığımızda aşağıdaki gibi bir sayfa ile karşılaşırız.

Resim — 1
Yukarıdaki resimde de görebileceğiniz gibi Host sayfasında aşağıdaki bilgiler ve performans metrikleri gösterilmektedir.

Host Properties (Sunucu Özellikleri)
Dynatrace ilgili sunucuya ait tüm özellikleri gösterir.

  • Host name (Sunucu adı)
  • Private&Public IP Address
  • OS and Version (İşletim Sistemi ve versiyon)
  • CPU Bilgileri (Logical & Physical CPU Cores)

Host Health (Sunucu Sağlığı)
Dynatrace sunucuya ait olan kaynakların sağlığına ilişkin metrikleri raporlar.

  • CPU Usage (CPU Kullanımı)
  • Memory Usage (Bellek Kullanımı) ve Page Faults (Sayfa Hataları)
  • Disk Space Usage (Disk Alanı Kullanımı), Throughput, Disk Latency (Disk Gecikme Süresi), I/O
  • Network Traffic (İncoming, Outgoing), Packets (Received, Send), Quality (Dropped Packets, Retransmissions Sent), Connectivity (TCP Timeout, TCP Connection Refused)

Problems (Problemler)
Dynatrace İlgili sunucuda meydana gelen problemleri gösterir. Açılan problem kaydının üzerine tıklayarak sorunun root cause’ı analiz edilebilir. Bu konuya Problems and Roout Cause Analysis (Problemler ve Kök Neden Analizi) bölümünde ayrıca değineceğim.

Availability (Kullanılabilirlik)
Dynatrace sunucunun çevrimiçi olduğu ve isteklere yanıt verdiği süre yüzdesini gösterir. Dynatrace ayrıca sunucunun çevrimdışı olduğu (örneğin sunucunun beklenmedik bir şekilde down olduğu) zamanları, işletim sistemi kapanmaları (yeniden başlatmalar dahil) ve süreleri algılar ve gösterir.

Processes
Dynatrace sunucu üzerinde koşan Process’leri ve teknoloji gruplarını gösterir.

Events (Olaylar)
Dynatrace sunucuda meydana gelen Deployments, Process Crash, Process Restarts, Memory Dumps gibi olayların zaman içindeki dağılımını gösterir.

Log Files (Log Dosyaları)
Dynatrace sunucuya ait log dosyalarını saklar.

Tüm bunlara ek olarak, “Consuming Processes” butonuna tıklayarak en çok hangi prosesin sunucu kaynaklarını harcadığını detaylı bir şekilde görebilirsiniz.

Resim — 2

Process Monitoring (Proses İzleme)

Dynatrace, ajan yüklemesinden sonra otomatik olarak prosesleri keşfeder ve aynı uygulamaya veya dağıtım birimine ait olan ve aynı işlevi birden çok sunucuda gerçekleştiren mantıksal proses grupları oluşturur. Proses grupları, modern web tabanlı uygulamaların temel yapı taşı olarak düşünülebilir.

Teknolojiye genel bakış sayfası (Teknoloji Overview), ortamdaki tüm izlenen teknolojilerin sağlığı ve performansı hakkında konsolide bir genel bakış sunar. Gezinti menüsünden “Technologies” seçilerek teknoloji genel bakış sayfası görüntülenebilir.

Teknolojiye genel bakış sayfası, çevrenizdeki teknolojiye özgü her proses grubu için 1 döşeme olarak düzenlenmiştir. Her proses grubu, aynı işlevi birden çok sunucuda gerçekleştiren, örneğin Cassandra veya ElasticSeach kümeleri gibi bir proses kümesini temsil eder.

Resim — 3
Yukarıda da gördüğünüz gibi Dynatrace ilgili prosesleri otomatik olarak keşfederek proses gruplarına ayırmıştır. Örneğin yukarıdaki izlenen ortamda 24 adet .NET, 8 adet Java, 35 adet Apache Tomcat vs. gibi proses grupları yer almaktadır. Ayrıca ilgili kutucuğun üzerine tıklandığında bu proseslerin hangileri olduğunu ve performans metriklerini detaylı bir şekilde monitor edebilirsiniz.

Aşağıdaki örnekte 2 proses örneğinden oluşan bir Java proses grubu vardır. Bu proses grubu, periyodik CPU tüketim artışlarına sahiptir; proses grubu örneklerinden biri CPU’nun % 39'unu tüketirken, başka bir makinedeki aynı prosesler mevcut işlemcinin yalnızca % 1,68'ini tüketmektedir.

Resim — 4
“Process group details”
butonuna tıklayarak ilgili proses grubuna ait olan aşağıdaki performans metriklerine erişebilirsiniz.

  • System Performance (Memory and CPU)
  • Networking (Connectivity and Retransmission)
  • Technology-Specific Metrics (GC Time, Suspension)
  • Log Files

Resim — 5

Network Monitoring (Ağ İzleme)

Ağ iletişimi izleme özelliğiyle Dynatrace, sunucuların ve bunlarla çalışan proseslerin arasındaki iletişim kalitesi hakkında bilgi verir. Bir prosesin yeterli sunucu kaynağına sahip olduğunu ve zamanında yanıt verdiğini bilmek yeterli değildir. Ayrıca, proseslerin, çağrılan taraflara verdikleri yanıtları açıkça ilettiği ve gerekli tüm kaynaklara kesintisiz erişime sahip olduğundan emin olmak gerekir. Bunlara ek olarak hangi proseslerin ağ kaynaklarını en çok tükettiğini bilmek de önemlidir. Bu ağ iletişimi anlayışı, prosesler ve üzerinde çalıştıkları sunucular arasında değiştirilen veri paketlerini izleyerek elde edilebilir.

Gezinti Menüsünden “Network” seçilerek Network genel bakış sayfası görüntülenebilir.

Resim — 6
Network ile ilgili olan Host ve Proses Monitoring’de de bahsi geçen Connectivity, Quality, Traffic, Packets, Responsiveness gibi kavramları bu başlık altında açıklayacağım.

Network Traffic (Ağ Trafiği)
Ağ trafiği, servisinizin genel kullanımına ve performansına genel bir bakış sağlar. Ayrıca, alt yapınızın yükseltmeniz gerekip gerekmediğinin iyi bir göstergesidir.

Connectivity (Bağlanabilirlik)
Aşırı yüklenmiş veya kötü yapılandırılmış prosesler yeni bağlantıları kabul etmede sorun yaşayabilirler. Bu, TCP el sıkışmalarının (TCP handshake) zaman aşımına uğramasına veya sıfırlanmasına neden olur. Bu tür sorunlar, TCP bağlantısı reddedildi veya TCP bağlantısı zaman aşımı hataları olarak izlenir. Connectivity, reddedilen bağlantı veya timeout’a uğrayan TCP bağlantılarına kıyasla, doğru şekilde kurulan TCP bağlantılarının yüzdesi anlamına yani kısaca başarıyla kurulan bağlantıların yüzdesi anlamına gelmektedir.

Responsiveness (Duyarlılık)
Duyarlılık, servisin gönderdiği ilk yanıt paketinden, aldığı son istek paketine geçen süreyi ölçer. Bir prosesin verilen bir talebe cevap vermesi gereken zamanı ölçer ve donanım kaynakları ile bağlantılı olarak izlenmesi gerekir.

Quality (Kalite)
Bir ağ bağlantısı aşırı yüklendiğinde (overloaded) veya düşük performans gösterdiğinde, veri paketlerini düşürür. Bunun nedeni, aşırı yüklenen ağ ekipmanı kuyruklarının aşırı trafik veya sınırlı donanım kaynakları dönemlerinde temizlenmesidir. Yanıt olarak, TCP protokol mekanizmaları, Drop olan paketleri yeniden ileterek durumu düzeltmeye çalışır. Bu Retransmission’lar Dynatrace tarafından tespit edilir ve tüm ilgili sunucu ve proses sayfalarında Quality sekmelerinde görüntülenir. Aşağıda bir proses için doğal olmayan yüksek bir Retransmission örneği verilmiştir.

Resim — 7
Not:
İdeal olarak, Retransmission oranları yerel alan ağlarında %0,5'i, İnternet veya cloud tabanlı ağlarda %2'i geçmemelidir. %3'ün üzerindeki Retransmission oranları, çoğu modern uygulamarda kullanıcı deneyimini olumsuz etkiler. Retransmission sorunları, özellikle zayıf şebeke kapsama alanlarında mobil cihazlar kullanan müşteriler tarafından farkedilir.

Yaygın Network Hataları

  • Checksum Errors (Sağlama Hataları)
  • Full Queues (Dolu Kuyruklar)
  • Time to live Exceeded (Yaşama zamanının aşılması)
  • Packet Retransmission (Paket tekrar iletimi)

Bu makalede, Dynatrace’in Sunucu, Proses ve Network izlemesi konusundaki yeteneklerinden, performans metriklerinden bahsettik ve Teknoloji, Sunucu ve Ağ genel bakış sayfalarına göz attık. Makale serisinin bir sonraki bölümünde girişte bahsettiğim Server-side Service Monitoring (Sunucu taraflı servis izleme) konusunu anlatacağım.

TAGs: application performance management, apm, dynatrace, host monitoring, network monitoring , process monitoring, infrastructure monitoring, yaygın ağ hataları, altyapı izleme, sunucu izleme, performans metrikleri

--

--