رفتن به محتوا

مدیریت۱۷ مهر ۱۴۰۵۱ دقیقه مطالعه

بررسی سلامت

میترا به هر چیزی که آن را زیر نظر دارد یک پرسش را پاسخ می‌دهد: آیا این نمونه در حال سرویس‌دهی است؟ آن را در این نشانی بپرسید، که به ورود به حساب نیاز ندارد:

GET /api/health

تنها چیزی را بررسی می‌کند که میترا بدون آن نمی‌تواند کار کند، یعنی پایگاه‌داده‌اش:

پاسخمعنی
200 {"status":"ok"}در حال سرویس‌دهی. پایگاه‌داده پاسخ می‌دهد.
503 {"status":"error"}سرویس‌دهی نمی‌کند. پایگاه‌داده پاسخ نداد، یا بیش از حد طول کشید.

پاسخ عمداً خشک است. هیچ جزئیات نسخه یا ساختی ندارد که به یک غریبه بگوید شما چه اجرا می‌کنید، و هیچ‌وقت کش نمی‌شود، پس هر بررسی وضعیت فعلی را می‌بیند.

سرویس‌های متصل، مانند سرور CalDAV، Notion، Google، ارائه‌دهنده ورود شما یا جغرافیابی، بخشی از این بررسی نیستند. قطعی کوتاه یکی از آن‌ها نباید خود میترا را ناسالم نشان دهد.

ایمیج از پیش یک بررسی سلامت Docker دارد که از این نقطه پایانی استفاده می‌کند، پس docker ps و docker inspect بدون هیچ تنظیمی سلامت واقعی میترا را نشان می‌دهند. کانتینر تازه starting نشان می‌دهد، و پس از آماده شدن پایگاه‌داده healthy. اگر MITRA_PORT را عوض کرده باشید، از آن پیروی می‌کند.

Terminal window
curl -f http://localhost:3000/api/health # fails unless Mitra is healthy
docker inspect --format '{{.State.Health.Status}}' mitra

هر دو پروب liveness و readiness را به این نقطه پایانی هدایت کنید:

livenessProbe:
httpGet:
path: /api/health
port: 3000
periodSeconds: 30
readinessProbe:
httpGet:
path: /api/health
port: 3000
periodSeconds: 10

پایشگرهای در دسترس بودن

Section titled “پایشگرهای در دسترس بودن”

هر پایشگر HTTP، مانند Uptime Kuma، Healthchecks.io یا بررسی خود یک متعادل‌کننده بار، می‌تواند /api/health را بخواند و هر پاسخی جز 200 را از کار افتاده بداند. با و بدون ورود به حساب به یک شکل کار می‌کند.