حافظ على صحة APIs باستخدام APISIX و Prometheus

Bobur Umurzokov

Bobur Umurzokov

July 20, 2023

Technology

تعتبر فحوصات صحة API جزءًا من نهج استباقي لمراقبة الصحة العامة لواجهات برمجة التطبيقات الخاصة بك. فهي تضمن أن تظل على اطلاع دائم بصحة API العامة لديك ويمكنك تحديد أي مشكلات في المراحل المبكرة. في هذه المقالة، سنستكشف كيف يعمل APISIX وPrometheus معًا لجمع وتحليل بيانات فحص الصحة، مما يجعل مراقبة وتشخيص ومعالجة المشكلات المتعلقة بـ API أسهل.

لماذا يهم هذا الشركات؟

أصبح إنشاء مؤشرات مستوى الخدمة (SLIs) وأهداف مستوى الخدمة (SLOs) مكونًا حاسمًا من أفضل ممارسات هندسة موثوقية الموقع (SRE). فهي تساعد الفريق على تحديد أهداف واضحة لكيفية عمل الخدمة (مثل موقع ويب أو تطبيق) بشكل جيد. يمكن أن تكون هذه الأهداف للخدمات الداخلية (مثل API تستخدمها تطبيقات الشركة نفسها) أو للمنتجات العامة (التي يستخدمها العملاء). توفر هذه الأهداف للفرق نهجًا قابلًا للقياس لإدارة أداء النظام. على سبيل المثال، تشمل مؤشرات SLI الشائعة معدل الخطأ، زمن الوصول، الإنتاجية، والتوفر، أو يمكن أن يكون هدف SLO مثل "99.9% من طلبات API يجب أن تكتمل في أقل من 300 مللي ثانية".

يقع APISIX API Gateway في مقدمة بنية API الخاصة بك ويمكن أن يكون أداة فعالة في قياس مؤشرات SLIs وSLOs. لا تحتاج إلى معرفة ما يجب قياسه وكيفية قياسه لأنه يمكن أن يصبح معقدًا، خاصة في الهياكل المعقدة والموزعة اليوم. يقوم APISIX تلقائيًا بتتبع جميع المقاييس الضرورية مثل زمن الوصول، الطلبات غير الناجحة، أو الإنتاجية للخدمات التي تستهلكها واجهات برمجة التطبيقات الخاصة بك. يمكن لـ APISIX إجراء فحوصات صحة على الخدمات الخلفية، مما يضمن أنها متاحة لمعالجة الطلبات وتنبيه الفرق المسؤولة إلى المشكلات المحتملة قبل أن تتفاقم لتقليل وقت التوقف وتحسين موثوقية النظام.

كيف تعمل فحوصات صحة بوابة API؟

بشكل عام، تفعيل فحوصات الصحة لواجهات برمجة التطبيقات هو عملية مباشرة. كل خدمة تحتاج فقط إلى نقطة نهاية فحص صحة API محددة (/health). من هناك، يمكنك فحص المقاييس الأكثر صلة بتلك الخدمة مثل استخدام الذاكرة، اتصال قاعدة البيانات، مدة الاستجابة، والمزيد. يمكنك استخدام منصات المراقبة مثل Prometheus وGrafana لعرض النتائج ونظام تنبيه للإشارة الفورية إلى أي مشكلات.

إحدى مزايا APISIX هي أنها تجعل عملية تكوين أدوات المراقبة أسهل للعديد من الخدمات. يقوم APISIX بإرسال طلبات دورية إلى الخدمات الخلفية التي يديرها (المعروفة أيضًا باسم العقد الخلفية). إذا تم إرجاع حالة صحية (عادةً رمز حالة HTTP 200 OK)، تعتبر الخدمة صحية. قد تقيم البوابة أيضًا وقت الاستجابة، معتبرة أن الاستجابة البطيئة مؤشرًا على مشكلات محتملة. إذا فشلت الخدمة في الرد خلال فترة زمنية محددة، أو إذا أرجعت رمز حالة خطأ، يتم تمييزها على أنها غير صحية. ستتوقف عن توجيه حركة المرور إلى تلك الخدمة لمنع أخطاء التطبيق أو التباطؤ وتوجيه حركة المرور إلى عقدة صحية بدلاً من ذلك. تعلم كيفية تمكين فحص الصحة هنا.

جمع بيانات فحص الصحة باستخدام مكون Prometheus في APISIX

يتكامل APISIX مع Prometheus من خلال مكون يسمى prometheus، مما يوفر طريقة فعالة لسحب مقاييس API، بما في ذلك تلك المتعلقة بحالة صحة العقد الخلفية (عدة نسخ من خدمة API خلفية). إليك كيف يعمل:

  1. عند تفعيل مكون Prometheus في APISIX (انظر كيفية تفعيله هنا)، يعرض عنوان URL للمقاييس، عادةً /apisix/prometheus/metrics. يمكنك أيضًا تخصيص URI التصدير، إضافة تسميات إضافية، تردد هذه العمليات، ومعلمات أخرى عن طريق تكوينها في ملف conf/config.yaml.
plugin_attr:
  prometheus:
    export_uri: /metrics
  1. يقوم Prometheus بجمع هذا العنوان URL على فترات محددة، مما يجمع بيانات السلاسل الزمنية المرتبطة بمعايير الأداء المختلفة مثل عدد الطلبات، زمن الوصول، زمن الوصول الخلفي، ورموز الحالة.
  2. مع وظيفة المقاييس المخصصة في Prometheus التي أطلقناها في إصدار APISIX 3.3.0، يمكنك الآن عرض بيانات مقاييس أكثر تفصيلاً لواجهات برمجة التطبيقات الخاصة بك. تتيح هذه الآلية لـ APISIX التحقق دوريًا مما إذا كانت العقد الخلفية صحية أم لا وتعديل التوجيه وفقًا لذلك. يمكن أن تساعد في منع الفشل وتحسين موثوقية النظام، وهو أمر بالغ الأهمية لأي بنية تحتية تعتمد على API. يتم دمج نتائج هذه الفحوصات الصحية في المقاييس التي يعرضها مكون Prometheus، مما يوفر رؤية شاملة وفورية لأداء واجهات برمجة التطبيقات الخاصة بك. على سبيل المثال، إذا أرسلت طلبًا بسيطًا إلى نقطة نهاية /metrics في بوابة APISIX، يمكنك ملاحظة بيانات المراقبة المجمعة وحالة نتيجة فحص الصحة للعقد الخلفية.
curl <http://127.0.0.1:9091/metrics>

...
# HELP apisix_upstream_status حالة العقد الخلفية من فحص الصحة
# 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

القيمة 1 تعني أن العقدة الخلفية صحية و0 تعني أن العقدة الخلفية غير صحية.

  1. يمكنك أيضًا رؤية حالة فحص الصحة للعقد الخلفية على لوحة تحكم Prometheus:

مكون Prometheus في APISIX على لوحة التحكم

  1. تم تكوين مكون Prometheus في APISIX للاتصال تلقائيًا بـ Grafana لتصور هذه المقاييس.

بنفس الأهمية، يمكن أيضًا تمكين Prometheus لجمع المقاييس لـ TCP/UDP. لأن المراقبة على مستوى طبقة النقل توفر رؤى حول كيفية نقل البيانات بين الخدمات في بنيتك التحتية، ويمكن أن تكون حاسمة في تشخيص المشكلات وتحسين الأداء.

تخصيص مكون Prometheus

في سياق APISIX، يعرض مكون Prometheus عدة مقاييس افتراضية. هذه المقاييس قابلة للتكوين، ويمكن توسيع المكون لإضافة مقاييس إضافية بناءً على متطلبات محددة. فريق API7.ai دائمًا على استعداد للإجابة على أي أسئلة قد تكون لديك حول فحص ومراقبة صحة API، كما أن مهندسينا يدعمون بنشاط المستخدمين الجدد لـ APISIX لمساعدتهم في تعديل التكوينات الافتراضية لـ APISIX وفقًا لاحتياجاتهم.

حالة استخدام واقعية: تحسين مراقبة صحة الخوادم لشركة وجبات سريعة عملاقة باستخدام تكامل APISIX وPrometheus

لنفترض أن هناك سلسلة عالمية رائدة للوجبات السريعة لديها آلاف الفروع في جميع أنحاء العالم (يشار إليها فيما بعد باسم "الشركة X") كانت ترغب في تحقيق تكوين خوادم نشطة-نشطة. كان هدفهم هو ضمان أن جميع الخوادم أو مراكز البيانات يمكنها مشاركة عبء العمل في الوقت الفعلي دون التسبب في تعطل الخدمة.

كان لدى فريق التكنولوجيا في الشركة عملية تبديل تلقائية بين الخوادم أو مراكز البيانات. ومع ذلك، كانت هناك أوقات تختلف فيها حركة المرور التجارية بين الخوادم النشطة، وكان التحميل موزعًا بشكل غير متساوٍ. كانت بعض الخوادم مثقلة بالأعباء، بينما كانت خوادم أخرى تتلقى حركة مرور أقل، مما أدى إلى عدم كفاءة تشغيلية. خلال أوقات الذروة، أدى ذلك إلى تعطل الخوادم وتعطل الخدمة، مما أثر على العمليات الرقمية للشركة.

سمح APISIX للشركة بمراقبة صحة خوادمها/مراكز البيانات الخلفية بشكل مستمر والتبديل التلقائي لحركة المرور بناءً على حالة صحة الخادم. إذا كان الخادم يعتبر غير صحي، يمكن للنظام التبديل تلقائيًا إلى خادم صحي آخر للحفاظ على الخدمة دون انقطاع. في سيناريوهات محددة حيث كانت حركة المرور صغيرة بشكل غير عادي أو كبيرة جدًا بالنسبة للخادم للتعامل معها، تم تشغيل آلية التنبيه في Prometheus. سهل هذا التكامل لفريق عمليات الشركة X مراقبة حالات صحة الخوادم، أحمال حركة المرور، ومقاييس حرجة أخرى بشكل استباقي.

ختامًا

باختصار، يمكن أن يؤدي تكامل APISIX وPrometheus للحصول على بيانات مقاييس فحص الصحة إلى تحسين نظام المقاييس الخاص بك بشكل كبير، مما يمنحك فهمًا أعمق لحالة صحة واجهات برمجة التطبيقات الخاصة بك. يمكن أن يؤدي هذا في النهاية إلى نتائج أعمال أفضل، مثل تحسين الكفاءة التشغيلية، رضا العملاء الأعلى، وزيادة الإيرادات. لذا، إذا كنت تبحث عن تحسين نظام المقاييس الخاص بك، ففكر في الاستفادة من قوة APISIX وPrometheus.

موارد ذات صلة

محتوى موصى به

Tags: