Apinizer Cache Metriklerinin Genel Bakışı
CacheMetricsService Hazelcast önbellek, API Performans, JVM ve Sistem Sağlığı hakkında çeşitli metrikler toplar. Bu metrikler şu kategorilere ayrılır.
- Hazelcast önbellek istatistikleri
- API performans metrikleri
- JVM
- Sistem Metrikleri
Prometheus Metrik Tipleri
Cache metrikleri, Prometheus'un dört metrik tipi kullanılarak toplanır. Bu tipler, farklı veri türlerini ve davranışlarını en iyi şekilde temsil etmek üzere tasarlanmıştır. Her metrik tipi, veriyi nasıl topladığınıza ve nasıl analiz edeceğinize bağlı olarak farklı amaçlara hizmet eder.
Counter
Counter (Sayaç), yalnızca artan bir değerdir. Uygulama çalışırken sıfırdan başlayarak artar ve yalnızca uygulama yeniden başlatıldığında sıfırlanır. Counter tipi metrikler, toplam istek sayısı, hata sayısı veya tamamlanan işlem sayısı gibi sürekli artan değerleri izlemek için idealdir.
Kullanılabilecek İşlemler:
- sum: Toplam değerin kendisi.
- rate: Zaman içindeki artış hızını hesaplar (saniyede ne kadar arttığı gibi).
- increase: Belirli bir zaman aralığındaki toplam artışı hesaplar.
Gauge
Gauge (Gösterge), anlık bir değeri temsil eder. Bu değer artabilir, azalabilir veya sabit kalabilir. Gauge tipi metrikler, mevcut bellek kullanımı, anlık CPU kullanımı veya aktif çalışan thread sayısı gibi bir anlık durumu veya seviyeyi izlemek için kullanılır.
Kullanılabilecek İşlemler:
- sum: Etiketlere göre gruplanmış Gauge değerlerinin toplamı.
- mean (ortalama): Etiketlere göre gruplanmış Gauge değerlerinin ortalaması.
- min/max: Etiketlere göre gruplanmış değerlerin minimum veya maksimumu.
Timer
Timer (Zamanlayıcı), bir işlemin ne kadar sürdüğünü (genellikle milisaniye veya saniye cinsinden) ölçer. Teknik olarak Prometheus'ta özel bir tip olmasa da, Micrometer gibi kütüphaneler tarafından DistributionSummary ve Counter kombinasyonuyla oluşturulan bir metriktir. Bu metrikler, ortalama süre, maksimum süre ve yüzdelik dilimler gibi bilgileri sağlar.
Kullanılabilecek İşlemler:
- sum: Toplam süreyi verir.
- count: İşlemin toplam kaç kez yapıldığını verir.
- mean (ortalama): İşlemin ortalama süresini hesaplar.
- max: Gözlemlenen en uzun süreyi verir.
- histogram_quantile: Yüzdelik dilimleri hesaplar.
Summary
Summary (Özet), gözlemlenen değerlerin hem toplamını hem de önceden belirlenmiş yüzdelik dilimlerini (quantiles) hesaplayan bir metriktir. Timer ve DistributionSummary'den farkı, yüzdelik dilimleri direkt olarak kendisi toplamasıdır; bu da sorgu zamanında değil, metrik toplanırken hesaplandığı için yüzdelik dilimlerin daha doğru olmasını sağlar.
Kullanılabilecek İşlemler:
sum: Gözlemlenen değerlerin toplamı.
count: Gözlemlenen değerlerin sayısı.
Belirlenmiş yüzdelik dilimler (<metric_name>{quantile="0.99"}).
Önbellek Metrikleri
Bu metrikler, Cache'in önbellek performansını izler. Önbellek aramaları, eklemeleri ve gecikmeleri takip edilerek verimlilik analiz edilir. Ayrıca, bellek maliyeti ve bölümler bazında dağılım ölçülür.
Metrik | Açıklama | Tür |
---|---|---|
cache_gets_total | Toplam önbellek aramaları (isabet ve ıskalamalar) | Counter |
cache_puts_total | Toplam önbellek eklemeleri | Counter |
cache_size | Önbellekteki mevcut girdi sayısı | Gauge |
cache_entries | Önbellek bölümü başına girdi sayısı | Gauge |
cache_entry_memory_bytes | Önbellek girdilerinin bellek maliyeti | Gauge |
cache_gets_latency_seconds | Önbellek erişim gecikmesi | Summary |
cache_puts_latency_seconds | Önbellek ekleme gecikmesi | Summary |
cache_removals_latency_seconds | Önbellek kaldırma gecikmesi | Summary |
API Metrikleri
Bu metrikler, Cache'in API’lerinin performansını izler. İstek sayısı, yanıt süresi ve hata oranları gibi verilerle API performansı değerlendirilir.
Metrik | Açıklama | Tür |
---|---|---|
apinizer_cache_api_requests_total | Toplam API istek sayısı | Counter |
apinizer_cache_api_response_time | API yanıt süresi (saniye) | Timer |
apinizer_cache_api_errors_total | Toplam API hata sayısı | Counter |
JVM Metrikleri
Bu metrikler, Cache'in bellek ve iş parçacığı kullanımını izler. Bellek kullanımı, GC (Garbage Collection) duraklatma süreleri ve aktif iş parçacıkları gibi verilerle JVM performansı analiz edilir.
Metrik | Açıklama | Tür |
---|---|---|
jvm_memory_used_bytes | Alana göre bellek kullanımı (heap/non-heap) | Gauge |
jvm_memory_committed_bytes | Alana göre ayrılmış bellek | Gauge |
jvm_memory_max_bytes | Alana göre maksimum bellek | Gauge |
jvm_gc_pause_seconds | GC duraklatma süresi | Summary |
jvm_threads_live_threads | Mevcut canlı iş parçacığı sayısı | Gauge |
jvm_threads_daemon_threads | Mevcut daemon iş parçacığı sayısı | Gauge |
Sistem Metrikleri
Bu metrikler, Cache'in CPU kullanımı, işlemci sayısı ve yük ortalaması gibi verilerle genel performansını izler. Ayrıca, işlem süresi ve açık dosya sayıları gibi verilerle kaynak kullanımı değerlendirilir.
Metrik | Açıklama | Tür |
---|---|---|
system_cpu_usage | Ana sistemin CPU kullanımı | Gauge |
system_cpu_count | Kullanılabilir işlemci sayısı | Gauge |
system_load_average_1m | Sistem yük ortalaması (1 dakika) | Gauge |
process_cpu_usage | JVM işleminin CPU kullanımı | Gauge |
process_uptime_seconds | JVM işleminin çalışma süresi | Gauge |
process_files_open_files | Açık dosya tanımlayıcı sayısı | Gauge |