İçeriğe geç
YuvaBelgeler

Çalışma süresi denetimleri

5 dk okuma

Çalışma süresi denetimi, Yuva sunucusundan sizin bir URL’nizi belirli aralıklarla çağırır ve beklediğiniz gibi yanıt verip vermediğini, her adımın ne kadar sürdüğünü ve sertifikasının ne zaman sona erdiğini kaydeder. İstek kayıtlarının söyleyemediği şey için kullanın: çalışmayan bir API istek almaz, dolayısıyla bunu hiçbir şey bildirmez. Bu sayfa API izleme sayfasının üzerine kuruludur; bir denetim çöktüğünde uyarılar sizi haberdar eder.

Denetim ekleme

Sahipler ve yöneticiler ile gelen kutusu sınırı olmayan API anahtarları, analytics:manage yetkisiyle denetim oluşturur:

curl https://support.example.com/v1/monitoring/checks \
  -H "Authorization: Bearer $YUVA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Shop API health",
    "url": "https://api.example.com/healthz",
    "property_id": "PROPERTY_ID"
  }'

Denetim hemen, sonra da aralığında çalışır. Denetimi oluşturan üye, kendisine gönderilen bir uyarı kuralı alır: bkz. varsayılan kurallar.

Alan Varsayılan Anlamı
name zorunlu 1 ile 100 karakter.
url zorunlu Bir host içeren, kimlik bilgisi ve parça içermeyen http ya da https URL’si, en çok 2.000 karakter.
method GET GET ya da HEAD.
headers yok En çok 5 istek başlığı, her biri { "name": "Authorization", "value": "Bearer …" }. Aşağıya bakın.
expected_statuses 200 ile 399 arası herhangi biri Ayakta sayılan, 200 ile 399 arasında en çok 20 durum kodu.
keyword yok Yanıtın ilk 64 KiB’ının içermesi gereken metin; yalnızca GET.
keyword_absent false keyword’ü tersine çevirir: yanıt bunu içermemelidir.
timeout_seconds 10 1 ile 30.
interval_seconds 60, ya da daha uzunsa sunucunun en küçük değeri 30 ile 86.400 ve en az YUVA_MONITOR_MIN_INTERVAL (422 interval_too_short).
failures_before_down 2 Denetim çökmüş sayılmadan önce arka arkaya başarısız 1 ile 10 çalıştırma.
cert_warning_days 14 1 ile 90. Sertifikası bu kadar gün içinde sona erecek bir https denetimi certificate uyarısı verir.
max_redirects 5 0 ile 5. 0 ile yönlendirmenin kendi durumu değerlendirilir.
service yok Denetimin izlediği servis, kayıtlarınızın ve span’lerinizin verdiği adla.
property_id yok uptime sayıları ve raporları denetimi içeren API özelliği.
paused false Duraklatılmış denetim çalışmaz.

PATCH /v1/monitoring/checks/{checkId} bunlardan herhangi birini değiştirir; denetim sonradan bütün olarak doğrulanır. Değişen bir URL, method ya da aralık denetimi hemen bir sonraki çalıştırmaya alır, paused: true durdurur, paused: false hemen çalıştırır. DELETE denetimi sonuçları, günlük satırları, uyarı kuralları ve uyarılarıyla birlikte siler.

Başlıklar

Başlıklar, denetimin Authorization başlığı ya da sağlık uç noktanızın istediği bir belirteci iletmesini sağlar. Değerler sunucunun ana anahtarıyla mühürlenir ve yalnızca yazılabilir: API yalnızca header_names döndürür, hiçbir değeri döndürmez. headers bir güncellemede tüm başlıkların yerine geçer, değerler dahil; bu yüzden listenin tamamını gönderin. Host, Cookie, Content-Length, Transfer-Encoding, Connection, Upgrade, TE, Trailer ve Proxy-* ayarlanamaz.

Sunucunun neyi çağırıp neyi çağırmayacağı

Sunucu yalnızca genel adresleri çağırır. Bir URL; kimlik bilgisi, localhost ya da şu aralıklardan birinde bir adres içeriyorsa 422 refused_address ile reddedilir:

  • loopback,
  • özel (private),
  • link-local,
  • operatör düzeyinde NAT (CGNAT),
  • multicast,
  • ayrılmış (reserved),
  • bulut metadata.

Bir host adı denetim kaydedilirken ve her çalıştırmada çözümlenir; çözümlediği adreslerden biri bunlardan biriyse reddedilir. Her yönlendirme adımı aynı şekilde denetlenir ve bağlantı denetlenmiş adrese kurulur; böylece aramalar arasında yanıtını değiştiren bir ad sunucuyu özel bir adrese götüremez. Sonraki bir çalıştırmada reddedilen denetim refused_address hatasıyla başarısız olur.

Kendi sunucusunda iç servisleri izlemesi gereken bir kurulum YUVA_MONITOR_ALLOW_PRIVATE=true ayarlar (Yapılandırma). Bu, denetimlerin özel ve loopback adreslere ulaşmasına izin verir. Link-local ve bulut metadata adresleri o zaman bile reddedilmeye devam eder.

Sunucu User-Agent: Yuva-Uptime/<sürüm> gönderir; çerez ve gövde göndermez, yanıttan en çok 64 KiB okur. Her bağlantı denemesi, denetimin timeout_seconds değeri ne olursa olsun 10 saniye sonra vazgeçer.

Sınırlar

Sınır Değer
Çalışma alanı başına denetim YUVA_MONITOR_CHECKS: 500, açık kayıt olan sunucuda 50 (403 check_limit).
Tek bir host’taki denetim 10 (403 host_limit).
En kısa aralık YUVA_MONITOR_MIN_INTERVAL: 30 saniye, açık kayıt olan sunucuda 60.
Saklanan çalıştırmalar YUVA_MONITOR_CHECK_DAYS gün, varsayılan 30; daha eski günler 400 gün boyunca günlük sayı olarak kalır.

Denetim çöktüğünde

Yanıt zamanında gelir, durumu expected_statuses içinde olur ve anahtar sözcük koşulu sağlanırsa çalıştırma başarılı olur. Başarısız olan çalıştırma 20 saniye sonra yeniden denenir ve yalnızca bu ikinci deneme sayılır. Denetim, arka arkaya failures_before_down sayılan çalıştırma başarısız olunca down olur, başarılı bir çalıştırmadan sonra yeniden up olur. İlk sayılan çalıştırmasından önce unknown durumundadır.

Başarısız bir çalıştırma şu hatalardan birini taşır: dns, refused_address, connect, tls, timeout, status, keyword, redirects ya da other.

Bilinmeyen dakikalar. Sunucuda bir dakikada en az 20 denetim çalışıp yarısından fazlası başarısız olduysa, sorun sizin uç noktalarınızdan çok Yuva’nın kendi ağındadır. O dakikanın çalıştırmaları unknown kaydedilir: ne ayakta ne çökmüş sayılır ve hiçbir çalışma süresi rakamında görünmez.

Gecikme. Bir dakika kapandıktan yaklaşık 40 saniye sonra değerlendirilir; bu yüzden durmuş bir uç nokta, varsayılan iki başarısızlıkla 2 ile 3 dakika sonra çökmüş görünür. Henüz değerlendirilmemiş bir çalıştırmanın sonuçlarda durumu pending olur.

Sonuçları okuma

GET /v1/monitoring/checks denetimleri durumları, state_since, next_run_at, cert_expires_at ve son sonuçlarıyla listeler. GET /v1/monitoring/checks/{checkId}/results sayılan çalıştırmaları en yenisi önce olmak üzere sayfa başına en çok 500 olarak listeler (limit, sonraki sayfa için before). Her çalıştırmada şunlar vardır:

Alan Anlamı
at Sayılan denemenin başladığı an.
ok, state Başarılı olup olmadığı ve sonraki durum: up, down, unknown ya da pending.
status Son yanıtın durumu; yanıt gelmediyse 0.
error, detail Neden başarısız olduğu. Ayrıntı sabit bir metindir; çözümlenen adresleri asla göstermez.
retried İlk deneme başarısız oldu ve bu, 20 saniye sonraki denemedir.
redirects İzlenen adım sayısı.
timings dns, connect, tls, ttfb ve total, milisaniye olarak.
cert_days_left https: sertifikanın sona ermesine kalan tam gün.

uptime veri kümesi

Zaman içindeki sayılar dataset: uptime ile sorgu işleminden gelir: POST /v1/monitoring/query, özelliği olmayanlar dahil çalışma alanının her denetimini, POST /v1/analytics/properties/{propertyId}/query ise o özelliğin denetimlerini okur. Boyut check’tir, bir zaman ayrıntısıyla birlikte; saklanan çalıştırmalar içinde time:minute ya da time:hour, her aralık için time:day, time:week ya da time:month kullanın. Kovalar ve günler, özelliğin saat dilimi ne olursa olsun UTC’dir.

Metrik Anlamı
runs, failures Sayılan çalıştırmalar ve bunlardan başarısız olanlar.
up Aralığın ya da kovanın son sayılan çalıştırması başarılı olan denetimler.
uptime Denetimin çökmüş olmadığı izlenen sürenin yüzdesi; her çalıştırma kendi aralığını temsil eder.
downtime Çökmüş olunan saniye.
response_time_p50, response_time_p95, response_time_p99 Yanıt alan çalıştırmaların toplam süresi, milisaniye olarak, %1,1 doğrulukla.
avg_response_time, ttfb Ortalama toplam süre ve ilk bayta kadar geçen süre, milisaniye olarak.
cert_days_left Bir sertifikanın sona ermesine kalan en az gün.

Bilinmeyen çalıştırmalar bunların hiçbirinde sayılmaz. CSV dosyası için POST /v1/monitoring/query çağrısına ?format=csv ekleyin.

Bu sayfayı GitHub'da düzenleyin →