Gözlemlenebilirlik
- İngilizcesi
- Observability
- Okunuşu
- ıbzörvıbiliti
Günlük kullanımda iki ad da yaygın.
Kısaca
Gözlemlenebilirlik, çalışan bir yazılım sisteminin içinde olup biteni log, metrik ve trace verilerini toplayıp analiz ederek anlayabilme yeteneğidir.
Gözlemlenebilirlik (observability) nedir?
Gözlemlenebilirlik, bir sistemin iç durumunu ürettiği verilerden ne kadar iyi anlayabildiğinizi tarif eder. İyi gözlemlenen bir sistemde yavaş bir ödeme sayfası ya da ani bir hata artışı gibi bir şey ters gittiğinde mühendisler, yalnızca incelemek için yeni kod yayınlamadan, bu verileri sorgulayarak nedenini bulabilir. Terim kontrol teorisinden gelir ve mikroservisler gibi dağıtık sistemleri işletmenin merkezi bir kavramı haline gelmiştir.
Gözlemlenebilirlik genellikle, çoğu zaman üç sütun olarak anılan üç tür telemetri üzerine kurulur. Log'lar tek tek olayların zaman damgalı kayıtlarıdır; metrikler, saniyedeki istek sayısı, hata oranı ya da bellek kullanımı gibi zaman içinde ölçülen sayılardır; trace'ler ise tek bir isteği birçok servis boyunca izleyerek zamanın nerede harcandığını gösterir. OpenTelemetry, bu verileri üretmek ve toplamak için yaygın olarak benimsenmiş açık standarttır; veriler sonra birçok farklı depolama ve gösterge paneli aracına gönderilebilir.
Araba iyi bir karşılaştırmadır: gösterge panelindeki uyarı ışığı size bir şeylerin ters gittiğini söyler; her sensörü okuyan bir tamircinin teşhis aracı ise tam olarak ne olduğunu ve nedenini bulmanıza yardımcı olur. Ekipler genellikle telemetriyi gösterge panellerine, uyarılara ve bir hizmetin kullanıcıları için ne kadar güvenilir olması gerektiğini tanımlayan hizmet seviyesi hedeflerine (SLO) dönüştürür.
Gözlemlenebilirlik çoğu zaman izleme (monitoring) ile birbirinin yerine kullanılır, ama ikisi farklıdır. İzleme, önceden tanımlanmış kontroller ve gösterge panelleriyle bilinen sorunları gözler ve önceden aklınıza gelen soruları yanıtlar; gözlemlenebilirlik ise öngörmediğiniz yeni, beklenmedik sorunları araştırmanıza olanak tanır. İzleme, gözlemlenebilirliğin yerini almaz, onun bir parçasıdır.
Bir bakışta
Önemli noktalar
- Gözlemlenebilirlik, bir sistemin iç durumunu yaydığı verilerden anlamak demektir.
- Log'lar, metrikler ve trace'ler üç ana telemetri türüdür.
- Dağıtık izleme (distributed tracing), tek bir isteği birçok servis boyunca takip eder.
- İzleme bilinen soruları yanıtlar; gözlemlenebilirlik bilinmeyenleri araştırmaya yardımcı olur.
- OpenTelemetry, telemetri toplamak için yaygın açık standarttır.
Örnek
import { trace } from "@opentelemetry/api";
const tracer = trace.getTracer("checkout-service");
export async function checkout(order) {
// A span measures this step and links it to the rest of the request's trace
return tracer.startActiveSpan("checkout", async (span) => {
span.setAttribute("order.item_count", order.items.length);
try {
return await chargeCard(order);
} finally {
span.end(); // the finished span is exported to your tracing backend
}
});
}Sık sorulan sorular
Gözlemlenebilirlik ile izleme arasındaki fark nedir?
İzleme, önceden tanımlanmış metrikleri takip eder ve yüksek CPU kullanımı ya da başarısız bir sağlık kontrolü gibi bilinen sorunlar ortaya çıktığında sizi uyarır. Gözlemlenebilirlik ise ayrıntılı telemetriyi keşfedip öngörmediğiniz sorunları anlayabilme yeteneğidir ve izleme bunun bir parçasıdır.
Gözlemlenebilirliğin üç sütunu nedir?
Üç sütun log'lar, metrikler ve trace'lerdir. Log'lar tek tek olayları kaydeder, metrikler ölçümleri zaman içinde özetler, trace'ler ise tek bir isteğin sistem içindeki yolunu ve zamanlamasını gösterir; birçok ekip artık dördüncü bir sinyal olarak sürekli profillemeyi de ekliyor.
OpenTelemetry nedir?
Çoğunlukla OTel olarak kısaltılan OpenTelemetry, log, metrik ve trace üretmek ve toplamak için açık kaynaklı, sağlayıcıdan bağımsız bir standart ve SDK kümesidir. Bir standart olduğu için enstrümantasyonunuzu yeniden yazmadan depolama ve gösterge paneli araçlarını değiştirebilirsiniz.
İlgili sayfalar
- DevOpsDevOps ve Bulut, s. 13DevOps, yazılım geliştirme ile BT operasyonlarını birleştirerek yazılımın daha hızlı ve güvenilir sunulmasını sağlayan bir kültür ve pratikler bütünüdür.
- MikroservislerYazılım Mimarisi, s. 24Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- Blue-Green DeploymentDevOps ve Bulut, s. 4Blue-green deployment, iki özdeş canlı ortam kullanan ve tüm trafiği eski sürümden yeni sürüme tek seferde geçiren bir yayın stratejisidir.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- PrometheusDevOps ve Bulut, s. 41Prometheus, uygulama ve sunuculardan metrik toplayıp zaman serisi olarak saklayan ve değerler sınırı aşınca uyarı tetikleyen açık kaynaklı izleme sistemidir.
- GrafanaDevOps ve Bulut, s. 23Grafana; birçok veri kaynağındaki metrik, log ve izleri tek yerde canlı grafiklere ve uyarılara dönüştüren panolar kurmaya yarayan açık kaynaklı bir araçtır.
- OpenTelemetryDevOps ve Bulut, s. 35OpenTelemetry, yazılımdan trace, metrik ve log toplayıp bunları herhangi bir izleme backend'ine göndermek için açık bir standart ve araç takımıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin