Gateway Metriklerinin Genel Bakışı
Metrik Kategorileri
Apinizer Gateway metrikleri dört ana kategoriye ayrılır:
API istekleri, başarı/hata oranları, yanıt süreleri ve boyutları hakkında detaylı bilgi sağlar.
Dış servislere yapılan istekler, başarı/hata oranları ve yanıt süreleri hakkında bilgi sağlar.
Cache operasyonları, başarı/hata oranları ve yanıt süreleri hakkında bilgi sağlar.
Bellek kullanımı, GC, thread durumu ve işlemci kullanımı hakkında bilgi sağlar.
Metrik Formatları
Her metrik iki formatta toplanır:
Etiket içermeyen toplam değerler. Örneğin, tüm API isteklerinin toplam sayısı.
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
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
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
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
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.
Genel Metrikler
| Metrik Adı | Açıklama | Tip |
|---|---|---|
| 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 |
Etiketli Metrikler (api_id, api_name)
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| 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.
Genel Metrikler
| Metrik Adı | Açıklama | Tip |
|---|---|---|
| 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 |
Etiketli Metrikler (url)
| Metrik Adı | Açıklama | Tip | Etiketler |
|---|---|---|---|
| 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 |
|---|---|---|
| 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 |
|---|---|---|
| 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_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_threads_live_threads | Mevcut canlı iş parçacığı sayısı | Gauge |
| jvm_threads_daemon_threads | Mevcut daemon iş parçacığı sayısı | Gauge |
| 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 |