مانیتورینگ API

API Monitoring برای بررسی سلامت و عملکرد APIهای مبتنی بر HTTP یا HTTPS طراحی شده است. این مانیتور علاوه بر بررسی در دسترس بودن API، محتوای پاسخ، هدرها، زمان پاسخ و داده‌های بازگشتی را نیز اعتبارسنجی می‌کند.

برخلاف Website Monitoring که بیشتر برای بررسی در دسترس بودن صفحات وب استفاده می‌شود، API Monitoring برای سرویس‌های REST API، Microserviceها و Backendها طراحی شده است و می‌تواند تغییرات کوچک در خروجی API را نیز شناسایی کند.

با استفاده از API Monitoring می‌توانید:

  • بررسی در دسترس بودن API (Up / Down)
  • تحلیل HTTP Status Code
  • اندازه‌گیری زمان پاسخ (Response Time)
  • بررسی Response Body
  • اعتبارسنجی فیلدهای JSON
  • بررسی Response Headerها
  • استفاده از Assertionهای پیشرفته
  • بررسی اعتبار و انقضای SSL

ایجاد مانیتور API

برای ایجاد این مانیتور، ابتدا وارد پروژه مورد نظر شوید.

سپس از تب مانیتورها روی ایجاد مانیتور کلیک کرده و API Monitoring را انتخاب کنید.


نام نمایشی

یک نام مناسب برای مانیتور انتخاب کنید.

برای مثال:

  • User API
  • Payment API
  • Authentication API
  • Notification Service

آدرس API

در این قسمت آدرس کامل Endpoint مورد نظر را وارد کنید.

برای مثال:

https://api.example.com/users

یا

https://api.example.com/v1/status

فعال‌سازی SSL Monitoring

در صورت نیاز می‌توانید SSL Monitoring را نیز فعال کنید.

در این حالت، یودوز علاوه بر بررسی API، اعتبار گواهی SSL، تاریخ انقضا و سایر خطاهای مربوط به SSL را نیز بررسی خواهد کرد.

توجه

قابلیت SSL Monitoring در پلن تیمی (Team) و بالاتر در دسترس است.


Assertionها

مهم‌ترین قابلیت API Monitoring، امکان تعریف Assertion است.

در حالی که Website Monitoring معمولاً تنها وضعیت HTTP را بررسی می‌کند، در API Monitoring می‌توانید مشخص کنید که پاسخ API دقیقاً چه شرایطی باید داشته باشد.

برای هر Assertion می‌توان اپراتورهای مختلفی مانند:

  • برابر باشد
  • برابر نباشد
  • بزرگ‌تر از
  • کوچک‌تر از
  • شامل باشد
  • شامل نباشد
  • شروع شود با
  • پایان یابد با
  • Regex
  • و سایر عملگرهای منطقی

را انتخاب کرد.

همچنین می‌توانید چندین Assertion مختلف ایجاد کنید تا همه آن‌ها به صورت هم‌زمان بررسی شوند.


بررسی Status Code

می‌توانید مشخص کنید API چه کدی را باید برگرداند.

برای مثال:

Status Code = 200

یا

Status Code = 201

یا حتی مجموعه‌ای از کدهای مجاز را تعریف کنید.


بررسی زمان پاسخ (Latency)

می‌توانید مشخص کنید پاسخ API نباید بیشتر از مقدار مشخصی طول بکشد.

برای مثال:

Latency < 1000 ms

اگر پاسخ API بیش از یک ثانیه زمان ببرد، یودوز آن را به عنوان رخداد ثبت خواهد کرد.

این قابلیت برای کنترل کیفیت سرویس و جلوگیری از کند شدن API بسیار کاربردی است.


بررسی Response Body

در این قسمت می‌توانید متن پاسخ API را بررسی کنید.

برای مثال:

  • شامل عبارت مشخصی باشد.
  • شامل عبارت خاصی نباشد.
  • با متن خاصی شروع شود.
  • با متن خاصی پایان یابد.
  • با یک عبارت منظم (Regex) مطابقت داشته باشد.

این قابلیت زمانی مفید است که API خروجی متنی یا HTML تولید می‌کند.


بررسی JSON

اگر API پاسخ JSON برگرداند، می‌توانید فیلدهای مختلف آن را بررسی کنید.

برای مثال پاسخ زیر را در نظر بگیرید:

{
  "status": "online",
  "online_users": 72,
  "version": "2.1.0"
}

اکنون می‌توانید Assertionهای مختلفی تعریف کنید.

برای مثال:

status = online

یا

online_users > 50

یا

version = 2.1.0

حتی می‌توانید سلامت سرویس را از روی مقادیر JSON بررسی کنید.

برای مثال اگر فیلد

health

برابر

healthy

نباشد، یودوز رخداد ثبت خواهد کرد.


بررسی Response Header

گاهی اطلاعات مهم در Headerهای پاسخ قرار دارند.

API Monitoring امکان بررسی Headerهای مختلف را نیز فراهم می‌کند.

برای مثال می‌توانید بررسی کنید:

  • وجود Header خاص
  • مقدار Content-Type
  • مقدار Cache-Control
  • مقدار Server
  • مقدار X-Version
  • مقدار ETag
  • Headerهای امنیتی

برای مثال:

Content-Type = application/json

یا

X-Version = 2.4.1

در صورت تغییر این مقادیر، یودوز هشدار ثبت خواهد کرد.


فاصله زمانی بررسی (Check Interval)

این گزینه مشخص می‌کند API هر چند وقت یک‌بار بررسی شود.

برای APIهای حساس پیشنهاد می‌شود از بازه‌های ۳۰ ثانیه یا ۱ دقیقه استفاده کنید.


زمان انتظار (Timeout)

Timeout مدت زمانی است که یودوز برای دریافت پاسخ API منتظر می‌ماند.

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

انتخاب مقدار بسیار کم ممکن است باعث ایجاد هشدارهای غیرواقعی شود.


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

برای مدیریت بهتر مانیتورها می‌توانید یک یا چند تگ تعریف کنید.

برای مثال:

  • API
  • Production
  • Payment
  • Backend
  • Auth

این مانیتور در چه مواردی کاربرد دارد؟

API Monitoring برای تمامی سرویس‌هایی مناسب است که تبادل اطلاعات از طریق API انجام می‌دهند.

از جمله:

  • REST API
  • GraphQL API
  • Microserviceها
  • Authentication Serverها
  • Payment Gatewayها
  • Backend Serviceها
  • SaaS Platformها
  • Internal APIها
  • Mobile APIها

تنظیمات درخواست (Request Settings)

در این قسمت می‌توانید درخواست API را مطابق نیاز سرویس خود تنظیم کنید.

از جمله:

  • Headerهای ارسالی
  • Query Parameterها
  • Request Body
  • اطلاعات احراز هویت

احراز هویت (Authentication)

در صورتی که API نیاز به احراز هویت داشته باشد، یکی از روش‌های زیر را انتخاب کنید.

No Auth

ارسال درخواست بدون احراز هویت.

API Key

ارسال API Key در Header یا Query String.

Basic Authentication

ارسال نام کاربری و رمز عبور.

Bearer Token

ارسال Access Token در Header درخواست.

برای مثال:

Authorization: Bearer YOUR_ACCESS_TOKEN

متد درخواست (HTTP Method)

بسته به نوع Endpoint می‌توانید یکی از متدهای زیر را انتخاب کنید.

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • HEAD

در بیشتر APIها از متدهای GET و POST استفاده می‌شود.


چرا از API Monitoring استفاده کنیم؟

ممکن است API همچنان پاسخ 200 OK برگرداند، اما داده‌های آن اشتباه باشند.

برای مثال:

  • مقدار status به جای online برابر offline باشد.
  • تعداد کاربران آنلاین از حد مجاز بیشتر شود.
  • نسخه اشتباه سرویس منتشر شده باشد.
  • Headerهای امنیتی حذف شده باشند.
  • Response Time به شدت افزایش پیدا کرده باشد.

در چنین شرایطی، بررسی صرف Status Code کافی نیست.

با استفاده از Assertionهای API Monitoring، یودوز می‌تواند این تغییرات را نیز شناسایی کرده و قبل از آنکه مشکل به کاربران نهایی برسد، شما را مطلع کند.


ایجاد مانیتور

پس از تکمیل تمامی تنظیمات و Assertionها، روی ایجاد مانیتور کلیک کنید.

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

آموزش قبلی مانیتورینگ Website
آموزش بعدی مانیتورینگ Ping