API عمومی و توکن‌ها

خواندن وضعیت مانیتورها، ساخت مانیتور و متریک‌های Prometheus با توکن API.

ساخت توکن

«توکن‌های API» (فقط مالک و ادمین) ← نام و دسترسی را بدهید: «فقط‌خواندنی» یا «خواندن و نوشتن». توکن با utc_live_ شروع می‌شود و فقط یک‌بار نمایش داده می‌شود (فقط hash ذخیره می‌شود). هر درخواست باید این هدر را داشته باشد:

Authorization: Bearer utc_live_xxxxxxxxxxxxxxxxxxxxxxxx

توکن دسترسی به همان حسابی را دارد که در آن ساخته شده. با «لغو» در جدول، توکن همان لحظه از کار می‌افتد. از ستون «آخرین استفاده» می‌فهمید کدام توکن هنوز استفاده می‌شود.

مسیرها

متد و مسیردسترسیکاربرد
GET /api/v1/monitorsخواندنفهرست مانیتورها با وضعیت فعلی
GET /api/v1/monitors/:idخواندنجزئیات یک مانیتور
GET /api/v1/monitors/:id/uptimeخواندندسترس‌پذیری ۲۴ ساعت اخیر (بازه‌های ساعتی)
POST /api/v1/monitorsنوشتنساخت مانیتور؛ همان قواعد و محدودیت‌های پلن فرم وب
GET /api/v1/metricsخواندنمتریک‌ها به فرمت Prometheus

مستندات تعاملی (OpenAPI/Swagger) روی https://statly.ir/api-backend/api-docs است؛ لینکش را در صفحه‌ی «توکن‌های API» هم می‌بینید.

نمونه

curl https://statly.ir/api-backend/api/v1/monitors \
  -H "Authorization: Bearer $STATLY_API_TOKEN"
  • نوع‌های قابل ساخت (typeCode): http، keyword، tcp، ping، ssl، dns، api، heartbeat، webhook.
  • intervalSec بین ۱۵ تا ۸۶۴۰۰ ثانیه، ولی نه کمتر از حداقل پلن شما. فیلدهای اختیاری: timeoutSec (۱ تا ۱۲۰، پیش‌فرض ۱۰)، retryCount (۰ تا ۱۰، پیش‌فرض ۳)، retryIntervalSec (۱ تا ۶۰، پیش‌فرض ۵) و config مخصوص هر نوع.

Prometheus و Grafana

با یک توکن «فقط‌خواندنی» می‌توانید /api/v1/metrics را در Prometheus اسکرپ کنید:

scrape_configs:
  - job_name: statly
    scheme: https
    metrics_path: /api-backend/api/v1/metrics
    authorization:
      credentials: utc_live_xxxxxxxxxxxxxxxxxxxxxxxx
    static_configs:
      - targets: ['statly.ir']

سری‌های موجود (با برچسب‌های monitor_id، monitor_name، type):

متریکمعنی
uptime_checker_monitor_up۱ اگر مانیتور فعال است، وگرنه ۰
uptime_checker_monitor_statusیک سری برای هر وضعیت (up, down, partial_outage, flapping, unknown)
uptime_checker_monitor_consecutive_failureشکست‌های پیاپی
uptime_checker_monitor_incident_open۱ اگر قطعی باز است
uptime_checker_monitor_response_time_secondsزمان پاسخ آخرین بررسی موفق
uptime_checker_monitor_ssl_expiry_secondsثانیه‌ی مانده تا انقضای گواهی (منفی یعنی منقضی)
uptime_checker_monitor_uptime_ratio_24hنسبت دسترس‌پذیری ۲۴ ساعت (۰ تا ۱)

محدودیت و خطاها

کدپیام یا معنی
401توکن لازم است یا نامعتبر/لغوشده است
403این عملیات به توکنی با دسترسی «خواندن و نوشتن» نیاز دارد، یا سقف مانیتور پلن پر است
400ورودی نامعتبر (جزئیات خطا در بدنه‌ی پاسخ)
429تعداد درخواست‌ها بیش از حد مجاز است؛ چند دقیقه صبر کنید

درخواست‌ها به‌ازای هر حساب (نه هر IP) محدود می‌شوند. اگر هر چند ثانیه یک‌بار متریک می‌گیرید و ۴۲۹ دیدید، فاصله‌ی اسکرپ را بیشتر کنید (مثلاً ۶۰ ثانیه) و تعداد درخواست‌ها را کم کنید.

سایر درخواست‌های ورودی

این‌ها با توکن API کار نمی‌کنند و هرکدام کلید خودشان را دارند:

  • Heartbeat و وب‌هوک خطا: شناسه‌ی مانیتور — راهنما
  • کلید فراخوانی (پیامک/تماس/بله/تلگرام): راهنما