هشدارها
سیستم هشداردهی ابرکلیک به شما امکان میدهد برای اپلیکیشنها و پایگاههای دادهی خود قوانین هشدار تعریف کنید و در صورت بروز مشکل، بلافاصله مطلع شوید.
موارد قابل رصد
| متریک | منبع | توضیح |
|---|---|---|
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_type | string | app | database | بله |
resource_id | string | شناسهی اپ یا دیتابیس | بله |
metric | string | cpu_threshold | memory_threshold | crash_loop | deploy_failed | بله |
operator | string | > | < | بله |
threshold | number | ۰ تا ۱۰۰ | بله |
channels | array | in_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 میشود