سلسلة تعزيز قابلية مراقبة API (الجزء 3): التتبع
March 19, 2024
مقدمة
ما هو التتبع الموزع؟
في عالم اليوم من بنية الخدمات الصغيرة والأنظمة الموزعة، غالبًا ما يمر طلب واحد عبر خدمات متعددة، يحتوي كل منها على خطوات معالجة داخلية مختلفة. لضمان التشغيل الفعال والمستقر للأنظمة، من الضروري فهم المسار الكامل ومعالجة هذه الطلبات. أدت هذه الضرورة إلى ظهور تقنية التتبع الموزع. تمكننا هذه التقنية من فهم واضح لرحلة الطلب بأكملها من البداية إلى النهاية، بما في ذلك كل خدمة يمر بها، وقت معالجة كل خدمة، وحدوث أي شذوذ.
عملية استخدام التتبع في واجهات برمجة التطبيقات (APIs)
في البداية، من الضروري نشر وكيل تتبع أو SDK للتتبع عند نقطة الدخول لكل خدمة لالتقاط جميع الطلبات. من خلال بيانات التتبع، يمكننا ملاحظة وقت معالجة الطلبات في كل خدمة بوضوح، وبالتالي تحديد الاختناقات المحتملة في الأداء. لا يسجل التتبع الموزع فقط معالجة الطلبات العادية، بل يلتقط أيضًا أي استثناءات وأخطاء تحدث أثناء العملية. من خلال تصور بيانات التتبع الموزع، يمكننا فهم تدفق الطلبات بين الخدمات والمكونات المختلفة بشكل بديهي.
تعزيز القدرة على المراقبة - التتبع الموزع
بخصوص التتبع الموزع، إليك بعض الطرق لتعزيز القدرة على المراقبة لواجهات برمجة التطبيقات مع أمثلة محددة:
1. اختيار أدوات وتقنيات التتبع الموزع المناسبة
عند اختيار أدوات التتبع الموزع، يجب مراعاة مجموعة التقنيات المستخدمة، متطلبات العمل، وتعقيد المراقبة. Zipkin، SkyWalking، وOpenTelemetry هي حلول شائعة للتتبع الموزع، لكل منها ميزاتها الفريدة.
2. دمج التتبع الموزع في تطوير واجهات برمجة التطبيقات
بالنسبة لـ Zipkin وSkyWalking، يمكن تحقيق التكامل في تطوير واجهات برمجة التطبيقات عن طريق إضافة التبعيات والإعدادات المناسبة. ومع ذلك، بالنسبة لـ OpenTelemetry، يتطلب الأمر إنشاء وإدارة سياق التتبع يدويًا باستخدام واجهة برمجة التطبيقات الخاصة بها.
3. تكييف وتحسين أنظمة التتبع الموزع
يمكن تخصيص Zipkin وSkyWalking وOpenTelemetry من خلال ملفات التكوين. يمكن تعيين معلمات مثل معدل أخذ العينات، تكوين تخزين الخلفية، وتحسين نقل البيانات. بالإضافة إلى ذلك، من المهم تحديد قواعد التنبيه للاستجابة الفورية للأحداث الاستثنائية.
4. تحليل البيانات وتصورها
توفر Zipkin وSkyWalking وOpenTelemetry واجهات تصور لعرض بيانات التتبع الموزع ومقاييس الأداء. على سبيل المثال، في واجهة Zipkin، يمكن البحث وعرض بيانات تتبع محددة لفهم تدفق الطلبات بين الخدمات المختلفة. يوفر لوحة SkyWalking نظرة عامة على الأداء العالمي ورسم بياني لعلاقات استدعاء الخدمات. يمكن استيراد بيانات OpenTelemetry إلى أدوات تصور مختلفة مثل Grafana لإنشاء لوحات تحكم ومخططات مخصصة.
5. تكامل API7 Enterprise مع إضافات التتبع الموزع
يدعم API7 Enterprise إضافات تتبع متعددة، بما في ذلك Zipkin وOpenTracing وSkyWalking. يجب ربط هذه الإضافات بقواعد التوجيه أو القواعد العامة. إذا لم تكن هناك متطلبات لمعدل أخذ العينات، يُنصح بربطها بالقواعد العامة لتجنب الإغفالات.
تحليل حالة عملية: تحسين القدرة على المراقبة لواجهات برمجة التطبيقات للتجارة الإلكترونية
خلال عملية تصفح وشراء المنتجات على منصة تجارة إلكترونية، يتم استدعاء واجهات برمجة تطبيقات متعددة. على سبيل المثال، يستدعي المستخدمون في البداية واجهة برمجة التطبيقات لخدمة المنتجات لاسترداد قائمة المنتجات، ثم يختارون منتجًا معينًا ويستدعون واجهة برمجة التطبيقات لخدمة الطلبات لإنشاء طلب، وأخيرًا يستدعون واجهة برمجة التطبيقات لخدمة الدفع لإكمال الدفع.
في هذا السيناريو، لوحظ أن واجهة برمجة التطبيقات لخدمة الطلبات غالبًا ما تعاني من تأخيرات وانقطاعات خلال فترات الذروة، مما أدى إلى تأخيرات وإخفاقات ملحوظة أثناء عملية الدفع. لمعالجة هذه المشكلة، قرر الفريق إدخال تقنية التتبع الموزع لتشخيص الاختناقات في الأداء وتحسين النظام.
-
اختيار أدوات التتبع الموزع: اختار الفريق SkyWalking كأداة للتتبع الموزع بسبب دعمه للغات متعددة، وسهولة التكامل، وقدراته الغنية في التصور.
-
دمج SkyWalking: تم تطوير خدمة الطلبات بلغة Java، وقام الفريق بدمج وكيل SkyWalking Java في كود خدمة الطلبات. يسمح ذلك لـ SkyWalking بجمع بيانات التتبع تلقائيًا عند استدعاء واجهة برمجة التطبيقات لخدمة الطلبات.
-
تكوين SkyWalking: قام الفريق بتكوين تخزين الخلفية لـ SkyWalking على Elasticsearch وضبط معدلات أخذ العينات المناسبة لتحقيق التوازن بين مستوى التفاصيل في بيانات التتبع وتكاليف التخزين.
-
جمع وتحليل بيانات التتبع: خلال فترات الذروة، لاحظ الفريق سلسلة الاستدعاءات ومقاييس الأداء لواجهة برمجة التطبيقات لخدمة الطلبات من خلال واجهة SkyWalking. وجدوا أن استدعاءًا معينًا لواجهة برمجة التطبيقات لخدمة مخزون المنتجات استغرق وقتًا أطول بشكل ملحوظ أثناء عملية إنشاء الطلب، مما أصبح اختناقًا في الأداء.
-
التحقيق العميق: قام الفريق بفحص بيانات التتبع التفصيلية لواجهة برمجة التطبيقات لخدمة مخزون المنتجات، بما في ذلك معلمات الاستدعاء، النتائج المرجعة، ومعلومات الاستثناءات. اكتشفوا أن واجهة برمجة التطبيقات قامت بتنفيذ عملية استعلام معقدة في قاعدة البيانات عند معالجة منتجات معينة، مما أدى إلى زيادة وقت المعالجة.
-
إجراءات التحسين: لمعالجة هذه المشكلة، نفذ الفريق إجراءين تحسينيين. أولاً، قاموا بتحسين عبارات استعلام قاعدة البيانات لتحسين كفاءة الاستعلام. ثانيًا، قاموا بتنفيذ التخزين المؤقت لواجهة برمجة التطبيقات لخدمة مخزون المنتجات، واسترداد النتائج مباشرة من التخزين المؤقت للمنتجات التي يتم استعلامها بشكل متكرر ولا تتغير كثيرًا، وبالتالي تجنب استعلامات قاعدة البيانات غير الضرورية.
الخلاصة
تلعب تقنية التتبع الموزع دورًا حاسمًا في بنية الخدمات الصغيرة والأنظمة الموزعة. من خلال تسجيل وتصور تدفق الطلبات بين خدمات متعددة، يمكننا تحديد ومعالجة الاختناقات في الأداء بسرعة، مما يعزز استقرار النظام وقدرته على المراقبة. من خلال اختيار أدوات التتبع الموزع المناسبة ودمجها في تطوير واجهات برمجة التطبيقات، يمكننا الحصول على رؤى أعمق في عمليات النظام، وبالتالي تحسين تجربة المستخدم وكفاءة النظام.