İzleyiciler API Referansı

Alanlar için olası değerler

İzleyici konumu

DeğerAçıklama
US_EAST_1Kuzey Virginia
CA_CENTRAL_1Kanada (Montreal)
EU_CENTRAL_1Frankfurt
AP_NORTHEAST_1Tokyo

İzleyici uyarı türleri

DeğerAçıklama
INCIDENTOlay uyarısı
EMAILE-posta uyarısı
SMSSMS uyarısı
SLACKSlack uyarısı
DISCORDDiscord uyarısı
MICROSOFT_TEAMSMicrosoft Teams uyarısı
PHONE_CALLTelefon araması uyarısı
WEBHOOKWebhook uyarısı
GOOGLE_CHATGoogle Chat uyarısı
WHATSAPPWhatsApp uyarısı

İzleyici durumu

DeğerAçıklama
UPİzleyici normal çalışıyor
DOWNİzleyici başarısız oldu
DEGRADEDİzleyici sorun yaşıyor
UNKNOWNİzleyicinin durumu belirlenemiyor

İzleyicileri getirin

Mevcut tüm izleyicilerin listesini bulmak ve içinde gezinmek için bu uç noktayı kullanabilirsiniz.

Uç nokta:

GET /:page_id/monitors

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
pagenumber1Getirilecek sayfa numarası.
limitnumber100Sayfa başına izleyici sayısı.
searchstringnullSonuçları filtrelemek için arama terimi.
statusenumnullDurum filtresi ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Örnek istek

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

Örnek yanıt

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

İzleyici oluşturun

Uç nokta:

POST /monitors

Örnek istek

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

Örnek yanıt

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

İzleyiciyi güncelleyin

Uç nokta:

PUT /monitors/:id

Örnek istek

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

Örnek yanıt

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

İzleyiciyi silin

Uç nokta:

DELETE /monitors/:id

Örnek istek

DELETE /monitors/monitor-id-1

Örnek yanıt

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

İzleyici günlüklerini getirin

Uç nokta:

GET /monitors/:id/logs

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
limitnumber100Sayfa başına öğe sayısı. 1000'i aşamaz.
pagenumber1Getirilecek sayfa numarası.
monitorIdstring-İzleyicinin ID'si.
locationstringnullİzleyicinin konumu.
createdAtstring | object | numbernullOluşturulma tarihi. Bir metin, bir sayı ya da gte ve lte alanlarını içeren bir nesne olabilir.
isSuccessfulbooleannullKontrolün başarılı olup olmadığı.
isSSLCheckbooleannullKontrolün bir SSL kontrolü olup olmadığı.
httpStatusCodestringnullYanıtın HTTP durum kodu.
status('UP', 'DOWN', 'UNKNOWN', 'DEGRADED')nullİzleyicinin durumu.
dnsTimestring | number | objectnullDNS çözümlemesi için geçen süre.
tcpTimestring | number | objectnullTCP bağlantısı için geçen süre.
tlsTimestring | number | objectnullTLS el sıkışması için geçen süre.
firstByteTimestring | number | objectnullİlk baytın alınması için geçen süre.
downloadTimestring | number | objectnullİndirme için geçen süre.
responseTimestring | number | objectnullToplam yanıt süresi.
performanceTimestring | number | objectnullPerformans süresi.
accessabilityScorestring | number | objectnullErişilebilirlik puanı.
seoScorestring | number | objectnullSEO puanı.
bestPracticesScorestring | number | objectnullEn iyi uygulamalar puanı.
successfulAssertionsstring | number | objectnullBaşarılı doğrulama sayısı.
sortstringkronolojikSıralanacak alan.

Örnek istek

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

Örnek yanıt

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

ID ile izleyici kontrolü çalıştırın

Uç nokta:

GET /monitors/:id/run

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-İzleyicinin konumu. Belirtilen değerlerden biri olmalıdır.
retrybooleanfalseİşlemin yeniden denenip denenmeyeceğini belirtir. İsteğe bağlı.
monitorLogIdstringnullİzleyici günlüğünün benzersiz kimliği. İsteğe bağlı.

Örnek istek

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

Örnek yanıt

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

İzleyici uyarısı oluşturun

Uç nokta:

POST /monitor-alerts

Örnek istek

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

Örnek yanıt

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

İzleyici uyarısını güncelleyin

Uç nokta:

PUT /monitor-alerts/:id

Örnek istek

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

Örnek yanıt

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

İzleyici uyarılarını getirin

Uç nokta:

GET /:page_id/monitor-alerts

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
limitnumber100Sayfa başına öğe sayısı.
pagenumber1Getirilecek sayfa numarası.

Örnek istek

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

Örnek yanıt

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

İzleyici uyarısını silin

Uç nokta:

DELETE /monitor-alerts/:id

Örnek istek

DELETE /monitor-alerts/alert-id-1

Örnek yanıt

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

İzleyici grubu oluşturun

Uç nokta:

POST /monitors-groups

Örnek istek

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

Örnek yanıt

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

İzleyici grubunu güncelleyin

Uç nokta:

PUT /monitors-groups/:id

Örnek istek

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

Örnek yanıt

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

İzleyici grubunu silin

Uç nokta:

DELETE /monitors-groups/:id

Örnek istek

DELETE /monitors-groups/group-id-1

Örnek yanıt

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

Gruba izleyici ekleyin

Uç nokta:

POST /monitors-groups/:id/monitors

Örnek istek

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

Örnek yanıt

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

İzleyici grubu kontrolü çalıştırın

Uç nokta:

GET /monitors-groups/:id/run

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
location'US_EAST_1', 'EU_CENTRAL_1', 'AP_NORTHEAST_1', 'AP_SOUTHEAST_2', 'CA_CENTRAL_1'-İzleyicinin konumu. Belirtilen değerlerden biri olmalıdır.
retrybooleanfalseİşlemin yeniden denenip denenmeyeceğini belirtir. İsteğe bağlı.
monitorLogIdstringnullİzleyici günlüğünün benzersiz kimliği. İsteğe bağlı.

Örnek istek

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

Örnek yanıt

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

Cron izleyicileri

Cron izleyicileri, zamanlanmış işleri HTTP ping'leri aracılığıyla takip eder. Ürün kurulumu ve panel kullanımı için Cron izleme sayfasına bakın.

Alanlar için olası değerler

Cron izleyici durumu

DeğerAçıklama
UPİzleyici normal çalışıyor
DOWNİzleyici başarısız oldu
DEGRADEDİzleyici sorun yaşıyor
UNKNOWNİzleyicinin durumu belirlenemiyor

Cron izleyici hâli

DeğerAçıklama
ACTIVEİzleyici etkin olarak kontrol edilir
PAUSEDİzleyici kontrolleri duraklatıldı
MUTEDİzleyici sessize alındı (bildirim yok)

Cron izleyici günlük durumu

DeğerAçıklama
SUCCESSİş başarıyla tamamlandı
FAILUREİş açıkça bir başarısızlık bildirdi
MISSEDİş beklenen aralıkta ping göndermedi
LATEİş periyottan sonra ama tolerans içinde ping gönderdi
STARTEDİş başladığını bildirdi (çalışma süresi ölçümü)

Periyot ve tolerans

Hem period hem de grace saniye cinsinden belirtilir. period, işin ne sıklıkla çalışması gerektiğidir; grace ise izleyici çalışmıyor olarak işaretlenmeden önce tanınan ek süredir.

Cron izleyicilerini getirin

Uç nokta:

GET /:page_id/monitors/cron

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
limitnumber100Sayfa başına cron izleyici sayısı. En fazla 100.
pagenumber1Sayfa numarası.
searchstringnullSonuçları ada göre filtrelemek için arama terimi.
statusenumnullDurum filtresi ('UP', 'DOWN', 'UNKNOWN', 'DEGRADED').

Örnek istek

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

Örnek yanıt

{
"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 izleyici oluşturun

Uç nokta:

POST /monitors/cron

Örnek istek

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

Örnek yanıt

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

Yanıt bir slug içerir. İşinize ait ping URL'lerini oluşturmak için bunu kullanın. İlk başarılı ping, arka plan kontrol işini planlar.

Cron izleyiciyi güncelleyin

Uç nokta:

PUT /monitors/cron/:id

Örnek istek

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

Örnek yanıt

{
"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 izleyiciyi silin

Uç nokta:

DELETE /monitors/cron/:id

Örnek istek

DELETE /monitors/cron/cron-abc123

Örnek yanıt

{
"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 izleyici günlüklerini getirin

Uç nokta:

GET /monitors/cron/:id/logs

Sorgu parametreleri

ParametreTürVarsayılanAçıklama
limitnumber100Sayfa başına günlük sayısı. En fazla 127.
pagenumber1Sayfa numarası. En fazla 1000.
startDatestring1 yıl önceGünlük aralığı için ISO 8601 başlangıç tarihi.
endDatestringşimdiGünlük aralığı için ISO 8601 bitiş tarihi.
importanceenumnullGünlükleri öneme göre filtreler ('all', 'important').

Örnek istek

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

Örnek yanıt

{
"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 izleyici özetini getirin

Uç nokta:

GET /monitors/cron/:id/summary

Örnek istek

GET /monitors/cron/cron-abc123/summary

Örnek yanıt

{
"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 uç noktaları

Bu uç noktalar kimlik doğrulama gerektirmez. İzleyicinin slug değeri gizli anahtar görevi görür.

API temel URL'si üzerinden veya özel cron sunucusu üzerinden ping gönderebilirsiniz:

  • Başarı: https://cron.instatus.com/{slug} veya GET / POST / HEAD /monitors/cron/{slug}
  • Başarısızlık: https://cron.instatus.com/{slug}/fail veya GET / POST / HEAD /monitors/cron/{slug}/fail
  • Başlangıç: https://cron.instatus.com/{slug}/start veya GET / POST / HEAD /monitors/cron/{slug}/start

İşiniz programa uygun şekilde her tamamlandığında bir başarı ping'i gönderin. Çalışma süresini kaydetmek için iş çalışmadan önce bir başlangıç ping'i, bittiğinde de bir başarı ya da başarısızlık ping'i gönderin.

Örnek başarı ping'i

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

Örnek yanıt

{
"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 geçersizse yanıt şöyle olur:

{
"message": "Monitor not found"
}