مرجع واجهة المراقبات البرمجية

القيم الممكنة للحقول

موقع المراقبة

القيمةالوصف
US_EAST_1شمال فرجينيا
CA_CENTRAL_1كندا (مونتريال)
EU_CENTRAL_1فرانكفورت
AP_NORTHEAST_1طوكيو

أنواع تنبيهات المراقبة

القيمةالوصف
INCIDENTتنبيه حادثة
EMAILتنبيه بالبريد الإلكتروني
SMSتنبيه بالرسائل القصيرة
SLACKتنبيه Slack
DISCORDتنبيه Discord
MICROSOFT_TEAMSتنبيه Microsoft Teams
PHONE_CALLتنبيه بمكالمة هاتفية
WEBHOOKتنبيه ويب هوك
GOOGLE_CHATتنبيه Google Chat
WHATSAPPتنبيه WhatsApp

حالة المراقبة

القيمةالوصف
UPالمراقبة تعمل بشكل طبيعي
DOWNفشلت المراقبة
DEGRADEDالمراقبة تواجه مشكلات
UNKNOWNتعذّر تحديد حالة المراقبة

احصل على المراقبات

يمكنك استخدام نقطة النهاية هذه للعثور على قائمة بجميع المراقبات الموجودة والتنقّل فيها.

نقطة النهاية:

GET /:page_id/monitors

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
pagenumber1رقم الصفحة المراد جلبها.
limitnumber100عدد المراقبات في الصفحة.
searchstringnullمصطلح البحث لتصفية النتائج.
statusenumnullتصفية حسب الحالة ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

مثال على الطلب

GET /1/monitors?limit=3&page=2&status=DOWN

مثال على الاستجابة

{
"monitors": [{ "...": "monitor objects" }],
"total": 10,
"page": 3,
"totalPages": 5,
"limit": 2
}

أنشئ مراقبة

نقطة النهاية:

POST /monitors

مثال على الطلب

{
"pageId": "page123",
"url": "https://example.com",
"httpMethod": "GET",
"body": null,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"queryParams": {
"search": "test",
"limit": "10"
},
"basicAuth": {
"username": "user",
"password": "password"
},
"type": "HTTP",
"assertions": [
{
"type": "STATUSCODE",
"comparison": "EQUALS",
"selector": null,
"target": "200"
}
],
"alerts": ["alert-id-1", "alert-id-2"],
"name": "Example Monitor",
"locations": "US_EAST_1",
"checksInterval": 300,
"createComponent": true,
"createMetric": true,
"onFail": {
"createIncident": true,
"createOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
}
}

مثال على الاستجابة

{
"monitor": {
"pageId": "page123",
"url": "https://example.com",
"httpMethod": "GET",
"body": null,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"queryParams": {
"search": "test",
"limit": "10"
},
"basicAuth": {
"username": "user",
"password": "password"
},
"type": "HTTP",
"assertions": [
{
"id": "assertion1",
"type": "STATUSCODE",
"comparison": "EQUALS",
"selector": null,
"target": "200"
}
],
"alerts": ["alert1", "alert2"],
"name": "Example Monitor",
"locations": "US_EAST_1",
"checksInterval": 300,
"createComponent": true,
"createMetric": true,
"onFail": {
"createIncident": true,
"createOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z"
},
"message": "Monitor created successfully"
}

حدّث مراقبة

نقطة النهاية:

PUT /monitors/:id

مثال على الطلب

{
"url": "https://updated.com",
"name": "Updated Monitor Name"
}

مثال على الاستجابة

{
"monitor": {
"pageId": "page123",
"url": "https://updated.com",
"httpMethod": "GET",
"body": null,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
"queryParams": {
"search": "test",
"limit": "10"
},
"basicAuth": {
"username": "user",
"password": "password"
},
"type": "HTTP",
"assertions": [
{
"id": "assertion1",
"type": "STATUSCODE",
"comparison": "EQUALS",
"selector": null,
"value": "200"
}
],
"alerts": ["alert1", "alert2"],
"name": "Updated Monitor Name",
"locations": "US_EAST_1",
"checksInterval": 300,
"createComponent": true,
"createMetric": true,
"onFail": {
"createIncident": true,
"createOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": true,
"publishIncident": true,
"notifySubscribers": true
},
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z"
},
"message": "Monitor updated successfully"
}

احذف مراقبة

نقطة النهاية:

DELETE /monitors/:id

مثال على الطلب

DELETE /monitors/monitor-id-1

مثال على الاستجابة

{
"message": "Monitor deleted successfully."
}

احصل على سجلات المراقبة

نقطة النهاية:

GET /monitors/:id/logs

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
limitnumber100عدد العناصر في الصفحة. لا يمكن أن يتجاوز ١٠٠٠.
pagenumber1رقم الصفحة المراد جلبها.
monitorIdstring-معرّف المراقبة.
locationstringnullموقع المراقبة.
createdAtstring | object | numbernullتاريخ الإنشاء. يمكن أن يكون نصًا أو رقمًا أو كائنًا يضم الحقلين gte وlte.
isSuccessfulbooleannullما إذا كان الفحص ناجحًا.
isSSLCheckbooleannullما إذا كان الفحص فحص SSL.
httpStatusCodestringnullرمز حالة HTTP في الاستجابة.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullحالة المراقبة.
dnsTimestring | number | objectnullالوقت المستغرق في تحليل DNS.
tcpTimestring | number | objectnullالوقت المستغرق في اتصال TCP.
tlsTimestring | number | objectnullالوقت المستغرق في مصافحة TLS.
firstByteTimestring | number | objectnullالوقت المستغرق حتى استقبال أول بايت.
downloadTimestring | number | objectnullالوقت المستغرق في التنزيل.
responseTimestring | number | objectnullإجمالي زمن الاستجابة.
performanceTimestring | number | objectnullزمن الأداء.
accessabilityScorestring | number | objectnullدرجة إمكانية الوصول.
seoScorestring | number | objectnullدرجة تحسين محركات البحث.
bestPracticesScorestring | number | objectnullدرجة أفضل الممارسات.
successfulAssertionsstring | number | objectnullعدد التأكيدات الناجحة.
sortstringترتيب زمنيالحقل المستخدم في الترتيب.

مثال على الطلب

GET /monitors/monitor-id-1/logs?limit=100&page=1

مثال على الاستجابة

{
"monitorLogs": [
// {monitor log object},
// {monitor log object 2}
],
"total": 478,
"page": 1,
"totalPages": 5,
"limit": 100
}

شغّل فحص مراقبة عبر المعرّف

نقطة النهاية:

GET /monitors/:id/run

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-موقع المراقبة. يجب أن يكون إحدى القيم المحددة.
retrybooleanfalseيحدد ما إذا كان ينبغي إعادة محاولة العملية. اختياري.
monitorLogIdstringnullالمعرّف الفريد لسجل المراقبة. اختياري.

مثال على الطلب

GET /monitors/monitor-id-1/run?monitorId=abc123&location=US_EAST_1&retry=true&monitorLogId=log456

مثال على الاستجابة

{
"status": "success",
"message": "Monitor check run successfully."
}

أنشئ تنبيه مراقبة

نقطة النهاية:

POST /monitor-alerts

مثال على الطلب

{
"type": "EMAIL",
"pageId": "page123",
"recipient": "user@example.com",
"recipientWorkspace": "workspace123",
"whenFails": true,
"whenRecovers": true,
"whenDegrades": false,
"whenSslExpires": true,
"sslExpiresInDays": 30,
"monitors": ["monitor1", "monitor2"],
"metadata": "Additional information about the alert"
}

مثال على الاستجابة

{
"monitor": {
"id": "alert123",
"siteId": "site123",
"type": "EMAIL",
"recipient": "user@example.com",
"whenFails": true,
"whenRecovers": true,
"whenDegrades": false,
"whenSslExpires": true,
"sslExpiresInDays": 30,
"monitors": [{ "id": "monitor1" }, { "id": "monitor2" }],
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z",
"metadata": "Additional information about the alert"
},
"message": "Monitor Alert created successfully"
}

حدّث تنبيه مراقبة

نقطة النهاية:

PUT /monitor-alerts/:id

مثال على الطلب

{
"type": "EMAIL",
"monitors": ["monitor-1-id", "monitor-2-id", "monitor-3-id"]
}

مثال على الاستجابة

{
"monitor": {
"type": "EMAIL",
"pageId": "page123",
"recipient": "user@example.com",
"recipientWorkspace": "workspace123",
"whenFails": true,
"whenRecovers": true,
"whenDegrades": false,
"whenSslExpires": true,
"sslExpiresInDays": 30,
"monitors": ["monitor-1-id", "monitor-2-id"],
"metadata": "Additional information about the alert"
},
"message": "Monitor alert updated successfully."
}

احصل على تنبيهات المراقبة

نقطة النهاية:

GET /:page_id/monitor-alerts

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
limitnumber100عدد العناصر في الصفحة.
pagenumber1رقم الصفحة المراد جلبها.

مثال على الطلب

GET /1/monitor-alerts?limit=2&page=3

مثال على الاستجابة

{
"monitorAlerts": [
{...monitor alert objects}
],
"total": 27,
"page": 3,
"totalPages": 14,
"limit": 2
}

احذف تنبيه مراقبة

نقطة النهاية:

DELETE /monitor-alerts/:id

مثال على الطلب

DELETE /monitor-alerts/alert-id-1

مثال على الاستجابة

{
"message": "Monitor alert deleted successfully."
}

أنشئ مجموعة مراقبات

نقطة النهاية:

POST /monitors-groups

مثال على الطلب

{
"pageId": "page123",
"name": "Example Name",
"childId": "child456"
}

مثال على الاستجابة

{
"monitor": {
"id": "group123",
"name": "Example Name",
"siteId": "site123",
"collapsed": false,
"monitors": [{ "id": "monitor1" }, { "id": "monitor2" }],
"groupId": "parentGroup123",
"children": [
{ "id": "childGroup1", "name": "Child Group 1" },
{ "id": "childGroup2", "name": "Child Group 2" }
],
"order": 1,
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z",
"parents": ["parent1", "parent2"],
"componentId": "component123"
},
"message": "Monitor group created successfully."
}

حدّث مجموعة مراقبات

نقطة النهاية:

PUT /monitors-groups/:id

مثال على الطلب

{
"name": "Updated Monitor Group Name"
}

مثال على الاستجابة

{
"monitor": {
"id": "group123",
"name": "Updated Monitor Group Name",
"siteId": "site123",
"collapsed": true,
"monitors": [{ "id": "monitor1" }, { "id": "monitor2" }],
"groupId": "parentGroup123",
"children": [
{ "id": "childGroup1", "name": "Child Group 1" },
{ "id": "childGroup2", "name": "Child Group 2" }
],
"order": 1,
"createdAt": "2023-08-08T12:00:00Z",
"updatedAt": "2023-08-08T12:00:00Z",
"parents": ["parent1", "parent2"],
"componentId": "component123"
},
"message": "Monitor group updated successfully."
}

احذف مجموعة مراقبات

نقطة النهاية:

DELETE /monitors-groups/:id

مثال على الطلب

DELETE /monitors-groups/group-id-1

مثال على الاستجابة

{
"message": "Monitor group deleted successfully."
}

أضف مراقبات إلى مجموعة

نقطة النهاية:

POST /monitors-groups/:id/monitors

مثال على الطلب

{
"monitors": ["monitor1", "monitor2", "monitor3"]
}

مثال على الاستجابة

{
"message": "Monitors added to the group successfully."
}

شغّل فحص مجموعة مراقبات

نقطة النهاية:

GET /monitors-groups/:id/run

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-موقع المراقبة. يجب أن يكون إحدى القيم المحددة.
retrybooleanfalseيحدد ما إذا كان ينبغي إعادة محاولة العملية. اختياري.
monitorLogIdstringnullالمعرّف الفريد لسجل المراقبة. اختياري.

مثال على الطلب

GET /monitors-groups/group-id-1/run

مثال على الاستجابة

{
"result": "OK",
"monitorLogId": "monitor-log-id-1"
}

مراقبات Cron

تتتبّع مراقبات Cron المهام المجدولة عبر نداءات HTTP. لمعرفة إعداد المنتج واستخدامه في لوحة التحكم، راجع مراقبة Cron.

القيم الممكنة للحقول

حالة مراقبة Cron

القيمةالوصف
UPالمراقبة تعمل بشكل طبيعي
DOWNفشلت المراقبة
DEGRADEDالمراقبة تواجه مشكلات
UNKNOWNتعذّر تحديد حالة المراقبة

وضع مراقبة Cron

القيمةالوصف
ACTIVEتُفحص المراقبة بشكل نشط
PAUSEDفحوصات المراقبة موقوفة مؤقتًا
MUTEDالمراقبة مكتومة (بلا إشعارات)

حالة سجل مراقبة Cron

القيمةالوصف
SUCCESSاكتملت المهمة بنجاح
FAILUREأبلغت المهمة صراحةً عن فشل
MISSEDلم ترسل المهمة نداءً ضمن النافذة المتوقعة
LATEأرسلت المهمة نداءها بعد انتهاء الفترة لكن ضمن مهلة السماح
STARTEDأبلغت المهمة عن بدء تنفيذها (توقيت التنفيذ)

الفترة ومهلة السماح

يُحدَّد كل من period وgrace بـالثواني. يمثّل period عدد المرات التي ينبغي أن تُشغَّل فيها المهمة؛ وgrace هو الوقت الإضافي المسموح به قبل اعتبار المراقبة متوقفة.

احصل على مراقبات Cron

نقطة النهاية:

GET /:page_id/monitors/cron

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
limitnumber100عدد مراقبات cron في الصفحة. الحد الأقصى ١٠٠.
pagenumber1رقم الصفحة.
searchstringnullمصطلح البحث لتصفية النتائج حسب الاسم.
statusenumnullتصفية حسب الحالة ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

مثال على الطلب

GET /page123/monitors/cron?limit=10&page=1&status=DOWN

مثال على الاستجابة

{
"cronMonitors": [
{
"id": "cron-abc123",
"name": "Daily backup",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 86400,
"grace": 3600,
"status": "UP",
"state": "ACTIVE",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": true,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-15T08:00:00.000Z"
}
],
"total": 1,
"page": 1,
"totalPages": 1,
"limit": 10
}

أنشئ مراقبة Cron

نقطة النهاية:

POST /monitors/cron

مثال على الطلب

{
"pageId": "page123",
"name": "Daily backup",
"period": 86400,
"grace": 3600,
"alerts": ["alert-id-1", "alert-id-2"],
"createComponent": true,
"onFail": {
"createIncident": true,
"createOutageDuration": false,
"publishIncident": true,
"notifySubscribers": true
},
"onRecover": {
"resolveIncident": true,
"resolveOutageDuration": false,
"publishIncident": true,
"notifySubscribers": true
}
}

مثال على الاستجابة

{
"cronMonitor": {
"id": "cron-abc123",
"name": "Daily backup",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 86400,
"grace": 3600,
"status": "UP",
"state": "ACTIVE",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": true,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-15T08:00:00.000Z"
},
"message": "Cron monitor created successfully."
}

تتضمن الاستجابة الحقل slug. استخدمه لبناء روابط النداء الخاصة بمهمتك. أول نداء ناجح يجدول مهمة الفحص في الخلفية.

حدّث مراقبة Cron

نقطة النهاية:

PUT /monitors/cron/:id

مثال على الطلب

{
"name": "Daily backup (updated)",
"period": 43200,
"grace": 1800,
"state": "PAUSED",
"alerts": ["alert-id-1"],
"onFail": {
"notifySubscribers": false
}
}

مثال على الاستجابة

{
"cronMonitor": {
"id": "cron-abc123",
"name": "Daily backup (updated)",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 43200,
"grace": 1800,
"status": "UP",
"state": "PAUSED",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": false,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"alerts": [
{
"id": "alert-id-1",
"type": "EMAIL",
"recipient": "ops@example.com"
}
],
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-16T10:30:00.000Z"
},
"message": "Cron monitor updated successfully."
}

احذف مراقبة Cron

نقطة النهاية:

DELETE /monitors/cron/:id

مثال على الطلب

DELETE /monitors/cron/cron-abc123

مثال على الاستجابة

{
"cronMonitor": {
"id": "cron-abc123",
"name": "Daily backup",
"slug": "my-page-x7k2m9n4p1q8w3e5",
"period": 86400,
"grace": 3600,
"status": "UP",
"state": "ACTIVE",
"siteId": "page123",
"order": 1,
"groupId": null,
"componentId": "component-id-1",
"onFailCreateIncident": true,
"onFailCreateOutageDuration": false,
"onFailPublishIncident": true,
"onFailNotifySubscribers": true,
"onRecoverResolveIncident": true,
"onRecoverResolveOutageDuration": false,
"onRecoverPublishIncident": true,
"onRecoverNotifySubscribers": true,
"createTemplateId": null,
"resolveTemplateId": null,
"createdAt": "2024-01-15T08:00:00.000Z",
"updatedAt": "2024-01-15T08:00:00.000Z"
},
"message": "Cron monitor deleted successfully."
}

احصل على سجلات مراقبة Cron

نقطة النهاية:

GET /monitors/cron/:id/logs

معاملات الاستعلام

المعاملالنوعالقيمة الافتراضيةالوصف
limitnumber100عدد السجلات في الصفحة. الحد الأقصى ١٢٧.
pagenumber1رقم الصفحة. الحد الأقصى ١٠٠٠.
startDatestringقبل سنةتاريخ بداية نطاق السجلات بصيغة ISO 8601.
endDatestringالآنتاريخ نهاية نطاق السجلات بصيغة ISO 8601.
importanceenumnullتصفية السجلات حسب الأهمية ('all', 'important').

مثال على الطلب

GET /monitors/cron/cron-abc123/logs?limit=50&page=1&importance=important

مثال على الاستجابة

{
"logs": [
{
"id": "log-xyz789",
"monitorId": "cron-abc123",
"status": "SUCCESS",
"requestType": "GET",
"agent": "curl/8.4.0",
"ipAddress": "203.0.113.10",
"createdAt": "2024-01-16T06:00:00.000Z",
"startedAt": "2024-01-16T05:59:58.000Z"
}
],
"page": 1
}

احصل على ملخّص مراقبة Cron

نقطة النهاية:

GET /monitors/cron/:id/summary

مثال على الطلب

GET /monitors/cron/cron-abc123/summary

مثال على الاستجابة

{
"summary": {
"totalLogs": 120,
"totalFailedLogs": 3,
"availability": 97.5,
"oneDayAvailability": 100,
"previousDayAvailability": 100,
"sevenDayAvailability": 98.2,
"previousSevenDayAvailability": 96.1,
"thirtyDayAvailability": 97.5,
"previousThirtyDayAvailability": 95.8,
"lastSuccess": "2024-01-16T06:00:00.000Z",
"lastFailure": "2024-01-10T06:00:00.000Z",
"lastStarted": null,
"upSince": "2024-01-10T07:00:00.000Z",
"downSince": null
}
}

نقاط نهاية النداء

لا تتطلب نقاط النهاية هذه مصادقة. يعمل الحقل slug الخاص بالمراقبة بمثابة المفتاح السري.

يمكنك إرسال النداء عبر الرابط الأساسي للواجهة البرمجية أو عبر مضيف cron المخصص:

  • نجاح: https://cron.instatus.com/{slug} أو GET / POST / HEAD /monitors/cron/{slug}
  • فشل: https://cron.instatus.com/{slug}/fail أو GET / POST / HEAD /monitors/cron/{slug}/fail
  • بدء: https://cron.instatus.com/{slug}/start أو GET / POST / HEAD /monitors/cron/{slug}/start

أرسل نداء نجاح في كل مرة تنتهي فيها مهمتك في موعدها. وأرسل نداء بدء قبل تشغيل المهمة ثم نداء نجاح أو فشل عند انتهائها لتسجيل زمن التنفيذ.

مثال على نداء ناجح

curl https://cron.instatus.com/my-page-x7k2m9n4p1q8w3e5

مثال على الاستجابة

{
"id": "log-xyz789",
"monitorId": "cron-abc123",
"status": "SUCCESS",
"requestType": "GET",
"agent": "curl/8.4.0",
"ipAddress": "203.0.113.10",
"createdAt": "2024-01-16T06:00:00.000Z"
}

إذا كان الـ slug غير صالح، تكون الاستجابة:

{
"message": "Monitor not found"
}