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

مانیتورینگ و متریک‌ها

ابرکلیک ابزارهای جامعی برای نظارت بر عملکرد اپلیکیشن‌ها و پایگاه‌های داده فراهم می‌کند. از طریق داشبورد یا API می‌توانید متریک‌های لحظه‌ای و تاریخی را مشاهده کنید و قوانین هشدار تعریف نمایید.


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

متریک‌های اپلیکیشن

مشاهده در داشبورد

از منوی Apps اپلیکیشن موردنظر را انتخاب کنید و به تب مانیتورینگ بروید. نمودارهای زیر در دسترس هستند:

متریکتوضیح
CPU %درصد مصرف پردازنده نسبت به سهمیه پلن
Memory %درصد مصرف حافظه نسبت به سهمیه پلن
Requests/sتعداد درخواست HTTP در ثانیه

بازه زمانی نمودارها قابل تنظیم است:

  • 1h — یک ساعت گذشته (دقت: ۱ دقیقه)
  • 24h — ۲۴ ساعت گذشته (دقت: ۵ دقیقه)
  • 7d — ۷ روز گذشته (دقت: ۱ ساعت)

دریافت متریک از طریق API

GET /v1/apps/:id/metrics?range=1h

پارامترها:

پارامترمقادیر مجازپیش‌فرض
range1h, 24h, 7d1h

نمونه درخواست:

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 (رایگان) حداکثر ۵ اتصال همزمان مجاز است.


قوانین هشدار

با تعریف قوانین هشدار می‌توانید در صورت تجاوز متریک‌ها از آستانه تعیین‌شده، اعلان دریافت کنید.

ایجاد قانون هشدار از داشبورد

  1. وارد داشبورد شوید
  2. اپلیکیشن یا پایگاه داده موردنظر را انتخاب کنید
  3. به تب Alerts بروید
  4. روی دکمه قانون جدید کلیک کنید
  5. نوع متریک، آستانه و کانال اطلاع‌رسانی را تنظیم نمایید

انواع هشدار

نوع هشدارتوضیح
cpu_thresholdCPU از آستانه درصدی عبور کند
memory_thresholdMemory از آستانه درصدی عبور کند
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_idstringشناسه اپلیکیشن (یا db_id برای پایگاه داده)
db_idstringشناسه پایگاه داده (به‌جای app_id)
metricstringنوع متریک: cpu_threshold, memory_threshold, crash_loop, deploy_failed
thresholdnumberآستانه عددی (برای متریک‌های درصدی: ۰ تا ۱۰۰)
conditionstringشرط: gt (بیشتر از) یا lt (کمتر از)
channelsarrayآرایه‌ای از 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 (رایگان) متریک‌ها با دقت ۵ دقیقه ذخیره می‌شوند. در پلن‌های پولی دقت به ۱ دقیقه افزایش می‌یابد.