Reference API pro monitory

Možné hodnoty polí

Lokalita monitoru

HodnotaPopis
US_EAST_1Severní Virginie
CA_CENTRAL_1Kanada (Montreal)
EU_CENTRAL_1Frankfurt
AP_NORTHEAST_1Tokio

Typy upozornění monitoru

HodnotaPopis
INCIDENTUpozornění incidentem
EMAILUpozornění e-mailem
SMSUpozornění SMS
SLACKUpozornění do Slacku
DISCORDUpozornění do Discordu
MICROSOFT_TEAMSUpozornění do Microsoft Teams
PHONE_CALLUpozornění telefonátem
WEBHOOKUpozornění webhookem
GOOGLE_CHATUpozornění do Google Chatu
WHATSAPPUpozornění na WhatsApp

Stav monitoru

HodnotaPopis
UPMonitor běží normálně
DOWNMonitor selhal
DEGRADEDMonitor má potíže
UNKNOWNStav monitoru nelze určit

Získání monitorů

Tímto endpointem najdete a projdete seznam všech existujících monitorů.

Endpoint:

GET /:page_id/monitors

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
pagenumber1Číslo stránky, kterou načíst.
limitnumber100Počet monitorů na stránku.
searchstringnullHledaný výraz pro filtrování výsledků.
statusenumnullFiltr stavu ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Ukázkový požadavek

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

Ukázková odpověď

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

Vytvoření monitoru

Endpoint:

POST /monitors

Ukázkový požadavek

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

Ukázková odpověď

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

Aktualizace monitoru

Endpoint:

PUT /monitors/:id

Ukázkový požadavek

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

Ukázková odpověď

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

Smazání monitoru

Endpoint:

DELETE /monitors/:id

Ukázkový požadavek

DELETE /monitors/monitor-id-1

Ukázková odpověď

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

Získání logů monitoru

Endpoint:

GET /monitors/:id/logs

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
limitnumber100Počet položek na stránku. Nesmí přesáhnout 1000.
pagenumber1Číslo stránky, kterou načíst.
monitorIdstring-ID monitoru.
locationstringnullLokalita monitoru.
createdAtstring | object | numbernullDatum vytvoření. Může to být řetězec, číslo nebo objekt s poli gte a lte.
isSuccessfulbooleannullJestli byla kontrola úspěšná.
isSSLCheckbooleannullJestli jde o SSL kontrolu.
httpStatusCodestringnullHTTP stavový kód odpovědi.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullStav monitoru.
dnsTimestring | number | objectnullDoba překladu DNS.
tcpTimestring | number | objectnullDoba navázání TCP spojení.
tlsTimestring | number | objectnullDoba TLS handshaku.
firstByteTimestring | number | objectnullDoba do přijetí prvního bajtu.
downloadTimestring | number | objectnullDoba stahování.
responseTimestring | number | objectnullCelková doba odezvy.
performanceTimestring | number | objectnullDoba výkonu.
accessabilityScorestring | number | objectnullSkóre přístupnosti.
seoScorestring | number | objectnullSkóre SEO.
bestPracticesScorestring | number | objectnullSkóre best practices.
successfulAssertionsstring | number | objectnullPočet úspěšných podmínek.
sortstringchronologickyPole, podle kterého řadit.

Ukázkový požadavek

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

Ukázková odpověď

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

Spuštění kontroly monitoru podle ID

Endpoint:

GET /monitors/:id/run

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Lokalita monitoru. Musí být jedna z uvedených hodnot.
retrybooleanfalseUrčuje, jestli se má operace zopakovat. Nepovinné.
monitorLogIdstringnullJedinečný identifikátor logu monitoru. Nepovinné.

Ukázkový požadavek

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

Ukázková odpověď

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

Vytvoření upozornění monitoru

Endpoint:

POST /monitor-alerts

Ukázkový požadavek

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

Ukázková odpověď

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

Aktualizace upozornění monitoru

Endpoint:

PUT /monitor-alerts/:id

Ukázkový požadavek

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

Ukázková odpověď

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

Získání upozornění monitoru

Endpoint:

GET /:page_id/monitor-alerts

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
limitnumber100Počet položek na stránku.
pagenumber1Číslo stránky, kterou načíst.

Ukázkový požadavek

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

Ukázková odpověď

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

Smazání upozornění monitoru

Endpoint:

DELETE /monitor-alerts/:id

Ukázkový požadavek

DELETE /monitor-alerts/alert-id-1

Ukázková odpověď

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

Vytvoření skupiny monitorů

Endpoint:

POST /monitors-groups

Ukázkový požadavek

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

Ukázková odpověď

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

Aktualizace skupiny monitorů

Endpoint:

PUT /monitors-groups/:id

Ukázkový požadavek

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

Ukázková odpověď

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

Smazání skupiny monitorů

Endpoint:

DELETE /monitors-groups/:id

Ukázkový požadavek

DELETE /monitors-groups/group-id-1

Ukázková odpověď

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

Přidání monitorů do skupiny

Endpoint:

POST /monitors-groups/:id/monitors

Ukázkový požadavek

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

Ukázková odpověď

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

Spuštění kontroly skupiny monitorů

Endpoint:

GET /monitors-groups/:id/run

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Lokalita monitoru. Musí být jedna z uvedených hodnot.
retrybooleanfalseUrčuje, jestli se má operace zopakovat. Nepovinné.
monitorLogIdstringnullJedinečný identifikátor logu monitoru. Nepovinné.

Ukázkový požadavek

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

Ukázková odpověď

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

Cron monitory

Cron monitory sledují naplánované úlohy pomocí HTTP pingů. Nastavení v produktu a práci v dashboardu popisuje článek Cron monitoring.

Možné hodnoty polí

Stav cron monitoru

HodnotaPopis
UPMonitor běží normálně
DOWNMonitor selhal
DEGRADEDMonitor má potíže
UNKNOWNStav monitoru nelze určit

Režim cron monitoru

HodnotaPopis
ACTIVEMonitor se aktivně kontroluje
PAUSEDKontroly monitoru jsou pozastavené
MUTEDMonitor je ztlumený (bez oznámení)

Stav logu cron monitoru

HodnotaPopis
SUCCESSÚloha úspěšně doběhla
FAILUREÚloha výslovně nahlásila selhání
MISSEDÚloha nepingla v očekávaném okně
LATEÚloha pingla po periodě, ale v rámci tolerance
STARTEDÚloha nahlásila, že začala (měření doby běhu)

Perioda a tolerance

period i grace se zadávají v sekundách. period je, jak často má úloha běžet; grace je čas navíc, než se monitor označí za nedostupný.

Získání cron monitorů

Endpoint:

GET /:page_id/monitors/cron

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
limitnumber100Počet cron monitorů na stránku. Maximum je 100.
pagenumber1Číslo stránky.
searchstringnullHledaný výraz pro filtrování výsledků podle názvu.
statusenumnullFiltr stavu ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Ukázkový požadavek

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

Ukázková odpověď

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

Vytvoření cron monitoru

Endpoint:

POST /monitors/cron

Ukázkový požadavek

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

Ukázková odpověď

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

Odpověď obsahuje slug. Použijte ho k sestavení ping URL pro svou úlohu. První úspěšný ping naplánuje kontrolní úlohu na pozadí.

Aktualizace cron monitoru

Endpoint:

PUT /monitors/cron/:id

Ukázkový požadavek

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

Ukázková odpověď

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

Smazání cron monitoru

Endpoint:

DELETE /monitors/cron/:id

Ukázkový požadavek

DELETE /monitors/cron/cron-abc123

Ukázková odpověď

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

Získání logů cron monitoru

Endpoint:

GET /monitors/cron/:id/logs

Parametry dotazu

ParametrTypVýchozí hodnotaPopis
limitnumber100Počet logů na stránku. Maximum je 127.
pagenumber1Číslo stránky. Maximum je 1000.
startDatestringpřed rokemPočáteční datum rozsahu logů podle ISO 8601.
endDatestringteďKoncové datum rozsahu logů podle ISO 8601.
importanceenumnullFiltrovat logy podle důležitosti ('all', 'important').

Ukázkový požadavek

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

Ukázková odpověď

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

Získání souhrnu cron monitoru

Endpoint:

GET /monitors/cron/:id/summary

Ukázkový požadavek

GET /monitors/cron/cron-abc123/summary

Ukázková odpověď

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

Ping endpointy

Tyto endpointy nevyžadují ověření. Jako tajný klíč slouží slug monitoru.

Pingnout můžete přes základní URL API nebo přes vyhrazený cron host:

  • Úspěch: https://cron.instatus.com/{slug} nebo GET / POST / HEAD /monitors/cron/{slug}
  • Selhání: https://cron.instatus.com/{slug}/fail nebo GET / POST / HEAD /monitors/cron/{slug}/fail
  • Start: https://cron.instatus.com/{slug}/start nebo GET / POST / HEAD /monitors/cron/{slug}/start

Ping úspěchu posílejte pokaždé, když úloha doběhne podle rozvrhu. Pro záznam doby běhu pošlete ping startu před spuštěním úlohy a ping úspěchu nebo selhání, až skončí.

Ukázkový ping úspěchu

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

Ukázková odpověď

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

Pokud je slug neplatný, odpověď je:

{
"message": "Monitor not found"
}