مانیتورینگ 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های تعریفشده را نیز ارزیابی میکند. در صورت نقض هر یک از شرایط، رخداد مربوطه ثبت شده و در صورت فعال بودن اعلانها، شما از بروز مشکل مطلع خواهید شد.