مانیتورینگ آپتایم
مانیتور آپتایم یک آدرس را در بازههای ثابت از سمت ارورا صدا میزند، دربارهٔ پاسخ شرطی را بررسی میکند و وقتی شرط بهاندازهٔ کافی نقض شود، خطا باز میکند.
برخلاف بقیهٔ محصولات، این یکی هیچ SDKای نمیخواهد — همهچیزش در خود ارورا تنظیم میشود.
ساخت مانیتور
آپتایم ← مانیتور جدید، یا از راه API:
curl -X POST "$ERRORA/api/v1/projects/$PROJECT_ID/uptime-monitors" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Checkout API",
"url": "https://api.example.com/healthz",
"method": "GET",
"interval_seconds": 300,
"timeout_ms": 10000,
"environment": "production",
"headers": [["Authorization", "Bearer …"]],
"body": "",
"expected_status_codes": [200, 204],
"body_match": "\"status\":\"ok\"",
"downtime_threshold": 3,
"recovery_threshold": 1,
"trace_sampling": false
}'
فیلدها
| فیلد | معنی |
|---|---|
url | آدرسی که آزموده میشود. ریدایرکتها یکییکی و با اعتبارسنجی دنبال میشوند. |
method | GET، POST، HEAD و … |
headers | فهرستی از زوجهای [نام, مقدار] — توکن احراز هویت، هدر Host دلخواه |
body | بدنهٔ درخواست برای بررسیهای POST/PUT |
interval_seconds | 60، 300، 600، 1200، 1800 یا 3600 (یک دقیقه تا یک ساعت) |
timeout_ms | پیشفرض 10000، حداکثر 60000 |
expected_status_codes | خالی یعنی «هر کد ۲xx». در غیر این صورت فهرست مجاز صریح. |
body_match | زیررشتهای که باید در بدنهٔ پاسخ باشد |
downtime_threshold | تعداد شکست پشتسرهم تا مانیتور قطع اعلام شود (پیشفرض 3) |
recovery_threshold | تعداد موفقیت پشتسرهم تا دوباره وصل شود (پیشفرض 1) |
environment | خطا و هشدارهای حاصل را برچسب میزند |
trace_sampling | پیوستکردن ترِیس به هر بررسی (وقتی مقصد سرویس ابزارگذاریشدهٔ خودتان است مفید است) |
is_muted | بررسی ادامه دارد ولی هشدار فرستاده نمیشود |
شکست یعنی چه
یک بررسی وقتی شکست میخورد که خطای اتصال بدهد، تایماوت شود، کد وضعیت غیرمنتظره برگرداند یا
body_match در پاسخ نباشد. دلیل شکست به ازای هر بررسی ثبت میشود، پس در تاریخچه «اتصال رد
شد» از «کد ۵۰۰ برگشت» و «شرط بدنه برقرار نبود» جدا دیده میشود.
پس از downtime_threshold شکست پشتسرهم، مانیتور قطع میشود: ارورا یک خطای قطعی برای
پروژه باز میکند و رویداد هشدار uptime.down را فعال میکند. پس از recovery_threshold
موفقیت، دوباره وصل میشود، خطا را میبندد و uptime.up را فعال میکند.
در پنل
صفحهٔ آپتایم مانیتورها را با وضعیت فعلی، درصد در دسترس بودن و بررسیهای اخیر نشان میدهد. با باز کردن یکی، تاریخچهٔ بررسیها (کد وضعیت، زمان پاسخ، دلیل شکست)، آمار و دکمهٔ بررسی همین حالا را دارید که بدون منتظرماندن برای زمانبندی، یک آزمون فوری اجرا میکند.
هشدارها
رویدادهای uptime.down و uptime.up را در تنظیمات ← وبهوکها به تلگرام، بله،
Mattermost، ایمیل، پیامک یا وبهوک وصل کنید — نگاه کنید به هشدارها.
ارورا به چه چیزی دسترسی دارد
بررسیها از سرورهای خود ارورا اجرا میشوند، نه از داخل شبکهٔ شما؛ پس آدرس باید از اینترنت عمومی در دسترس باشد. آدرسهای خصوصی/داخلی پذیرفته نمیشوند، حتی وقتی ریدایرکت به آنها اشاره کند — اگر لازم است سرویس داخلی را بپایید، یک نقطهٔ سلامت عمومی جلوی آن بگذارید.
API
GET /api/v1/projects/{project_id}/uptime-monitors
POST /api/v1/projects/{project_id}/uptime-monitors
GET /api/v1/projects/{project_id}/uptime-monitors/overview
GET /api/v1/projects/{project_id}/uptime-monitors/{id}
PATCH /api/v1/projects/{project_id}/uptime-monitors/{id}
DELETE /api/v1/projects/{project_id}/uptime-monitors/{id}
GET /api/v1/projects/{project_id}/uptime-monitors/{id}/checks
GET /api/v1/projects/{project_id}/uptime-monitors/{id}/stats
POST /api/v1/projects/{project_id}/uptime-monitors/{id}/check-now
صفحهٔ وضعیت عمومی
صفحهٔ وضعیت، مجموعهای از مانیتورهای آپتایم را به صفحهای تبدیل میکند که کاربرانتان
میخوانند: /status/<نشانی>. این صفحه به حساب کاربری نیاز ندارد، پس وقتی بقیهٔ محصول
از کار میافتد هم کار میکند.
از مسیر آپتایم ← صفحههای وضعیت یکی بسازید. هر صفحه چهار بخش دارد:
- تنظیمات — عنوان، توضیح کوتاه و متن معرفی، نشانی صفحه، لوگو و پیوند پشتیبانی
اختیاری، و یک اعلان بالای صفحه که تا پاککردن سنجاق میماند. صفحه تا زمانی که
منتشرش نکنید پیشنویس است و
404برمیگرداند. - سرویسها — هرکدام یک مانیتور آپتایم، با نامی که برای کاربر معنا دارد
(
Checkout APIنهprod-eu-checkout-lb) و در صورت نیاز زیر یک گروه. وضعیت هر سرویس از بررسیهای همان مانیتور خوانده میشود؛ چیزی برای همگامکردن دستی وجود ندارد. - رویدادها — شرح یک قطعی، همراه با خط زمانی. ثبت بهروزرسانی همان تغییر وضعیت رویداد است: نمیشود وضعیت را بدون توضیح عوض کرد. رویداد باز، صفحه را حتی با وجود سبزبودن همهٔ بررسیها «افت کارایی» نشان میدهد.
- نگهداری — بازهٔ برنامهریزیشده بههمراه متنی که کاربر باید بخواند. تا وقتی بازه در جریان است، سرویسهای آن «در حال نگهداری» گزارش میشوند نه «قطع»؛ پس کار برنامهریزیشده هیچوقت شبیه قطعی دیده نمیشود.
هر سرویس برای هر روز از بازهٔ تاریخچهٔ صفحه (تا ۹۰ روز) یک ستون نشان میدهد که از همان تجمیع ساعتی صفحهٔ جزئیات مانیتور محاسبه میشود.
GET /api/v1/status/{slug} (عمومی، بدون احراز هویت)
GET /api/v1/organizations/{org_id}/status-pages
POST /api/v1/organizations/{org_id}/status-pages
GET /api/v1/organizations/{org_id}/status-pages/{id}
PATCH /api/v1/organizations/{org_id}/status-pages/{id}
DELETE /api/v1/organizations/{org_id}/status-pages/{id}
GET /api/v1/organizations/{org_id}/status-pages/{id}/components
POST /api/v1/organizations/{org_id}/status-pages/{id}/components
GET /api/v1/organizations/{org_id}/status-pages/{id}/incidents
POST /api/v1/organizations/{org_id}/status-pages/{id}/incidents
POST /api/v1/organizations/{org_id}/status-pages/{id}/incidents/{incident_id}/updates
GET /api/v1/organizations/{org_id}/status-pages/{id}/maintenances
POST /api/v1/organizations/{org_id}/status-pages/{id}/maintenances
ویرایش صفحهٔ وضعیت به دسترسی مدیریت سازمان نیاز دارد؛ خواندن صفحهٔ عمومی به هیچ دسترسیای.
عیبیابی
| نشانه | علت / راهحل |
|---|---|
| خطای «آدرس خصوصی» | آدرس به یک IP خصوصی/داخلی میرسد که بررسیها اجازهٔ رسیدن به آن را ندارند |
| قطع و وصل پیاپی | downtime_threshold را بالا ببرید، یا برای نقطهٔ کند timeout_ms را زیاد کنید |
هر بررسی 401/403 میگیرد | مقصد احراز هویت میخواهد — هدر Authorization اضافه کنید |
| در مرورگر باز میشود ولی اینجا شکست میخورد | مقصد به کوکی یا هدر Host خاص نیاز دارد، یا IP بررسیکننده را بلوکه کرده |
| شرط بدنه همیشه رد میشود | body_match زیررشتهٔ ساده است نه عبارت باقاعده — و ممکن است بدنه HTML فشرده باشد نه JSONای که انتظار دارید |