API فحص الصحة

It would be nice to have some sort of health check API. We recently faced an issue with an update and Discourse was producing 500 errors.

However, curl returned 200:

curl -I https://forum.gitlab.com
HTTP/2 200
server: nginx
إعجابَين (2)

This exists, see

/srv/status

15 إعجابًا

Ah, thank you! I was searching “health check” and that didn’t yield any results.

إعجابَين (2)

المشاركة غير موجودة (404). ما هي نقاط النهاية؟

لقد قمت بتحديث منشوري.

إعجابَين (2)

في الواقع، لا أعتقد أن /srv/status سيكتشف مشاكل الترحيل مثل المذكورة أعلاه…

(وسيتطلب ذلك جهدًا كبيرًا لبناء فحص يكتشف مشاكل من هذا النوع)

إعجابَين (2)

نعم… /srv/status موجود كاختبار بسيط جدًا، كل ما يفعله هو التأكد من أن طبقة الوسائط (middleware stack) للتطبيق تعمل بشكل صحيح.

للكشف عن المشكلات التي قد تحدث عند النشر التلقائي، أنصح بمراقبة استجابات الحالة 200؛ فإذا زاد عدد الاستجابات غير 200 بشكل كبير، قم بإرسال تنبيه.

5 إعجابات

هل يُعد https://discourse.example.org/srv/status مكانًا جيدًا لتوجيه مراقب وقت التشغيل إليه؟ أفكر في أن الاعتماد على قياس موثوق لـ “هل الموقع نشط” قد لا يكون كافيًا، لكن سيكون من الجيد وجود شيء يقلل الحمل على النظام لأغراض المراقبة.

(بديلاً من ذلك، هل توجد أي خطط لتوسيع المكونات المدرجة في هذه النقطة النهائية؟)

3 إعجابات

نعم، هذه نقطة معقولة، ويمكنك أيضًا الإشارة إلى موضوع محدد والبحث عن النص إذا كنت ترغب في شيء أكثر تطورًا

7 إعجابات

نعم، كنا نستخدم /about لكننا أميلون لاستخدام هذا بدلاً من ذلك.

استيقظ ذهني القديم في العمليات/الدوريات ليُذكّرني بأن الأمر قد لا يزال مثيراً للاهتمام (ومفيداً أحياناً في استكشاف الأخطاء وإصلاحها) إذا كان شيئاً مثل:

قاعدة البيانات تعمل بشكل صحيح
الوسيط يعمل بشكل صحيح
أي شيء آخر يعمل بشكل صحيح
...
جميع الأنظمة تعمل بشكل صحيح
4 إعجابات