Referensi API Monitor

Nilai yang mungkin untuk kolom

Lokasi Monitor

NilaiDeskripsi
US_EAST_1N. Virginia
CA_CENTRAL_1Kanada (Montreal)
EU_CENTRAL_1Frankfurt
AP_NORTHEAST_1Tokyo

Jenis Peringatan Monitor

NilaiDeskripsi
INCIDENTPeringatan insiden
EMAILPeringatan email
SMSPeringatan SMS
SLACKPeringatan Slack
DISCORDPeringatan Discord
MICROSOFT_TEAMSPeringatan Microsoft Teams
PHONE_CALLPeringatan panggilan telepon
WEBHOOKPeringatan webhook
GOOGLE_CHATPeringatan Google Chat
WHATSAPPPeringatan WhatsApp

Status Monitor

NilaiDeskripsi
UPMonitor berjalan normal
DOWNMonitor telah gagal
DEGRADEDMonitor mengalami masalah
UNKNOWNStatus monitor tidak bisa ditentukan

Mendapatkan Monitor

Anda bisa memakai endpoint ini untuk menemukan dan menelusuri daftar semua monitor yang ada.

Endpoint:

GET /:page_id/monitors

Parameter Query

ParameterTipeNilai BawaanDeskripsi
pagenumber1Nomor halaman yang diambil.
limitnumber100Jumlah monitor per halaman.
searchstringnullKata kunci untuk menyaring hasil.
statusenumnullFilter status ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Contoh permintaan

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

Contoh respons

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

Membuat Monitor

Endpoint:

POST /monitors

Contoh permintaan

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

Contoh respons

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

Memperbarui Monitor

Endpoint:

PUT /monitors/:id

Contoh permintaan

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

Contoh respons

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

Menghapus Monitor

Endpoint:

DELETE /monitors/:id

Contoh permintaan

DELETE /monitors/monitor-id-1

Contoh respons

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

Mendapatkan Log Monitor

Endpoint:

GET /monitors/:id/logs

Parameter Query

ParameterTipeNilai BawaanDeskripsi
limitnumber100Jumlah item per halaman. Tidak boleh lebih dari 1000.
pagenumber1Nomor halaman yang diambil.
monitorIdstring-ID monitor.
locationstringnullLokasi monitor.
createdAtstring | object | numbernullTanggal pembuatan. Bisa berupa string, angka, atau objek dengan kolom gte dan lte.
isSuccessfulbooleannullApakah pemeriksaan berhasil.
isSSLCheckbooleannullApakah pemeriksaan berupa pemeriksaan SSL.
httpStatusCodestringnullKode status HTTP dari respons.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullStatus monitor.
dnsTimestring | number | objectnullWaktu untuk resolusi DNS.
tcpTimestring | number | objectnullWaktu untuk koneksi TCP.
tlsTimestring | number | objectnullWaktu untuk handshake TLS.
firstByteTimestring | number | objectnullWaktu sampai bita pertama diterima.
downloadTimestring | number | objectnullWaktu untuk pengunduhan.
responseTimestring | number | objectnullTotal waktu respons.
performanceTimestring | number | objectnullWaktu performa.
accessabilityScorestring | number | objectnullSkor aksesibilitas.
seoScorestring | number | objectnullSkor SEO.
bestPracticesScorestring | number | objectnullSkor praktik terbaik.
successfulAssertionsstring | number | objectnullJumlah pernyataan yang berhasil.
sortstringkronologisKolom untuk pengurutan.

Contoh permintaan

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

Contoh respons

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

Menjalankan Pemeriksaan Monitor berdasarkan ID

Endpoint:

GET /monitors/:id/run

Parameter Query

ParameterTipeNilai BawaanDeskripsi
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Lokasi monitor. Harus salah satu dari nilai yang ditentukan.
retrybooleanfalseMenunjukkan apakah operasi harus dicoba ulang. Opsional.
monitorLogIdstringnullPengenal unik log monitor. Opsional.

Contoh permintaan

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

Contoh respons

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

Membuat Peringatan Monitor

Endpoint:

POST /monitor-alerts

Contoh permintaan

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

Contoh respons

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

Memperbarui Peringatan Monitor

Endpoint:

PUT /monitor-alerts/:id

Contoh permintaan

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

Contoh respons

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

Mendapatkan Peringatan Monitor

Endpoint:

GET /:page_id/monitor-alerts

Parameter Query

ParameterTipeNilai BawaanDeskripsi
limitnumber100Jumlah item per halaman.
pagenumber1Nomor halaman yang diambil.

Contoh permintaan

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

Contoh respons

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

Menghapus Peringatan Monitor

Endpoint:

DELETE /monitor-alerts/:id

Contoh permintaan

DELETE /monitor-alerts/alert-id-1

Contoh respons

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

Membuat Grup Monitor

Endpoint:

POST /monitors-groups

Contoh permintaan

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

Contoh respons

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

Memperbarui Grup Monitor

Endpoint:

PUT /monitors-groups/:id

Contoh permintaan

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

Contoh respons

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

Menghapus Grup Monitor

Endpoint:

DELETE /monitors-groups/:id

Contoh permintaan

DELETE /monitors-groups/group-id-1

Contoh respons

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

Menambahkan Monitor ke Grup

Endpoint:

POST /monitors-groups/:id/monitors

Contoh permintaan

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

Contoh respons

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

Menjalankan Pemeriksaan Grup Monitor

Endpoint:

GET /monitors-groups/:id/run

Parameter Query

ParameterTipeNilai BawaanDeskripsi
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-Lokasi monitor. Harus salah satu dari nilai yang ditentukan.
retrybooleanfalseMenunjukkan apakah operasi harus dicoba ulang. Opsional.
monitorLogIdstringnullPengenal unik log monitor. Opsional.

Contoh permintaan

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

Contoh respons

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

Monitor Cron

Monitor cron melacak pekerjaan terjadwal lewat ping HTTP. Untuk penyiapan produk dan penggunaan dashboard, lihat Pemantauan Cron.

Nilai yang mungkin untuk kolom

Status Monitor Cron

NilaiDeskripsi
UPMonitor berjalan normal
DOWNMonitor telah gagal
DEGRADEDMonitor mengalami masalah
UNKNOWNStatus monitor tidak bisa ditentukan

Keadaan Monitor Cron

NilaiDeskripsi
ACTIVEMonitor diperiksa secara aktif
PAUSEDPemeriksaan monitor dijeda
MUTEDMonitor dibisukan (tanpa notifikasi)

Status Log Monitor Cron

NilaiDeskripsi
SUCCESSPekerjaan selesai dengan sukses
FAILUREPekerjaan secara eksplisit melaporkan kegagalan
MISSEDPekerjaan tidak melakukan ping dalam jendela yang diharapkan
LATEPekerjaan melakukan ping setelah periode tetapi masih dalam tenggang
STARTEDPekerjaan melaporkan bahwa ia dimulai (pencatatan waktu eksekusi)

Periode dan tenggang

Baik period maupun grace dinyatakan dalam detik. period adalah seberapa sering pekerjaan harus berjalan; grace adalah waktu tambahan yang diberikan sebelum monitor ditandai mati.

Mendapatkan Monitor Cron

Endpoint:

GET /:page_id/monitors/cron

Parameter Query

ParameterTipeNilai BawaanDeskripsi
limitnumber100Jumlah monitor cron per halaman. Maksimum 100.
pagenumber1Nomor halaman.
searchstringnullKata kunci untuk menyaring hasil berdasarkan nama.
statusenumnullFilter status ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Contoh permintaan

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

Contoh respons

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

Membuat Monitor Cron

Endpoint:

POST /monitors/cron

Contoh permintaan

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

Contoh respons

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

Respons menyertakan sebuah slug. Pakai slug itu untuk menyusun URL ping bagi pekerjaan Anda. Ping berhasil yang pertama akan menjadwalkan pekerjaan pemeriksaan latar belakang.

Memperbarui Monitor Cron

Endpoint:

PUT /monitors/cron/:id

Contoh permintaan

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

Contoh respons

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

Menghapus Monitor Cron

Endpoint:

DELETE /monitors/cron/:id

Contoh permintaan

DELETE /monitors/cron/cron-abc123

Contoh respons

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

Mendapatkan Log Monitor Cron

Endpoint:

GET /monitors/cron/:id/logs

Parameter Query

ParameterTipeNilai BawaanDeskripsi
limitnumber100Jumlah log per halaman. Maksimum 127.
pagenumber1Nomor halaman. Maksimum 1000.
startDatestring1 tahun laluTanggal mulai ISO 8601 untuk rentang log.
endDatestringsekarangTanggal berakhir ISO 8601 untuk rentang log.
importanceenumnullSaring log berdasarkan kepentingan ('all', 'important').

Contoh permintaan

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

Contoh respons

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

Mendapatkan Ringkasan Monitor Cron

Endpoint:

GET /monitors/cron/:id/summary

Contoh permintaan

GET /monitors/cron/cron-abc123/summary

Contoh respons

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

Endpoint ping

Endpoint ini tidak memerlukan autentikasi. slug monitor berperan sebagai secret-nya.

Anda bisa melakukan ping lewat URL dasar API atau host cron khusus:

  • Berhasil: https://cron.instatus.com/{slug} atau GET / POST / HEAD /monitors/cron/{slug}
  • Gagal: https://cron.instatus.com/{slug}/fail atau GET / POST / HEAD /monitors/cron/{slug}/fail
  • Mulai: https://cron.instatus.com/{slug}/start atau GET / POST / HEAD /monitors/cron/{slug}/start

Kirim ping keberhasilan setiap kali pekerjaan Anda selesai sesuai jadwal. Kirim ping mulai sebelum pekerjaan berjalan dan ping keberhasilan atau kegagalan saat selesai untuk mencatat waktu eksekusi.

Contoh ping keberhasilan

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

Contoh respons

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

Jika slug-nya tidak valid, responsnya adalah:

{
"message": "Monitor not found"
}