مانیتورینگ و متریکها
ابرکلیک ابزارهای جامعی برای نظارت بر عملکرد اپلیکیشنها و پایگاههای داده فراهم میکند. از طریق داشبورد یا API میتوانید متریکهای لحظهای و تاریخی را مشاهده کنید و قوانین هشدار تعریف نمایید.
متریکهای اپلیکیشن
مشاهده در داشبورد
از منوی Apps اپلیکیشن موردنظر را انتخاب کنید و به تب مانیتورینگ بروید. نمودارهای زیر در دسترس هستند:
| متریک | توضیح |
|---|---|
| CPU % | درصد مصرف پردازنده نسبت به سهمیه پلن |
| Memory % | درصد مصرف حافظه نسبت به سهمیه پلن |
| Requests/s | تعداد درخواست HTTP در ثانیه |
بازه زمانی نمودارها قابل تنظیم است:
- 1h — یک ساعت گذشته (دقت: ۱ دقیقه)
- 24h — ۲۴ ساعت گذشته (دقت: ۵ دقیقه)
- 7d — ۷ روز گذشته (دقت: ۱ ساعت)
دریافت متریک از طریق API
GET /v1/apps/:id/metrics?range=1h
پارامترها:
| پارامتر | مقادیر مجاز | پیشفرض |
|---|---|---|
range | 1h, 24h, 7d | 1h |
نمونه درخواست:
curl -H "Authorization: Bearer <TOKEN>" \
"https://api.abrclick.ir/v1/apps/app_abc123/metrics?range=24h"
نمونه پاسخ:
{
"app_id": "app_abc123",
"range": "24h",
"metrics": {
"cpu": [
{ "timestamp": "2026-06-28T10:00:00Z", "value": 12.4 },
{ "timestamp": "2026-06-28T10:05:00Z", "value": 15.1 }
],
"memory": [
{ "timestamp": "2026-06-28T10:00:00Z", "value": 45.2 },
{ "timestamp": "2026-06-28T10:05:00Z", "value": 46.8 }
],
"requests_per_second": [
{ "timestamp": "2026-06-28T10:00:00Z", "value": 8.3 },
{ "timestamp": "2026-06-28T10:05:00Z", "value": 9.1 }
]
}
}
متریکهای پایگاه داده
مشاهده در داشبورد
از منوی Databases پایگاه داده موردنظر را انتخاب و به تب مانیتورینگ بروید:
| متریک | توضیح |
|---|---|
| CPU % | درصد مصرف پردازنده |
| Memory % | درصد مصرف حافظه |
| Active Connections | تعداد اتصالهای فعال در لحظه |
| Queries/s | تعداد query اجرا شده در ثانیه |
دریافت متریک از طریق API
GET /v1/databases/:id/metrics?range=1h
نمونه درخواست:
curl -H "Authorization: Bearer <TOKEN>" \
"https://api.abrclick.ir/v1/databases/db_xyz789/metrics?range=7d"
نمونه پاسخ:
{
"db_id": "db_xyz789",
"range": "7d",
"metrics": {
"cpu": [
{ "timestamp": "2026-06-22T00:00:00Z", "value": 8.7 }
],
"memory": [
{ "timestamp": "2026-06-22T00:00:00Z", "value": 61.3 }
],
"active_connections": [
{ "timestamp": "2026-06-22T00:00:00Z", "value": 4 }
],
"queries_per_second": [
{ "timestamp": "2026-06-22T00:00:00Z", "value": 22.6 }
]
}
}
محدودیت اتصال همزمان بر اساس پلن شما متفاوت است. در پلن cloud (رایگان) حداکثر ۵ اتصال همزمان مجاز است.
قوانین هشدار
با تعریف قوانین هشدار میتوانید در صورت تجاوز متریکها از آستانه تعیینشده، اعلان دریافت کنید.
ایجاد قانون هشدار از داشبورد
- وارد داشبورد شوید
- اپلیکیشن یا پایگاه داده موردنظر را انتخاب کنید
- به تب Alerts بروید
- روی دکمه قانون جدید کلیک کنید
- نوع متریک، آستانه و کانال اطلاعرسانی را تنظیم نمایید
انواع هشدار
| نوع هشدار | توضیح |
|---|---|
cpu_threshold | CPU از آستانه درصدی عبور کند |
memory_threshold | Memory از آستانه درصدی عبور کند |
crash_loop | اپلیکیشن بیش از ۵ بار در ۵ دقیقه کرش کند |
deploy_failed | آخرین دیپلوی با خطا مواجه شود |
کانالهای اطلاعرسانی
| کانال | توضیح |
|---|---|
in_app | اعلان داخل داشبورد ابرکلیک |
email | ارسال ایمیل به آدرس ثبتشده حساب |
API قوانین هشدار
دریافت لیست قوانین:
GET /v1/alert-rules
curl -H "Authorization: Bearer <TOKEN>" \
"https://api.abrclick.ir/v1/alert-rules"
نمونه پاسخ:
{
"alert_rules": [
{
"id": "rule_111",
"app_id": "app_abc123",
"metric": "cpu_threshold",
"threshold": 80,
"condition": "gt",
"channels": ["in_app", "email"],
"enabled": true,
"created_at": "2026-06-01T09:00:00Z"
}
]
}
ایجاد قانون جدید:
POST /v1/alert-rules
curl -X POST \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_abc123",
"metric": "cpu_threshold",
"threshold": 80,
"condition": "gt",
"channels": ["in_app", "email"]
}' \
"https://api.abrclick.ir/v1/alert-rules"
فیلدهای body:
| فیلد | نوع | توضیح |
|---|---|---|
app_id | string | شناسه اپلیکیشن (یا db_id برای پایگاه داده) |
db_id | string | شناسه پایگاه داده (بهجای app_id) |
metric | string | نوع متریک: cpu_threshold, memory_threshold, crash_loop, deploy_failed |
threshold | number | آستانه عددی (برای متریکهای درصدی: ۰ تا ۱۰۰) |
condition | string | شرط: gt (بیشتر از) یا lt (کمتر از) |
channels | array | آرایهای از in_app و/یا email |
برای هشدارهای crash_loop و deploy_failed نیازی به تنظیم threshold و condition نیست — این رویدادها بهصورت باینری فعال میشوند.
فعال/غیرفعال کردن قانون:
PATCH /v1/alert-rules/:id
curl -X PATCH \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "enabled": false }' \
"https://api.abrclick.ir/v1/alert-rules/rule_111"
لاگهای اجرا
لاگهای زنده اپلیکیشن
برای دریافت آخرین خطوط stdout/stderr اپلیکیشن:
GET /v1/apps/:id/logs?tail=100
curl -H "Authorization: Bearer <TOKEN>" \
"https://api.abrclick.ir/v1/apps/app_abc123/logs?tail=50"
با CLI ابرکلیک:
abrclick logs <app-name>
abrclick logs <app-name> --tail 200
پارامترها:
| پارامتر | توضیح | پیشفرض |
|---|---|---|
tail | تعداد آخرین خطوط | 100 |
لاگهای build و دیپلوی
لاگهای فرآیند build از طریق cursor-based polling دریافت میشوند:
GET /v1/apps/:app_id/deployments/:deployment_id/logs
curl -H "Authorization: Bearer <TOKEN>" \
"https://api.abrclick.ir/v1/apps/app_abc123/deployments/dep_456/logs"
برای دنبال کردن لاگهای build در زمان واقعی، cursor را در هر درخواست ارسال کنید:
curl -H "Authorization: Bearer <TOKEN>" \
"https://api.abrclick.ir/v1/apps/app_abc123/deployments/dep_456/logs?cursor=eyJsaW5lIjoxMDB9"
نمونه پاسخ:
{
"lines": [
{ "timestamp": "2026-06-29T08:12:01Z", "text": "Step 1/6 : FROM node:20-alpine" },
{ "timestamp": "2026-06-29T08:12:03Z", "text": "Step 2/6 : WORKDIR /app" },
{ "timestamp": "2026-06-29T08:12:04Z", "text": "Step 3/6 : COPY package*.json ./" }
],
"next_cursor": "eyJsaW5lIjoxMDN9",
"done": false
}
وقتی done: true برگشت داده شد، build تمام شده است.
برای ساختار لاگهای JSON، dashboard بهصورت خودکار فیلدها را parse میکند و نمایش بهتری میدهد.
استفاده از SDK برای متریکها
import { AbrclickClient } from '@abrclick/sdk';
const client = new AbrclickClient({
token: process.env.ABRCLICK_TOKEN!,
});
// دریافت متریکهای اپ
const appMetrics = await client.getAppMetrics('app_abc123', '24h');
console.log(appMetrics.metrics.cpu); // [{ timestamp, value }, ...]
console.log(appMetrics.metrics.memory);
console.log(appMetrics.metrics.requests_per_second);
// دریافت متریکهای دیتابیس
const dbMetrics = await client.getDatabaseMetrics('db_xyz789', '7d');
console.log(dbMetrics.metrics.cpu);
console.log(dbMetrics.metrics.memory);
console.log(dbMetrics.metrics.active_connections);
console.log(dbMetrics.metrics.queries_per_second);
// ایجاد قانون هشدار
const rule = await client.createAlertRule({
resourceId: 'app_abc123',
resourceType: 'app',
metric: 'cpu',
operator: 'gt',
threshold: 85,
durationMinutes: 2,
notifyVia: 'email',
});
console.log(`قانون هشدار ایجاد شد: ${rule.id}`);
محدودیتهای پلن
| پلن | نگهداری متریک | قوانین هشدار |
|---|---|---|
| cloud (رایگان) | ۷ روز | ۲ قانون |
| rain | ۳۰ روز | ۱۰ قانون |
| snow | ۳۰ روز | ۲۵ قانون |
| thunder | ۹۰ روز | ۵۰ قانون |
| storm | ۹۰ روز | نامحدود |
| enterprise | ۳۶۵ روز | نامحدود |
در پلن cloud (رایگان) متریکها با دقت ۵ دقیقه ذخیره میشوند. در پلنهای پولی دقت به ۱ دقیقه افزایش مییابد.