Jaga Kesehatan API dengan APISIX dan Prometheus
July 20, 2023
Pemeriksaan kesehatan API adalah bagian dari pendekatan proaktif untuk memantau kesehatan keseluruhan API Anda. Mereka memastikan Anda tetap terinformasi tentang kesehatan API secara keseluruhan dan dapat mengidentifikasi masalah apa pun pada tahap awal. Dalam artikel ini, kita akan menjelajahi bagaimana APISIX dan Prometheus bekerja sama untuk mengumpulkan dan menganalisis metrik data pemeriksaan kesehatan, sehingga memudahkan untuk memantau, mendiagnosis, dan menangani masalah terkait API.
Mengapa ini penting bagi bisnis?
Fakta bahwa menetapkan Indikator Tingkat Layanan (SLI) dan Tujuan Tingkat Layanan (SLO) telah menjadi komponen penting dari praktik terbaik rekayasa keandalan situs (SRE). Mereka membantu tim menetapkan tujuan yang jelas tentang seberapa baik suatu layanan (seperti situs web atau aplikasi) harus bekerja. Tujuan ini dapat untuk layanan internal (seperti API yang digunakan oleh aplikasi perusahaan sendiri) atau untuk produk publik (digunakan oleh pelanggan). Mereka memberikan tim pendekatan yang dapat diukur untuk mengelola kinerja sistem. Misalnya, SLI umum termasuk tingkat kesalahan, latensi, throughput, dan ketersediaan atau SLO bisa berupa "99,9% permintaan API harus selesai dalam waktu kurang dari 300ms."
APISIX API Gateway berada di depan infrastruktur API Anda dan dapat berperan penting dalam mengukur SLI dan SLO. Anda tidak perlu mencari tahu apa yang harus diukur dan bagaimana mengukurnya karena hal ini bisa menjadi masalah, terutama dalam arsitektur yang kompleks dan terdistribusi saat ini. APISIX secara otomatis melacak semua metrik yang diperlukan seperti latensi, permintaan yang gagal, atau throughput untuk layanan upstream yang dikonsumsi oleh API Anda. APISIX dapat melakukan pemeriksaan kesehatan pada layanan backend, memastikan mereka tersedia untuk memproses permintaan dan mengingatkan tim yang bertanggung jawab tentang potensi masalah sebelum mereka meningkat untuk meminimalkan downtime dan meningkatkan keandalan sistem.
Bagaimana cara kerja pemeriksaan kesehatan gateway API?
Secara umum, mengaktifkan pemeriksaan kesehatan untuk API adalah proses yang sederhana. Setiap layanan hanya memerlukan titik akhir API pemeriksaan kesehatan yang ditentukan (/health). Dari sana, Anda memeriksa metrik yang paling relevan untuk layanan tersebut seperti penggunaan memori, konektivitas database, durasi respons, dan lainnya. Anda dapat menggunakan platform observabilitas seperti Prometheus dan Grafana untuk menampilkan hasil dan sistem peringatan untuk segera menandai masalah apa pun.
Salah satu manfaat APISIX adalah membuat proses konfigurasi alat observabilitas lebih mudah untuk beberapa layanan. APISIX secara berkala mengirim permintaan ke layanan backend yang mereka kelola (juga dikenal sebagai node upstream). Jika status sehat dikembalikan (biasanya kode status HTTP 200 OK), layanan dianggap sehat. Gateway juga dapat mengevaluasi waktu respons, memperlakukan respons yang lambat sebagai indikasi potensi masalah. Jika layanan gagal merespons dalam waktu yang ditentukan, atau jika mengembalikan status kesalahan, itu ditandai sebagai tidak sehat. Ini akan berhenti mengarahkan lalu lintas ke layanan tersebut untuk mencegah kesalahan aplikasi atau perlambatan dan mengarahkan lalu lintas ke node yang sehat. Pelajari cara mengaktifkan pemeriksaan kesehatan di sini.
Mengumpulkan data pemeriksaan kesehatan dengan plugin APISIX Prometheus
APISIX terintegrasi dengan Prometheus melalui plugin yang disebut prometheus, menawarkan cara efisien untuk menarik metrik API, termasuk yang terkait dengan status kesehatan node upstream (beberapa instance dari layanan API backend). Berikut cara kerjanya:
- Ketika plugin Prometheus APISIX diaktifkan (Lihat cara mengaktifkannya di sini), itu mengekspos URL metrik, biasanya
/apisix/prometheus/metrics. Anda juga dapat menyesuaikan URI ekspor, menambahkan label tambahan, frekuensi pengambilan data ini, dan parameter lainnya dengan mengonfigurasinya di fileconf/config.yaml.
plugin_attr: prometheus: export_uri: /metrics
- Prometheus mengambil URL ini pada interval tertentu, mengumpulkan data time-series yang terkait dengan berbagai parameter kinerja seperti jumlah permintaan, latensi permintaan, latensi upstream, dan kode status.
- Dengan fungsi metrik kustom Prometheus yang kami rilis dalam versi APISIX 3.3.0, Anda sekarang dapat mengekspos data metrik yang lebih granular untuk API Anda. Mekanisme ini memungkinkan APISIX untuk secara berkala memeriksa apakah node upstream sehat atau tidak dan menyesuaikan routing sesuai dengan itu. Ini dapat membantu mencegah kegagalan dan meningkatkan keandalan sistem, yang sangat penting untuk infrastruktur berbasis API apa pun. Hasil dari pemeriksaan kesehatan ini dimasukkan dalam metrik yang diekspos oleh plugin Prometheus, memberikan pandangan komprehensif dan real-time tentang kinerja API Anda. Misalnya, jika Anda mengirim permintaan sederhana ke endpoint
/metricsAPISIX Gateway, Anda dapat mengamati data pemantauan yang dikumpulkan dan status hasil pemeriksaan kesehatan node upstream.
curl <http://127.0.0.1:9091/metrics> ... # HELP apisix_upstream_status Status upstream dari pemeriksaan kesehatan # TYPE apisix_upstream_status gauge apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.5",port="443"} 0 apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.5",port="80"} 1 apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.7",port="443"} 0 apisix_upstream_status{name="/apisix/upstreams/1",ip="172.27.0.7",port="80"} 1
Nilai 1 menunjukkan sehat dan 0 berarti node upstream tidak sehat.
- Anda juga dapat melihat output status pemeriksaan kesehatan node upstream di dashboard Prometheus:

- Plugin Prometheus APISIX dikonfigurasi untuk terhubung ke Grafana secara otomatis untuk memvisualisasikan metrik ini.
Sama pentingnya, juga memungkinkan untuk mengaktifkan Prometheus untuk mengumpulkan metrik untuk TCP/UDP. Karena observabilitas di lapisan transport memberikan wawasan tentang bagaimana data ditransmisikan antara layanan dalam infrastruktur Anda, dan dapat menjadi kunci dalam mendiagnosis masalah dan mengoptimalkan kinerja.
Melakukan kustomisasi pada plugin Prometheus
Dalam konteks APISIX, plugin Prometheus mengekspos beberapa metrik secara default. Metrik ini dapat dikonfigurasi, dan plugin dapat diperluas untuk menambahkan metrik tambahan berdasarkan persyaratan tertentu. Tim API7.ai selalu siap untuk menjawab pertanyaan apa pun yang mungkin Anda miliki tentang pemeriksaan kesehatan dan pemantauan API, dan insinyur kami secara aktif mendukung pengguna baru APISIX untuk bergabung dan membantu mereka memodifikasi konfigurasi default APISIX sesuai kebutuhan mereka.
Kasus penggunaan dunia nyata: Raksasa Makanan Cepat Saji Meningkatkan Pemantauan Kesehatan Server dengan Integrasi APISIX dan Prometheus
Asumsikan ada rantai makanan cepat saji global terkemuka dengan ribuan cabang di seluruh dunia (selanjutnya disebut sebagai "Perusahaan X") yang ingin mencapai konfigurasi server aktif-aktif. Tujuan mereka adalah memastikan bahwa semua server atau pusat data dapat berbagi beban kerja secara real-time tanpa menyebabkan gangguan layanan.
Tim teknologi perusahaan telah mengotomatisasi proses pengalihan antara server atau pusat data. Namun, ada kalanya lalu lintas bisnis bervariasi antara server aktif, dan beban tidak terdistribusi secara merata. Beberapa server kelebihan beban, dan yang lain menerima lebih sedikit lalu lintas, menyebabkan ketidakefisienan operasional. Selama jam sibuk, ini menyebabkan server crash dan gangguan layanan, memengaruhi operasi digital perusahaan.
APISIX memungkinkan perusahaan untuk terus memantau kesehatan server/pusat data upstream dan secara otomatis mengalihkan lalu lintas berdasarkan status kesehatan server. Jika server dianggap tidak sehat, sistem dapat secara otomatis beralih ke server sehat lainnya untuk mempertahankan layanan tanpa gangguan. Dalam skenario tertentu di mana lalu lintas sangat kecil atau terlalu besar untuk ditangani oleh server, mekanisme peringatan Prometheus memicu alarm. Integrasi ini memfasilitasi tim operasi Perusahaan X untuk memantau status kesehatan server, beban lalu lintas, dan metrik kritis lainnya secara proaktif.
Kesimpulan
Untuk menyimpulkan, mengintegrasikan APISIX dan Prometheus untuk mendapatkan metrik data pemeriksaan kesehatan dapat secara signifikan meningkatkan ekosistem metrik Anda, memberikan pemahaman yang lebih dalam tentang status kesehatan API Anda. Ini pada akhirnya dapat menghasilkan hasil bisnis yang lebih baik, seperti peningkatan efisiensi operasional, kepuasan pelanggan yang lebih tinggi, dan peningkatan pendapatan. Jadi, jika Anda ingin meningkatkan ekosistem metrik Anda, pertimbangkan untuk memanfaatkan kekuatan APISIX dan Prometheus.
Sumber daya terkait
- Memantau Metrik API: Bagaimana Memastikan Kinerja Optimal API Anda?
- Memantau Microservices dengan Prometheus dan Grafana