
Apinizer’ın Metrik Sistemine Genel Bakış

- Apinizer Gateway: API trafiği, harici bağlantılar, JVM sağlığı ve sistem kaynakları ile ilgili metrikleri toplar
- Apinizer Cache: Önbellek işlemlerini, API isteklerini, JVM performansını ve sistem sağlığını izler
Apinizer Tarafından Toplanan Metrikler

Apinizer Gateway Metrikleri
Gateway bileşeni çeşitli kategorilerde metrikler toplar:API Trafik Metrikleri
Bu metrikler Apinizer Gateway üzerinden geçen istekleri takip eder:- Toplam API trafik istekleri
- Başarılı/başarısız/engellenen API istekleri
- İstek işleme süreleri (pipeline, yönlendirme, toplam)
- İstek ve yanıt boyutları
- Önbellek isabet istatistikleri
- Toplam metrikler (örn., tüm API’ler genelinde toplam API istekleri)
- Detaylı boyutlara sahip etiketli metrikler (örn., API Kimliği, API adı başına istekler)

Harici Bağlantı Metrikleri
Bunlar harici servislere yapılan bağlantıları takip eder:- Toplam harici istekler
- Harici hata sayısı
- Harici yanıt süreleri
JVM Metrikleri
Bunlar Java Sanal Makinesi hakkında içgörüler sağlar:- Bellek kullanımı (heap, non-heap)
- Garbage collection istatistikleri
- Thread sayıları ve durumları
Sistem Metrikleri
Bunlar altta yatan sistemi izler:- CPU kullanımı
- İşlemci sayısı
- Sistem yük ortalaması
- File descriptor sayıları
Apinizer Cache Metrikleri
Cache bileşeni şunları toplar:Önbellek İşlem Metrikleri
- Önbellek get/put sayıları
- Önbellek boyutu ve giriş sayıları
- Önbellek işlem gecikmeleri
- Önbellek girişleri tarafından bellek kullanımı
API Metrikleri
- API istek sayıları
- API yanıt süreleri
- API hata sayıları
JVM ve Sistem Metrikleri
Gateway’e benzer şekilde, Cache bileşeni de JVM performansını ve sistem kaynak kullanımını takip eder.Prometheus Entegrasyonunun Kurulumu
1. Apinizer Bileşenlerinde Metriklerin Etkinleştirilmesi
Apinizer Gateway için:
Apinizer arayüzünde Gateway Environments sayfasına gidin ve “Prometheus Metric Server” seçeneğini etkinleştirin. Bu, 9091 portu üzerinden metrik yayınlamayı aktif hale getirir.Apinizer Cache için:
Cache deployment’ını düzenleyin veMETRICS_ENABLED=TRUE ortam değişkenini ekleyin. Bu şu yollarla yapılabilir:
Apinizer arayüzü üzerinden: Gateway Environments > Deployments & Services > Cache > Edit deployment yolunu izleyin
Kubernetes CLI üzerinden:
2. Prometheus’un Metrik Toplamak için Yapılandırılması
Prometheus’u Apinizer bileşenlerinden metrik toplamak için iki farklı yöntemle yapılandırabilirsiniz:Sabit (Constant) Scraping
Apinizer bileşenlerini 9091 portunda hedefleyen bir servis oluşturun:Kubernetes Service Discovery ile Dinamik Scraping
Daha esnek yapılandırmalar için pod anotasyonları ile Kubernetes servis keşfini kullanabilirsiniz:- Deployment’a anotasyonlar ekleyin:
- Prometheus’u Kubernetes servis keşfini kullanacak şekilde yapılandırın:
PromQL ile Apinizer Metriklerinin Analizi
Prometheus Apinizer bileşenlerinden metrik toplamaya başladıktan sonra, verileri analiz etmek için PromQL (Prometheus Query Language) kullanabilirsiniz. İşte bazı yararlı sorgu örnekleri:
Gateway API Trafik Analizi

Önbellek Performans Analizi
JVM Analizi
Grafana Dashboard’larının Oluşturulması
Grafana’da Prometheus’u veri kaynağı olarak ayarladıktan sonra, Apinizer metriklerini görselleştirmek için dashboard’lar oluşturabilirsiniz. İşte bazı panel önerileri:API Trafik Dashboard’u

- Metrikler:
- Toplam istekler:
sum(rate(apinizer_api_traffic_total_count_total[5m])) - Başarılı istekler:
sum(rate(apinizer_api_traffic_success_count_total[5m])) - Başarısız istekler:
sum(rate(apinizer_api_traffic_error_count_total[5m])) - Görselleştirme: Zaman serisi
- Metrik:
topk(5, sum by (api_name) (increase(apinizer_api_traffic_total_count_tagged_total[5m]))) - Görselleştirme: Bar grafiği
- Metrikler:
- İstek pipeline:
sum(rate(apinizer_api_traffic_request_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_request_pipeline_time_seconds_count[5m])) * 1000 - Yönlendirme:
sum(rate(apinizer_api_traffic_routing_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_routing_time_seconds_count[5m])) * 1000 - Yanıt pipeline:
sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_count[5m])) * 1000 - Görselleştirme: Zaman serisi
- Metrikler:
- İstek boyutu:
sum(rate(apinizer_api_traffic_request_size_bytes_sum[5m])) / sum(rate(apinizer_api_traffic_request_size_bytes_count[5m])) - Yanıt boyutu:
sum(rate(apinizer_api_traffic_response_size_bytes_sum[5m])) / sum(rate(apinizer_api_traffic_response_size_bytes_count[5m])) - Görselleştirme: Zaman serisi
Önbellek Performans Dashboard’u

- Metrikler:
- Get işlemleri:
rate(cache_gets_total[5m]) - Put işlemleri:
rate(cache_puts_total[5m]) - Görselleştirme: Zaman serisi
- Metrik:
(sum(increase(cache_gets_total[5m])) -sum(increase(apinizer_cache_api_errors_total[5m]))) / sum(increase(cache_gets_total[5m])) * 100 - Görselleştirme: Gösterge
- Metrik:
sum(cache_entry_memory_bytes) - Görselleştirme: İstatistik veya gösterge
Sistem Sağlık Dashboard’u
Panel 1: JVM Bellek Kullanımı- Metrik:
sum by (area)(jvm_memory_used_bytes) / sum by (area)(jvm_memory_max_bytes) * 100 - Görselleştirme: Gösterge veya zaman serisi
- Metrik:
sum(system_cpu_usage{pod=~".*"}) by (pod) * 100 - Görselleştirme: Zaman serisi
- Metrik:
sum(jvm_threads_live_threads) - Görselleştirme: İstatistik veya gösterge
Best Practices
1. Metrik Saklama Süresi
İhtiyaçlarınıza göre Prometheus’ta uygun saklama sürelerini yapılandırın. Varsayılan yapılandırma 7 gün veri saklar:- “—storage.tsdb.path=/prometheus”
- “—storage.tsdb.retention.time=7d”
2. Alarm Yapılandırması
Prometheus AlertManager veya Grafana’da kritik metrikler için alarm kurun:- Yüksek API hata oranları:
(sum(increase(apinizer_api_traffic_error_count_total[5m])) / sum(increase(apinizer_api_traffic_total_count_total[5m]))) * 100 > 10 - Yüksek bellek kullanımı:
sum(jvm_memory_used_bytes) / sum(jvm_memory_max_bytes) * 100 > 85 - Yavaş yanıt süreleri:
sum(rate(apinizer_api_traffic_total_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_total_time_seconds_count[5m])) > 1
3. Dashboard Organizasyonu
Grafana dashboard’larınızı mantıksal olarak düzenleyin:- Gateway ve Cache bileşenleri için ayrı dashboard’lar oluşturun
- İlgili metrikleri bir araya getirin
- Namespace, pod veya API’ye göre filtrelemeye izin veren değişkenler kullanın
4. Etiket Kullanımı
Daha etkili sorgulama için Prometheus etiketlerinden yararlanın:api_nameetiketini kullanarak belirli API’lere göre filtreleme yapın- Namespace veya pod’a göre metrikleri analiz edin
- Farklı ortamlar arasında performans karşılaştırması yapın
Sonuç
Apinizer’ı Prometheus ve Grafana ile entegre etmek, API yönetim altyapınız için güçlü izleme yetenekleri sağlar. Metrik toplama işlemini doğru şekilde yapılandırarak, bilgilendirici dashboard’lar oluşturarak ve alarmlar uygulayarak optimal performansı sağlayabilir, sorunları hızlıca tespit edebilir ve API ekosisteniniz hakkında veri odaklı kararlar alabilirsiniz. Bu entegrasyon her bileşenin güçlü yönlerinden yararlanır:- Apinizer’ın kapsamlı metrik toplama özelliği
- Prometheus’un verimli zaman serisi veritabanı ve güçlü sorgu dili
- Grafana’nın esnek ve güzel görselleştirmeleri

Kaynaklar
Daha fazla bilgi için:- Apinizer Dökümantasyonu
- Prometheus Dokümantasyonu
- Grafana Dokümantasyonu

