أفضل الممارسات لدمج Prometheus مع APISIX
January 13, 2024
في هندسة السحابة الأصلية اليوم، يُعد مراقبة المقاييس لبوابة API الخاصة بك أمرًا بالغ الأهمية. تعمل Apache APISIX كبوابة API عالية الأداء، حيث لا توفر فقط وظائف واسعة النطاق ولكنها تدعم أيضًا التكامل السلس مع Prometheus لجمع ومراقبة مقاييس حركة المرور الرئيسية لـ API. تستكشف هذه المقالة كيفية تكوين واستخدام Prometheus في Apache APISIX، مع تسليط الضوء على الاعتبارات الأساسية والتوصيات بتكوينات المقاييس الشائعة.
حول Prometheus
Prometheus هو نظام مراقبة مفتوح المصدر يجمع ويخزن بيانات السلاسل الزمنية، مما يتيح مراقبة وتحليل أداء النظام في الوقت الفعلي. عند التكامل مع Apache APISIX، يصبح Prometheus أداة فعالة في التقاط المقاييس الدقيقة المتعلقة بحركة مرور API.
تمكين مكون Prometheus في Apache APISIX
-
لتمكين مقاييس Prometheus في Apache APISIX، ابدأ بتكوين مكون Prometheus في ملف
config.yaml
:plugins: - prometheus
-
قم بتكوين مكون Prometheus على الخدمة أو API المطلوب جمعها. بدلاً من ذلك، يمكن تكوينه بشكل عام. إليك مثال على تكوين المكون باستخدام أمر 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 } } }'
للحصول على تكوينات أكثر تعقيدًا، راجع: وثائق مكون Prometheus
تكوين استراتيجية الجمع في Prometheus
في Prometheus، قم بتكوين ملف prometheus.yml
لإضافة APISIX كهدف مراقبة جديد:
scrape_configs:
- job_name: 'apisix'
static_configs:
- targets: ['<APISIX_IP>:<APISIX_PORT>']
المقاييس الشائعة في Apache APISIX
قد تختلف المقاييس الخاصة بالشركات، ولكن إليك بعض المقاييس الرئيسية في Apache APISIX، والتي توفر معلومات غنية لمراقبة النظام وتحليله:
-
مقاييس طلبات واستجابات HTTP:
apisix_http_request_total
: يسجل إجمالي طلبات HTTP عبر APISIX، مما يوفر نظرة عامة على حركة مرور النظام.apisix_http_request_duration_seconds
: يقيس وقت معالجة طلبات HTTP، مما يساعد في تحديد الاختناقات في الأداء.apisix_http_request_size_bytes
: يلتقط حجم طلبات HTTP لتحليل البيانات.apisix_http_response_size_bytes
: يراقب حجم استجابات HTTP لتتبع حجم بيانات الاستجابة.
-
مقاييس خدمات المنبع:
apisix_upstream_latency
: يعكس زمن استجابة خدمات المنبع.apisix_upstream_health
: يشير إلى حالة صحة خدمات المنبع.
-
مقاييس أداء النظام:
apisix_node_cpu_usage
: يبلغ عن استخدام وحدة المعالجة المركزية لعقدة APISIX.apisix_node_memory_usage
: يوفر رؤى حول استخدام الذاكرة.
-
مقاييس حركة المرور:
apisix_bandwidth
: يوضح استخدام النطاق الترددي لحركة المرور الصاعدة والهابطة.
-
مقاييس الأخطاء والاستثناءات:
apisix_http_status_code
: يوزع رموز حالة استجابة HTTP، مع التركيز بشكل خاص على أخطاء 4xx و5xx.
التصور والتنبيهات
استفد من تكامل Grafana وPrometheus لإنشاء لوحات تحكم لتصور هذه المقاييس. بالإضافة إلى ذلك، يمكن تكوين قواعد التنبيه في Prometheus لإعداد تنبيهات بناءً على شروط محددة.
مثال على لوحة تحكم Grafana: أنشئ مخططات مختلفة في Grafana، مثل السلاسل الزمنية أو المخططات الشريطية أو المخططات الدائرية، لعرض مقاييس أداء APISIX. على سبيل المثال، يمكن أن تعرض لوحة التحكم عدد طلبات HTTP وأوقات الاستجابة المتوسطة، مما يوفر رؤى في الوقت الفعلي حول حركة المرور والأداء.
مثال على تنبيهات Prometheus:
يمكن تكوين قواعد التنبيه في Prometheus لشروط مختلفة. على سبيل المثال، إذا تجاوز متوسط مدة apisix_http_request_duration_seconds
عتبة محددة مسبقًا، يمكن تكوين Prometheus لإرسال تنبيهات حرجة.
اعتبارات التحسين
بينما توفر المقاييس الواسعة لـ Prometheus أبعادًا إضافية للمراقبة والتنبيه، من المهم الاعتراف بأن هذه المقاييس تستهلك موارد حسابية. المزيد من المقاييس يعني طلبًا أعلى للموارد، مما قد يؤثر على أنظمة الأعمال.
منذ الإصدار 3.0، قامت Apache APISIX بتحسين كبير في مكون Prometheus، حيث قدمت عملية مخصصة لإحصاءات واسترجاع المقاييس. هذا التحسين يقلل من التأثير على حركة مرور الأعمال الناجمة عن إحصاءات مقاييس Prometheus الواسعة، والتي تم تقديمها بواسطة API7.ai.
الخلاصة
من خلال تكامل Prometheus مع Apache APISIX، تحصل الشركات على رؤى عميقة في بنية API الخاصة بها، مما يضمن عمليات فعالة وآمنة. تصبح مراقبة حركة مرور API تدريجيًا أداة أساسية للوقاية من المشكلات بشكل استباقي، وتحسين الأداء، وضمان الأمان.