Praktik Terbaik untuk Mengintegrasikan Prometheus dengan APISIX

January 13, 2024

Technology

Dalam arsitektur cloud-native saat ini, memantau metrik dari gateway API Anda sangatlah penting. Apache APISIX, yang berfungsi sebagai gateway API berkinerja tinggi, tidak hanya menawarkan berbagai fungsionalitas tetapi juga mendukung integrasi yang mulus dengan Prometheus untuk mengumpulkan dan memantau metrik lalu lintas API yang krusial. Artikel ini membahas cara mengkonfigurasi dan menggunakan Prometheus di Apache APISIX, menyoroti pertimbangan penting dan merekomendasikan konfigurasi metrik yang umum.

Tentang Prometheus

Prometheus adalah sistem pemantauan sumber terbuka yang mengumpulkan dan menyimpan data deret waktu, memungkinkan pemantauan dan analisis kinerja sistem secara real-time. Ketika diintegrasikan dengan Apache APISIX, Prometheus menjadi alat yang penting dalam menangkap metrik detail terkait lalu lintas API.

Mengaktifkan Plugin Prometheus di Apache APISIX

  1. Untuk mengaktifkan metrik Prometheus di Apache APISIX, mulailah dengan mengkonfigurasi plugin Prometheus di file config.yaml:

    plugins: - prometheus
  2. Konfigurasikan plugin Prometheus pada layanan atau API yang ingin dikumpulkan metriknya. Atau, konfigurasikan secara global. Berikut adalah contoh konfigurasi plugin menggunakan perintah cURL:

    curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { "prometheus":{} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:80": 1 } } }'

    Untuk konfigurasi yang lebih kompleks, lihat: Dokumentasi Plugin Prometheus

Mengkonfigurasi Strategi Pengumpulan di Prometheus

Di Prometheus, konfigurasikan file prometheus.yml untuk menambahkan APISIX sebagai target pemantauan baru:

scrape_configs: - job_name: 'apisix' static_configs: - targets: ['<APISIX_IP>:<APISIX_PORT>']

Metrik Umum di Apache APISIX

Metrik khusus perusahaan mungkin bervariasi, tetapi berikut adalah beberapa metrik kunci di Apache APISIX, yang memberikan informasi kaya untuk pemantauan dan analisis sistem:

  • Metrik Permintaan dan Respons HTTP:

    • apisix_http_request_total: Mencatat total permintaan HTTP melalui APISIX, memberikan gambaran umum tentang lalu lintas sistem.
    • apisix_http_request_duration_seconds: Mengukur waktu pemrosesan permintaan HTTP, membantu mengidentifikasi kemacetan kinerja.
    • apisix_http_request_size_bytes: Menangkap ukuran permintaan HTTP untuk analisis data.
    • apisix_http_response_size_bytes: Memantau ukuran respons HTTP untuk melacak volume data respons.
  • Metrik Layanan Upstream:

    • apisix_upstream_latency: Mencerminkan latensi respons dari layanan upstream.
    • apisix_upstream_health: Menunjukkan status kesehatan layanan upstream.
  • Metrik Kinerja Sistem:

    • apisix_node_cpu_usage: Melaporkan penggunaan CPU dari node APISIX.
    • apisix_node_memory_usage: Memberikan wawasan tentang penggunaan memori.
  • Metrik Lalu Lintas:

    • apisix_bandwidth: Menjelaskan penggunaan bandwidth untuk lalu lintas upstream dan downstream.
  • Metrik Kesalahan dan Pengecualian:

    • apisix_http_status_code: Mendistribusikan kode status respons HTTP, terutama fokus pada kesalahan 4xx dan 5xx.

Visualisasi dan Peringatan

Manfaatkan integrasi Grafana dan Prometheus untuk membuat dashboard guna memvisualisasikan metrik ini. Selain itu, aturan peringatan Prometheus dapat dikonfigurasi untuk mengatur peringatan berdasarkan kondisi tertentu.

Contoh Dashboard Grafana: Buat berbagai grafik di Grafana, seperti deret waktu, grafik batang, atau grafik pie, untuk menampilkan metrik kinerja APISIX. Misalnya, dashboard yang menampilkan jumlah permintaan HTTP dan waktu respons rata-rata memberikan wawasan real-time tentang lalu lintas dan kinerja.

Contoh Peringatan Prometheus: Aturan peringatan di Prometheus dapat dikonfigurasi untuk berbagai kondisi. Misalnya, jika durasi rata-rata apisix_http_request_duration_seconds melebihi ambang batas yang telah ditentukan, Prometheus dapat dikonfigurasi untuk mengirim peringatan kritis.

Pertimbangan Optimasi

Meskipun memiliki banyak metrik Prometheus meningkatkan dimensi pemantauan dan peringatan, penting untuk diakui bahwa metrik ini mengonsumsi sumber daya komputasi. Semakin banyak metrik, semakin tinggi permintaan sumber daya, yang berpotensi memengaruhi sistem bisnis.

Sejak versi 3.0, Apache APISIX telah mengoptimalkan plugin Prometheus secara signifikan, memperkenalkan proses khusus untuk statistik dan pengambilan metrik. Peningkatan ini mengurangi dampak pada lalu lintas bisnis yang disebabkan oleh statistik metrik Prometheus yang ekstensif, yang disumbangkan oleh API7.ai.

Kesimpulan

Dengan mengintegrasikan Prometheus dengan Apache APISIX, perusahaan mendapatkan wawasan mendalam tentang infrastruktur API mereka, memastikan operasi yang efisien dan aman. Pemantauan lalu lintas API secara bertahap menjadi alat penting untuk mencegah masalah secara proaktif, mengoptimalkan kinerja, dan memastikan keamanan.

Tags: