Ana içeriğe geç

API Trafik Metriklerini Grafana İle Görselleştirme

Apinizer Gateway, API trafiği, işlem süreleri ve hata oranlarına ilişkin metrikleri Prometheus'a sunar. Bu metrikler Grafana'da paneller halinde izlenir.

Grafana, Elasticsearch'te tutulan API trafik loglarını okumaz. Veri kaynağı, Gateway'in Prometheus endpoint'inden toplanan zaman serisi metrikleridir. Tekil istek kaydı, durum kodu veya istek gövdesi gibi log alanlarına ihtiyaç duyuluyorsa Kibana kullanılmalıdır.

uyarı

Bu sayfadaki grafiklerin veri kaynağı Elasticsearch API trafik logları değildir. Grafana, Apinizer Gateway metriklerini Prometheus üzerinden kullanır. Metrik endpoint'inin varsayılan portu 9091'dir; port özelleştirildiyse Prometheus ve Grafana yapılandırmasında özelleştirilen port kullanılmalıdır.

Kurulum

Grafana kurulumu, Prometheus scraping yapılandırması ve Grafana'da Prometheus veri kaynağının tanımlanması aşağıdaki dokümanlarda yer alır. Örnek grafiklere geçmeden önce bu adımların tamamlanmış olması gerekir.

Prometheus veri kaynağı eklendikten sonra Grafana'da Dashboards → New → Add visualization ile panel oluşturulur. Sorgular PromQL ile yazılır.

Örnek Grafikler

Aşağıdaki paneller, Apinizer Genel Bakış (Overview) ekranındaki özet metriklere benzer bir görünüm sağlar. Sorgular Prometheus'taki apinizer_api_traffic_* metrik ailesini kullanır.

İstek hacmi: toplam, başarılı ve hatalı istekler

Bu panel, API istek hızını (req/s) toplam, başarılı ve hatalı istekler olarak ayırır. Trafikteki artışlar, hata yükselişleri ve başarı oranındaki değişimler aynı grafikte izlenir.

SeriGörselleştirmePromQL
Toplam isteklerTimeseriessum(rate(apinizer_api_traffic_total_count_total[5m]))
Başarılı isteklerTimeseriessum(rate(apinizer_api_traffic_success_count_total[5m]))
Hatalı isteklerTimeseriessum(rate(apinizer_api_traffic_error_count_total[5m]))
  • Y ekseni birimi: req/s
  • Toplam istekler mavi, başarılı istekler yeşil, hatalı istekler kırmızı
  • Legend açık tutulmalıdır; Mean, Max ve Last kolonları anlık hız ile pencere ortalamasını karşılaştırır
İstek hacmi: toplam, başarılı ve hatalı istekler

Kibana'daki tarih histogramı ve sonuç durumu (rt) kırılımının metrik karşılığıdır. Kaynak log belgesi değil, Prometheus sayacıdır.

En yüksek trafik hacmine sahip API'ler

Seçilen zaman aralığında hangi API Proxy'lerin daha fazla çağrıldığını gösterir. Kullanım yoğunluğu ve kapasite dağılımı bu panel üzerinden okunur.

AlanGörselleştirmePromQL
API adına göre istek artışıBar gauge veya Bar charttopk(5, sum by (api_name) (increase(apinizer_api_traffic_total_count_tagged_total[100m])))
  • Görselleştirme yatay veya dikey bar gauge olabilir
  • Sıralama yüksekten düşüğe alınır
  • Legend'da api_name etiketi gösterilir; bu etiket Elasticsearch'teki apn (API Proxy ismi) alanının metrik karşılığıdır
En yüksek trafik hacmine sahip API'ler

API işlem süreleri

İsteğin Gateway içindeki süresini üç aşamaya ayırır: request pipeline, routing ve response pipeline. Değerler milisaniye cinsindendir. Gecikmenin politika katmanından, backend yönlendirmeden veya yanıt işleminden kaynaklanıp kaynaklanmadığı bu kırılımla görülür.

SeriGörselleştirmePromQL
Request pipelineTimeseriessum(rate(apinizer_api_traffic_request_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_request_pipeline_time_seconds_count[5m])) * 1000
RoutingTimeseriessum(rate(apinizer_api_traffic_routing_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_routing_time_seconds_count[5m])) * 1000
Response pipelineTimeseriessum(rate(apinizer_api_traffic_response_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_count[5m])) * 1000
  • Y ekseni birimi: ms
  • Routing süresinin diğer serilerden belirgin yüksek kalması, gecikmenin büyük ölçüde backend çağrısından geldiğini gösterir
API işlem süreleri detayı

Dashboard'a ekleme

Oluşturulan paneller Dashboards → New dashboard → Add ile tek bir dashboard'da toplanır. Zaman aralığı olarak son 1 saat veya son 24 saat, yenileme aralığı olarak 30 saniye önerilir.

İstek/yanıt boyutu, pod CPU kullanımı ve diğer panel örnekleri Grafana Üzerinde Örnek Dashboardlar sayfasındadır.