پرش به مطلب اصلی

هشدارها

🖼
تصویر: تنظیم هشدارهای مانیتورینگplaceholder — تصویر را اینجا جایگزین کنید

سیستم هشداردهی ابرکلیک به شما امکان می‌دهد برای اپلیکیشن‌ها و پایگاه‌های داده‌ی خود قوانین هشدار تعریف کنید و در صورت بروز مشکل، بلافاصله مطلع شوید.


موارد قابل رصد

متریکمنبعتوضیح
cpu / cpu_thresholdاپ / دیتابیسدرصد مصرف CPU نسبت به سقف پلن
memory / memory_thresholdاپ / دیتابیسدرصد مصرف RAM نسبت به سقف پلن
crash_loopاپریستارت مکرر کانتینر (CrashLoopBackOff)
deploy_failed / deployment_failureاپشکست فرایند دیپلوی
اطلاع

متریک‌های crash_loop و deploy_failed نیازی به تنظیم آستانه ندارند — وقوع رویداد خود باعث فعال شدن هشدار می‌شود.


ساخت قانون هشدار از داشبورد

۱. وارد داشبورد شوید و اپ یا دیتابیس موردنظر را باز کنید. ۲. از منوی کناری روی Alerts کلیک کنید. ۳. دکمه‌ی افزودن قانون هشدار را بزنید. ۴. فرم زیر را پر کنید:

فیلدتوضیح
Resourceاپ یا دیتابیسی که قانون روی آن اعمال می‌شود
Metricمتریک موردنظر (cpu_percent، memory_percent و ...)
Operatorشرط مقایسه: بزرگ‌تر از (>) یا کوچک‌تر از (<)
Thresholdمقدار آستانه به درصد (مثال: 80)
Channelsکانال‌های اطلاع‌رسانی: اعلان داخل داشبورد، ایمیل

۵. روی ذخیره کلیک کنید.

زمان‌بندی فعال‌سازی

هشدار زمانی فعال می‌شود که شرط تعریف‌شده در ۲ نمونه‌ی متوالی (هر نمونه یک دقیقه) برقرار باشد. به محض بازگشت متریک به زیر آستانه، هشدار به‌طور خودکار رفع می‌شود.


کانال‌های اطلاع‌رسانی

اعلان داخل داشبورد

پیام هشدار در بخش اعلان‌ها (🔔) داشبورد نمایش داده می‌شود.

ایمیل

ایمیل هشدار به آدرس ثبت‌شده‌ی حساب کاربری ارسال می‌شود.

کانال‌های در دست توسعه

پشتیبانی از webhook و Telegram در پلن‌های بالاتر در دست توسعه است.


مدیریت قوانین از طریق API

دریافت لیست قوانین هشدار

curl -X GET https://api.abrclick.ir/v1/alert-rules \
-H "Authorization: Bearer <token>"

پاسخ:

[
{
"id": "ar_01j2kx8m3n",
"resource_type": "app",
"resource_id": "app_01j2abc",
"metric": "cpu_percent",
"operator": ">",
"threshold": 80,
"channels": ["in_app", "email"],
"enabled": true,
"created_at": "2026-06-01T10:00:00Z"
}
]

ساخت قانون هشدار جدید

curl -X POST https://api.abrclick.ir/v1/alert-rules \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"resource_type": "app",
"resource_id": "app_01j2abc",
"metric": "cpu_percent",
"operator": ">",
"threshold": 80,
"channels": ["in_app", "email"]
}'

فیلدهای بدنه‌ی درخواست:

فیلدنوعمقادیر مجازاجباری
resource_typestringapp | databaseبله
resource_idstringشناسه‌ی اپ یا دیتابیسبله
metricstringcpu_threshold | memory_threshold | crash_loop | deploy_failedبله
operatorstring> | <بله
thresholdnumber۰ تا ۱۰۰بله
channelsarrayin_app | emailبله
نکته

برای متریک‌های crash_loop و deploy_failed مقدار threshold نادیده گرفته می‌شود و صرفاً وقوع رویداد موجب فعال‌شدن هشدار می‌شود.


فعال یا غیرفعال‌کردن قانون

# غیرفعال کردن
curl -X PATCH https://api.abrclick.ir/v1/alert-rules/ar_01j2kx8m3n \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'

# فعال کردن مجدد
curl -X PATCH https://api.abrclick.ir/v1/alert-rules/ar_01j2kx8m3n \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"enabled": true}'

حذف قانون هشدار

curl -X DELETE https://api.abrclick.ir/v1/alert-rules/ar_01j2kx8m3n \
-H "Authorization: Bearer <token>"

پاسخ موفق: 204 No Content


مثال‌های کاربردی

هشدار مصرف بالای CPU برای اپ

{
"resource_type": "app",
"resource_id": "app_01j2abc",
"metric": "cpu_percent",
"operator": ">",
"threshold": 85,
"channels": ["in_app", "email"]
}

هشدار مصرف RAM برای دیتابیس

{
"resource_type": "database",
"resource_id": "db_01j2xyz",
"metric": "memory_percent",
"operator": ">",
"threshold": 90,
"channels": ["in_app"]
}

هشدار crash-loop اپ

{
"resource_type": "app",
"resource_id": "app_01j2abc",
"metric": "crash_loop",
"operator": ">",
"threshold": 0,
"channels": ["in_app", "email"]
}

استفاده از SDK

import { AbrclickClient } from '@abrclick/sdk';

const client = new AbrclickClient({
token: process.env.ABRCLICK_TOKEN!,
});

// لیست قوانین هشدار
const rules = await client.getAlertRules();

// ایجاد قانون هشدار جدید
const rule = await client.createAlertRule({
resourceId: 'app_abc123',
resourceType: 'app',
metric: 'cpu',
operator: 'gt',
threshold: 85,
durationMinutes: 2,
notifyVia: 'email',
});

console.log(`قانون ایجاد شد: ${rule.id}`);

// فعال/غیرفعال کردن
await client.toggleAlertRule(rule.id, false); // غیرفعال
await client.toggleAlertRule(rule.id, true); // فعال

// حذف قانون
await client.deleteAlertRule(rule.id);

چرخه‌ی حیات یک هشدار

متریک رصد می‌شود (هر ۱ دقیقه)


شرط برقرار است؟
├── خیر → وضعیت: OK
└── بله → نمونه‌ی اول ثبت می‌شود


در نمونه‌ی بعدی هم برقرار است؟
├── خیر → بازگشت به OK
└── بله → هشدار FIRING می‌شود


اطلاع‌رسانی از طریق کانال‌های تعریف‌شده


متریک به زیر آستانه رسید؟
└── بله → هشدار RESOLVED می‌شود