بررسی سلامت
میترا به هر چیزی که آن را زیر نظر دارد یک پرسش را پاسخ میدهد: آیا این نمونه در حال سرویسدهی است؟ آن را در این نشانی بپرسید، که به ورود به حساب نیاز ندارد:
GET /api/healthتنها چیزی را بررسی میکند که میترا بدون آن نمیتواند کار کند، یعنی پایگاهدادهاش:
| پاسخ | معنی |
|---|---|
200 {"status":"ok"} | در حال سرویسدهی. پایگاهداده پاسخ میدهد. |
503 {"status":"error"} | سرویسدهی نمیکند. پایگاهداده پاسخ نداد، یا بیش از حد طول کشید. |
پاسخ عمداً خشک است. هیچ جزئیات نسخه یا ساختی ندارد که به یک غریبه بگوید شما چه اجرا میکنید، و هیچوقت کش نمیشود، پس هر بررسی وضعیت فعلی را میبیند.
سرویسهای متصل، مانند سرور CalDAV، Notion، Google، ارائهدهنده ورود شما یا جغرافیابی، بخشی از این بررسی نیستند. قطعی کوتاه یکی از آنها نباید خود میترا را ناسالم نشان دهد.
Docker
Section titled “Docker”ایمیج از پیش یک بررسی سلامت Docker دارد که از این نقطه پایانی استفاده میکند، پس docker ps و docker inspect بدون هیچ تنظیمی سلامت واقعی میترا را نشان میدهند. کانتینر تازه starting نشان میدهد، و پس از آماده شدن پایگاهداده healthy. اگر MITRA_PORT را عوض کرده باشید، از آن پیروی میکند.
curl -f http://localhost:3000/api/health # fails unless Mitra is healthydocker inspect --format '{{.State.Health.Status}}' mitraKubernetes
Section titled “Kubernetes”هر دو پروب liveness و readiness را به این نقطه پایانی هدایت کنید:
livenessProbe: httpGet: path: /api/health port: 3000 periodSeconds: 30readinessProbe: httpGet: path: /api/health port: 3000 periodSeconds: 10پایشگرهای در دسترس بودن
Section titled “پایشگرهای در دسترس بودن”هر پایشگر HTTP، مانند Uptime Kuma، Healthchecks.io یا بررسی خود یک متعادلکننده بار، میتواند /api/health را بخواند و هر پاسخی جز 200 را از کار افتاده بداند. با و بدون ورود به حساب به یک شکل کار میکند.