ApinizerMetricsService, API trafiği, harici bağlantılar, cache operasyonları ve JVM durumu hakkında çeşitli metrikler toplar. Bu metrikler Prometheus formatında sunulur ve izleme sistemleriyle entegre edilebilir.
API Trafik Metrikleri
API istekleri, başarı/hata oranları, yanıt süreleri ve boyutları
Harici Bağlantı Metrikleri
Dış servislere yapılan istekler, başarı/hata oranları, yanıt süreleri
Cache Metrikleri
Cache operasyonları, başarı/hata oranları, yanıt süreleri
JVM Metrikleri
Bellek kullanımı, GC, thread durumu, işlemci kullanımı
- Genel Metrik: Etiket içermeyen toplam değerler (örneğin, tüm API isteklerinin toplam sayısı)
- Etiketli Metrik: Detaylı analiz için etiketlerle zenginleştirilmiş metrikler (örneğin, API kimliğine göre istekler)
- API Trafik Metrikleri: API istekleri, başarı/hata oranları, yanıt süreleri ve boyutları
- Harici Bağlantı Metrikleri: Dış servislere yapılan istekler, başarı/hata oranları, yanıt süreleri
- Cache Metrikleri: Cache operasyonları, başarı/hata oranları, yanıt süreleri
- JVM Metrikleri: Bellek kullanımı, GC, thread durumu, işlemci kullanımı
- Genel Metrik: Etiket içermeyen toplam değerler (örneğin, tüm API isteklerinin toplam sayısı)
- Etiketli Metrik: Detaylı analiz için etiketlerle zenginleştirilmiş metrikler (örneğin, API kimliğine göre istekler)
Prometheus Metrik Tipleri
Gateway metrikleri, Prometheus’un dört temel 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 (Sayaç)
Counter (Sayaç)
Counter, 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 kendisirate: Zaman içindeki artış hızını hesaplar (saniyede ne kadar arttığı gibi)increase: Belirli bir zaman aralığındaki toplam artışı hesaplar
Gauge (Gösterge)
Gauge (Gösterge)
Gauge, 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: Etiketlere göre gruplanmış Gauge değerlerinin ortalamasımin/max: Etiketlere göre gruplanmış değerlerin minimum veya maksimumu
Timer (Zamanlayıcı)
Timer (Zamanlayıcı)
Timer, 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 verircount: İşlemin toplam kaç kez yapıldığını verirmean: İşlemin ortalama süresini hesaplarmax: Gözlemlenen en uzun süreyi verirhistogram_quantile: Yüzdelik dilimleri hesaplar
DistributionSummary (Dağılım Özeti)
DistributionSummary (Dağılım Özeti)
DistributionSummary, bir değerin dağılımını izlemek için kullanılır. Timer’a benzer şekilde çalışır, ancak zaman ölçmek yerine istek boyutu, dosya boyutu gibi keyfi sayısal değerleri ölçer. Bu metrik de ortalama, maksimum ve yüzdelik dilimler gibi istatistiksel bilgileri sağlar.Kullanılabilecek İşlemler:
sum: Toplam değeri verircount: Gözlemlenen değer sayısını verirmean: Değerlerin ortalamasını hesaplarmax: Gözlemlenen en büyük değeri verirhistogram_quantile: Yüzdelik dilimleri hesaplar
API Trafik Metrikleri
Bu metrikler, Apinizer üzerinden geçen API isteklerini izlemek ve performanslarını ölçmek için kullanılır. Toplam istek, başarı, hata ve önbellek isabet oranları sayısal olarak takip edilirken, istek işleme süresi ve veri boyutları performans analizi için ölçülür. API bazlı detaylı inceleme yapmak için bazı metrikler api_id ve api_name etiketleri ile sunulmaktadır.
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| apinizer_api_traffic_total_count | Toplam API trafiği istekleri | Counter | - |
| apinizer_api_traffic_success_count | Başarılı API istekleri | Counter | - |
| apinizer_api_traffic_error_count | Hatalı API istekleri | Counter | - |
| apinizer_api_traffic_blocked_count | Engellenen API istekleri | Counter | - |
| apinizer_api_traffic_request_pipeline_time | API isteği pipeline süresi (ms) | Timer | - |
| apinizer_api_traffic_routing_time | API yönlendirme süresi (ms) | Timer | - |
| apinizer_api_traffic_response_pipeline_time | API yanıt pipeline süresi (ms) | Timer | - |
| apinizer_api_traffic_total_time | API toplam süre (ms) | Timer | - |
| apinizer_api_traffic_request_size | API istek boyutu (byte) | DistributionSummary | - |
| apinizer_api_traffic_response_size | API yanıt boyutu (byte) | DistributionSummary | - |
| apinizer_api_traffic_cache_hits_count | API cache isabet sayısı | Counter | - |
| apinizer_api_traffic_total_count_tagged | Toplam API trafiği istekleri | Counter | api_id, api_name |
| apinizer_api_traffic_success_count_tagged | Başarılı API istekleri | Counter | api_id, api_name |
| apinizer_api_traffic_error_count_tagged | Hatalı API istekleri | Counter | api_id, api_name |
| apinizer_api_traffic_blocked_count_tagged | Engellenen API istekleri | Counter | api_id, api_name |
| apinizer_api_traffic_request_pipeline_time_tagged | API isteği pipeline süresi (ms) | Timer | api_id, api_name |
| apinizer_api_traffic_routing_time_tagged | API yönlendirme süresi (ms) | Timer | api_id, api_name |
| apinizer_api_traffic_response_pipeline_time_tagged | API yanıt pipeline süresi (ms) | Timer | api_id, api_name |
| apinizer_api_traffic_total_time_tagged | API toplam süre (ms) | Timer | api_id, api_name |
| apinizer_api_traffic_request_size_tagged | API istek boyutu (byte) | DistributionSummary | api_id, api_name |
| apinizer_api_traffic_response_size_tagged | API yanıt boyutu (byte) | DistributionSummary | api_id, api_name |
| apinizer_api_traffic_cache_hits_count_tagged | API cache isabet sayısı | Counter | api_id, api_name |
Harici Bağlantı Metrikleri
Bu metrikler, Apinizer üzerinden yapılan harici istekleri izlemek için kullanılır. Toplam istek, hata sayısı ve yanıt süresi ölçülerek harici servislerin performansı analiz edilir. URL bazlı detaylı inceleme için bazı metrikler url etiketi ile sunulmaktadır.
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| apinizer_external_requests_total_count | Toplam harici istek sayısı | Counter | - |
| apinizer_external_errors_total_count | Toplam harici hata sayısı | Counter | - |
| apinizer_external_response_time | Harici yanıt süresi (ms) | Timer | - |
| apinizer_external_requests_total_count_tagged | Toplam harici istek sayısı | Counter | url |
| apinizer_external_errors_total_count_tagged | Toplam harici hata sayısı | Counter | url |
| apinizer_external_response_time_tagged | Harici yanıt süresi (ms) | Timer | url |
Cache Metrikleri
Bu metrikler, worker (gateway) pod’unun cache ile olan etkileşimini izlemek için kullanılır. Toplam istek, hata sayısı ve yanıt süresi ölçülerek, worker pod’unun cache operasyonlarını nasıl gerçekleştirdiği ve performansı analiz edilir.
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| apinizer_cache_requests_total_count | Toplam cache istek sayısı | Counter | - |
| apinizer_cache_errors_total_count | Toplam cache hata sayısı | Counter | - |
| apinizer_cache_response_time | Cache operasyon yanıt süresi (ms) | Timer | - |
JVM Metrikleri
Bu metrikler, worker (gateway) pod’undaki JVM performansını ve kaynak kullanımını izlemek için kullanılır. Bellek, GC (Garbage Collection) etkinliği ve thread durumu hakkında detaylı bilgi sağlayarak sistemin verimli çalışmasını analiz etmeye yardımcı olur.
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| jvm_buffer_count_buffers | JVM tarafından kullanılan buffer sayısı | Gauge | - |
| jvm_buffer_memory_used_bytes | Kullanılan toplam buffer belleği (byte) | Gauge | - |
| jvm_buffer_total_capacity_bytes | Buffer toplam kapasitesi (byte) | Gauge | - |
| jvm_gc_live_data_size_bytes | GC sonrası hayatta kalan veri boyutu (byte) | Gauge | - |
| jvm_gc_max_data_size_bytes | GC için maksimum veri boyutu (byte) | Gauge | - |
| jvm_gc_memory_allocated_bytes_total | GC tarafından ayrılan bellek miktarı (byte) | Counter | - |
| jvm_gc_memory_promoted_bytes_total | GC tarafından eden terfi edilen bellek (byte) | Counter | - |
| jvm_gc_pause_seconds_count | GC duraklamalarının toplam sayısı | Counter | - |
| jvm_gc_pause_seconds_max | En uzun GC duraklaması (saniye) | Gauge | - |
| jvm_gc_pause_seconds_sum | Toplam GC duraklama süresi (saniye) | Gauge | - |
| jvm_memory_committed_bytes | JVM tarafından tahsis edilen bellek (byte) | Gauge | - |
| jvm_memory_max_bytes | JVM tarafından kullanılabilecek maksimum bellek (byte) | Gauge | - |
| jvm_memory_used_bytes | JVM tarafından kullanılan bellek (byte) | Gauge | - |
| jvm_threads_daemon_threads | Çalışan daemon thread sayısı | Gauge | - |
| jvm_threads_live_threads | Aktif çalışan thread sayısı | Gauge | - |
| jvm_threads_peak_threads | Erişilen en yüksek thread sayısı | Gauge | - |
| jvm_threads_started_threads_total | Toplam başlatılan thread sayısı | Counter | - |
| jvm_threads_states_threads | Farklı thread durumlarının sayısı | Gauge | state |
Sistem Metrikleri
Bu metrikler, worker (gateway) pod’unun CPU ve sistem yükünü izlemek için kullanılır. CPU çekirdek sayısı, kullanım oranı ve yük ortalaması hakkında bilgi sağlar.
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| system_cpu_count | Toplam CPU çekirdeği sayısı | Gauge | - |
| system_cpu_usage | Sistem genelinde CPU kullanım oranı | Gauge | - |
| system_load_average_1m | Son 1 dakika için sistem yük ortalaması | Gauge | - |
Süreç (Process) Metrikleri
Bu metrikler, worker (gateway) pod’unda çalışan JVM sürecinin kaynak kullanımını izler. CPU kullanımı, açık dosya sayısı ve maksimum dosya limiti hakkında bilgi sağlar.
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| process_cpu_usage | JVM’in CPU kullanım oranı | Gauge | - |
| process_files_max_files | Açılabilecek maksimum dosya sayısı | Gauge | - |
| process_files_open_files | Açık dosya sayısı | Gauge | - |

