API-reference for monitorer

Mulige værdier for felter

Monitorens lokation

VærdiBeskrivelse
US_EAST_1N. Virginia
CA_CENTRAL_1Canada (Montreal)
EU_CENTRAL_1Frankfurt
AP_NORTHEAST_1Tokyo

Typer af monitoralarmer

VærdiBeskrivelse
INCIDENTHændelsesalarm
EMAILE-mailalarm
SMSSMS-alarm
SLACKSlack-alarm
DISCORDDiscord-alarm
MICROSOFT_TEAMSMicrosoft Teams-alarm
PHONE_CALLTelefonopkaldsalarm
WEBHOOKWebhook-alarm
GOOGLE_CHATGoogle Chat-alarm
WHATSAPPWhatsApp-alarm

Monitorstatus

VærdiBeskrivelse
UPMonitoren kører normalt
DOWNMonitoren har fejlet
DEGRADEDMonitoren oplever problemer
UNKNOWNMonitorens tilstand kan ikke afgøres

Hent monitorer

Du kan bruge dette endpoint til at finde og bladre gennem en liste over alle eksisterende monitorer.

Endpoint:

GET /:page_id/monitors

Query-parametre

ParameterTypeStandardværdiBeskrivelse
pagenumber1Det sidenummer, der skal hentes.
limitnumber100Antallet af monitorer pr. side.
searchstringnullSøgeord til filtrering af resultaterne.
statusenumnullStatusfilter ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Eksempel på forespørgsel

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

Eksempel på svar

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

Opret en monitor

Endpoint:

POST /monitors

Eksempel på forespørgsel

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

Eksempel på svar

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

Opdater en monitor

Endpoint:

PUT /monitors/:id

Eksempel på forespørgsel

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

Eksempel på svar

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

Slet en monitor

Endpoint:

DELETE /monitors/:id

Eksempel på forespørgsel

DELETE /monitors/monitor-id-1

Eksempel på svar

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

Hent monitorlogs

Endpoint:

GET /monitors/:id/logs

Query-parametre

ParameterTypeStandardværdiBeskrivelse
limitnumber100Antallet af elementer pr. side. Kan højst være 1000.
pagenumber1Det sidenummer, der skal hentes.
monitorIdstring-Monitorens ID.
locationstringnullMonitorens lokation.
createdAtstring | object | numbernullOprettelsesdatoen. Kan være en streng, et tal eller et objekt med felterne gte og lte.
isSuccessfulbooleannullOm tjekket var vellykket.
isSSLCheckbooleannullOm tjekket er et SSL-tjek.
httpStatusCodestringnullSvarets HTTP-statuskode.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullMonitorens status.
dnsTimestring | number | objectnullTid brugt på DNS-opslag.
tcpTimestring | number | objectnullTid brugt på TCP-forbindelsen.
tlsTimestring | number | objectnullTid brugt på TLS-handshake.
firstByteTimestring | number | objectnullTid, før den første byte blev modtaget.
downloadTimestring | number | objectnullTid brugt på download.
responseTimestring | number | objectnullSamlet svartid.
performanceTimestring | number | objectnullYdeevnetid.
accessabilityScorestring | number | objectnullScore for tilgængelighed.
seoScorestring | number | objectnullSEO-score.
bestPracticesScorestring | number | objectnullScore for best practices.
successfulAssertionsstring | number | objectnullAntal opfyldte betingelser.
sortstringkronologiskDet felt, der skal sorteres efter.

Eksempel på forespørgsel

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

Eksempel på svar

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

Kør monitortjek efter ID

Endpoint:

GET /monitors/:id/run

Query-parametre

ParameterTypeStandardværdiBeskrivelse
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Monitorens lokation. Skal være en af de angivne værdier.
retrybooleanfalseAngiver, om handlingen skal forsøges igen. Valgfri.
monitorLogIdstringnullMonitorloggens unikke id. Valgfri.

Eksempel på forespørgsel

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

Eksempel på svar

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

Opret monitoralarm

Endpoint:

POST /monitor-alerts

Eksempel på forespørgsel

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

Eksempel på svar

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

Opdater monitoralarm

Endpoint:

PUT /monitor-alerts/:id

Eksempel på forespørgsel

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

Eksempel på svar

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

Hent monitoralarmer

Endpoint:

GET /:page_id/monitor-alerts

Query-parametre

ParameterTypeStandardværdiBeskrivelse
limitnumber100Antallet af elementer pr. side.
pagenumber1Det sidenummer, der skal hentes.

Eksempel på forespørgsel

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

Eksempel på svar

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

Slet monitoralarm

Endpoint:

DELETE /monitor-alerts/:id

Eksempel på forespørgsel

DELETE /monitor-alerts/alert-id-1

Eksempel på svar

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

Opret monitorgruppe

Endpoint:

POST /monitors-groups

Eksempel på forespørgsel

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

Eksempel på svar

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

Opdater monitorgruppe

Endpoint:

PUT /monitors-groups/:id

Eksempel på forespørgsel

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

Eksempel på svar

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

Slet monitorgruppe

Endpoint:

DELETE /monitors-groups/:id

Eksempel på forespørgsel

DELETE /monitors-groups/group-id-1

Eksempel på svar

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

Føj monitorer til en gruppe

Endpoint:

POST /monitors-groups/:id/monitors

Eksempel på forespørgsel

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

Eksempel på svar

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

Kør tjek for en monitorgruppe

Endpoint:

GET /monitors-groups/:id/run

Query-parametre

ParameterTypeStandardværdiBeskrivelse
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Monitorens lokation. Skal være en af de angivne værdier.
retrybooleanfalseAngiver, om handlingen skal forsøges igen. Valgfri.
monitorLogIdstringnullMonitorloggens unikke id. Valgfri.

Eksempel på forespørgsel

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

Eksempel på svar

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

Cron-monitorer

Cron-monitorer følger planlagte jobs via HTTP-ping. Se Cron-overvågning for opsætning i produktet og brug i dashboardet.

Mulige værdier for felter

Status for cron-monitor

VærdiBeskrivelse
UPMonitoren kører normalt
DOWNMonitoren har fejlet
DEGRADEDMonitoren oplever problemer
UNKNOWNMonitorens tilstand kan ikke afgøres

Tilstand for cron-monitor

VærdiBeskrivelse
ACTIVEMonitoren tjekkes aktivt
PAUSEDMonitorens tjek er sat på pause
MUTEDMonitoren er slået fra (ingen notifikationer)

Logstatus for cron-monitor

VærdiBeskrivelse
SUCCESSJobbet blev gennemført
FAILUREJobbet meldte udtrykkeligt en fejl
MISSEDJobbet pingede ikke inden for det forventede vindue
LATEJobbet pingede efter perioden, men inden for fristen
STARTEDJobbet meldte, at det var startet (måling af kørselstid)

Periode og frist

Både period og grace angives i sekunder. period er, hvor ofte jobbet skal køre; grace er den ekstra tid, der tillades, før monitoren markeres som nede.

Hent cron-monitorer

Endpoint:

GET /:page_id/monitors/cron

Query-parametre

ParameterTypeStandardværdiBeskrivelse
limitnumber100Antallet af cron-monitorer pr. side. Højst 100.
pagenumber1Sidenummeret.
searchstringnullSøgeord til filtrering af resultater efter navn.
statusenumnullStatusfilter ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Eksempel på forespørgsel

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

Eksempel på svar

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

Opret en cron-monitor

Endpoint:

POST /monitors/cron

Eksempel på forespørgsel

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

Eksempel på svar

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

Svaret indeholder et slug. Brug det til at bygge ping-URL'er til dit job. Det første vellykkede ping planlægger baggrundstjekket.

Opdater en cron-monitor

Endpoint:

PUT /monitors/cron/:id

Eksempel på forespørgsel

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

Eksempel på svar

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

Slet en cron-monitor

Endpoint:

DELETE /monitors/cron/:id

Eksempel på forespørgsel

DELETE /monitors/cron/cron-abc123

Eksempel på svar

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

Hent logs for en cron-monitor

Endpoint:

GET /monitors/cron/:id/logs

Query-parametre

ParameterTypeStandardværdiBeskrivelse
limitnumber100Antallet af logs pr. side. Højst 127.
pagenumber1Sidenummeret. Højst 1000.
startDatestring1 år sidenISO 8601-startdato for logintervallet.
endDatestringnuISO 8601-slutdato for logintervallet.
importanceenumnullFiltrer logs efter vigtighed ('all', 'important').

Eksempel på forespørgsel

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

Eksempel på svar

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

Hent oversigt for en cron-monitor

Endpoint:

GET /monitors/cron/:id/summary

Eksempel på forespørgsel

GET /monitors/cron/cron-abc123/summary

Eksempel på svar

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

Disse endpoints kræver ikke godkendelse. Monitorens slug fungerer som hemmelighed.

Du kan pinge via API'ets basis-URL eller den dedikerede cron-host:

  • Succes: https://cron.instatus.com/{slug} eller GET / POST / HEAD /monitors/cron/{slug}
  • Fejl: https://cron.instatus.com/{slug}/fail eller GET / POST / HEAD /monitors/cron/{slug}/fail
  • Start: https://cron.instatus.com/{slug}/start eller GET / POST / HEAD /monitors/cron/{slug}/start

Send et succes-ping, hver gang dit job er færdigt til tiden. Send et start-ping, før jobbet kører, og et succes- eller fejl-ping, når det er færdigt, for at registrere kørselstiden.

Eksempel på succes-ping

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

Eksempel på svar

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

Er slug'et ugyldigt, er svaret:

{
"message": "Monitor not found"
}