Referință API pentru monitoare

Valori posibile pentru câmpuri

Locația monitorului

ValoareDescriere
US_EAST_1N. Virginia
CA_CENTRAL_1Canada (Montreal)
EU_CENTRAL_1Frankfurt
AP_NORTHEAST_1Tokyo

Tipuri de alerte de monitor

ValoareDescriere
INCIDENTAlertă de incident
EMAILAlertă prin e-mail
SMSAlertă prin SMS
SLACKAlertă prin Slack
DISCORDAlertă prin Discord
MICROSOFT_TEAMSAlertă prin Microsoft Teams
PHONE_CALLAlertă prin apel telefonic
WEBHOOKAlertă prin webhook
GOOGLE_CHATAlertă prin Google Chat
WHATSAPPAlertă prin WhatsApp

Starea monitorului

ValoareDescriere
UPMonitorul funcționează normal
DOWNMonitorul a căzut
DEGRADEDMonitorul întâmpină probleme
UNKNOWNStarea monitorului nu poate fi determinată

Obține monitoarele

Poți folosi acest endpoint ca să găsești și să parcurgi lista tuturor monitoarelor existente.

Endpoint:

GET /:page_id/monitors

Parametri de query

ParametruTipValoare implicităDescriere
pagenumber1Numărul paginii de preluat.
limitnumber100Numărul de monitoare pe pagină.
searchstringnullTermen de căutare pentru filtrarea rezultatelor.
statusenumnullFiltru de stare ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Exemplu de cerere

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

Exemplu de răspuns

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

Creează un monitor

Endpoint:

POST /monitors

Exemplu de cerere

{
"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
}
}

Exemplu de răspuns

{
"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"
}

Actualizează un monitor

Endpoint:

PUT /monitors/:id

Exemplu de cerere

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

Exemplu de răspuns

{
"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"
}

Șterge un monitor

Endpoint:

DELETE /monitors/:id

Exemplu de cerere

DELETE /monitors/monitor-id-1

Exemplu de răspuns

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

Obține jurnalele monitorului

Endpoint:

GET /monitors/:id/logs

Parametri de query

ParametruTipValoare implicităDescriere
limitnumber100Numărul de elemente pe pagină. Nu poate depăși 1000.
pagenumber1Numărul paginii de preluat.
monitorIdstring-ID-ul monitorului.
locationstringnullLocația monitorului.
createdAtstring | object | numbernullData creării. Poate fi un șir, un număr sau un obiect cu câmpurile gte și lte.
isSuccessfulbooleannullDacă verificarea a reușit.
isSSLCheckbooleannullDacă verificarea este una SSL.
httpStatusCodestringnullCodul de stare HTTP al răspunsului.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullStarea monitorului.
dnsTimestring | number | objectnullTimpul necesar pentru rezolvarea DNS.
tcpTimestring | number | objectnullTimpul necesar pentru conexiunea TCP.
tlsTimestring | number | objectnullTimpul necesar pentru handshake-ul TLS.
firstByteTimestring | number | objectnullTimpul până la primirea primului octet.
downloadTimestring | number | objectnullTimpul necesar pentru descărcare.
responseTimestring | number | objectnullTimpul total de răspuns.
performanceTimestring | number | objectnullTimpul de performanță.
accessabilityScorestring | number | objectnullScorul de accesibilitate.
seoScorestring | number | objectnullScorul SEO.
bestPracticesScorestring | number | objectnullScorul pentru bune practici.
successfulAssertionsstring | number | objectnullNumărul verificărilor reușite.
sortstringcronologicCâmpul după care se sortează.

Exemplu de cerere

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

Exemplu de răspuns

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

Rulează verificarea unui monitor după ID

Endpoint:

GET /monitors/:id/run

Parametri de query

ParametruTipValoare implicităDescriere
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Locația monitorului. Trebuie să fie una dintre valorile indicate.
retrybooleanfalseIndică dacă operațiunea trebuie reîncercată. Opțional.
monitorLogIdstringnullIdentificatorul unic al jurnalului monitorului. Opțional.

Exemplu de cerere

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

Exemplu de răspuns

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

Creează o alertă de monitor

Endpoint:

POST /monitor-alerts

Exemplu de cerere

{
"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"
}

Exemplu de răspuns

{
"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"
}

Actualizează o alertă de monitor

Endpoint:

PUT /monitor-alerts/:id

Exemplu de cerere

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

Exemplu de răspuns

{
"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."
}

Obține alertele monitoarelor

Endpoint:

GET /:page_id/monitor-alerts

Parametri de query

ParametruTipValoare implicităDescriere
limitnumber100Numărul de elemente pe pagină.
pagenumber1Numărul paginii de preluat.

Exemplu de cerere

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

Exemplu de răspuns

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

Șterge o alertă de monitor

Endpoint:

DELETE /monitor-alerts/:id

Exemplu de cerere

DELETE /monitor-alerts/alert-id-1

Exemplu de răspuns

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

Creează un grup de monitoare

Endpoint:

POST /monitors-groups

Exemplu de cerere

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

Exemplu de răspuns

{
"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."
}

Actualizează un grup de monitoare

Endpoint:

PUT /monitors-groups/:id

Exemplu de cerere

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

Exemplu de răspuns

{
"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."
}

Șterge un grup de monitoare

Endpoint:

DELETE /monitors-groups/:id

Exemplu de cerere

DELETE /monitors-groups/group-id-1

Exemplu de răspuns

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

Adaugă monitoare într-un grup

Endpoint:

POST /monitors-groups/:id/monitors

Exemplu de cerere

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

Exemplu de răspuns

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

Rulează verificarea unui grup de monitoare

Endpoint:

GET /monitors-groups/:id/run

Parametri de query

ParametruTipValoare implicităDescriere
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Locația monitorului. Trebuie să fie una dintre valorile indicate.
retrybooleanfalseIndică dacă operațiunea trebuie reîncercată. Opțional.
monitorLogIdstringnullIdentificatorul unic al jurnalului monitorului. Opțional.

Exemplu de cerere

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

Exemplu de răspuns

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

Monitoare cron

Monitoarele cron urmăresc sarcinile programate prin pinguri HTTP. Pentru configurarea în produs și folosirea din panou, vezi Monitorizarea cron.

Valori posibile pentru câmpuri

Starea monitorului cron

ValoareDescriere
UPMonitorul funcționează normal
DOWNMonitorul a căzut
DEGRADEDMonitorul întâmpină probleme
UNKNOWNStarea monitorului nu poate fi determinată

Regimul monitorului cron

ValoareDescriere
ACTIVEMonitorul este verificat activ
PAUSEDVerificările monitorului sunt pe pauză
MUTEDMonitorul este pus pe silențios (fără notificări)

Starea jurnalului monitorului cron

ValoareDescriere
SUCCESSSarcina s-a încheiat cu succes
FAILURESarcina a raportat explicit un eșec
MISSEDSarcina nu a făcut ping în fereastra așteptată
LATESarcina a făcut ping după perioadă, dar în intervalul de toleranță
STARTEDSarcina a raportat că a pornit (măsurarea execuției)

Perioadă și toleranță

Atât period, cât și grace se exprimă în secunde. period este cât de des ar trebui să ruleze sarcina; grace este timpul suplimentar permis înainte ca monitorul să fie marcat ca nefuncțional.

Obține monitoarele cron

Endpoint:

GET /:page_id/monitors/cron

Parametri de query

ParametruTipValoare implicităDescriere
limitnumber100Numărul de monitoare cron pe pagină. Maximul este 100.
pagenumber1Numărul paginii.
searchstringnullTermen de căutare pentru filtrarea rezultatelor după nume.
statusenumnullFiltru de stare ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Exemplu de cerere

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

Exemplu de răspuns

{
"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
}

Creează un monitor cron

Endpoint:

POST /monitors/cron

Exemplu de cerere

{
"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
}
}

Exemplu de răspuns

{
"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."
}

Răspunsul include un slug. Folosește-l ca să construiești URL-urile de ping pentru sarcina ta. Primul ping reușit programează sarcina de verificare din fundal.

Actualizează un monitor cron

Endpoint:

PUT /monitors/cron/:id

Exemplu de cerere

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

Exemplu de răspuns

{
"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."
}

Șterge un monitor cron

Endpoint:

DELETE /monitors/cron/:id

Exemplu de cerere

DELETE /monitors/cron/cron-abc123

Exemplu de răspuns

{
"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."
}

Obține jurnalele monitorului cron

Endpoint:

GET /monitors/cron/:id/logs

Parametri de query

ParametruTipValoare implicităDescriere
limitnumber100Numărul de jurnale pe pagină. Maximul este 127.
pagenumber1Numărul paginii. Maximul este 1000.
startDatestringacum 1 anData de început ISO 8601 pentru intervalul jurnalelor.
endDatestringacumData de final ISO 8601 pentru intervalul jurnalelor.
importanceenumnullFiltrează jurnalele după importanță ('all', 'important').

Exemplu de cerere

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

Exemplu de răspuns

{
"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
}

Obține sumarul monitorului cron

Endpoint:

GET /monitors/cron/:id/summary

Exemplu de cerere

GET /monitors/cron/cron-abc123/summary

Exemplu de răspuns

{
"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
}
}

Endpointuri de ping

Aceste endpointuri nu necesită autentificare. Slug-ul monitorului joacă rolul secretului.

Poți face ping prin URL-ul de bază al API-ului sau prin gazda dedicată pentru cron:

  • Succes: https://cron.instatus.com/{slug} sau GET / POST / HEAD /monitors/cron/{slug}
  • Eșec: https://cron.instatus.com/{slug}/fail sau GET / POST / HEAD /monitors/cron/{slug}/fail
  • Start: https://cron.instatus.com/{slug}/start sau GET / POST / HEAD /monitors/cron/{slug}/start

Trimite un ping de succes de fiecare dată când sarcina ta se încheie conform programului. Trimite un ping de start înainte să ruleze sarcina și un ping de succes sau de eșec la finalizare, ca să se înregistreze durata de execuție.

Exemplu de ping de succes

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

Exemplu de răspuns

{
"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"
}

Dacă slug-ul este invalid, răspunsul este:

{
"message": "Monitor not found"
}