Uygulama gözlemliliği telemetri toplayıp analiz etme pratiğidir; bu sayede bir uygulamanın ne yaptığını, neden belirli bir şekilde davrandığını ve kullanıcıların nasıl etkilendiğini anlamaya yardımcı olur. Genellikle metrikler, günlüklere, izlere, olaylara ve ilgili uygulama bağlamına birlikte getirir.
Modern uygulamalar API'ler, mikro hizmetler, veritabanları, kuyruklar, bulut altyapısı ve üçüncü taraf hizmetleri arasında genişleyebilir. Geleneksel izleme bir ekibe bir şeylerin yanlış olduğunu söyleyebilir. Gözlemlilik mühendislerin temel nedeni araştırmalarına yardımcı olur.
Uygulama Gözlemlenmesi Nedir?
Uygulama gözlemliliği, sistemin ürettiği sinyallerden içsel uygulama davranışını anlaşılır hale getirmeye odaklanır. Bu sinyaller ekiplerin neden taleplerin yavaş olduğunu, hangi bağımlılığın başarısız olduğunu, hataların belirli bir iş akışını etkileyip etkilemediğini ve bir olaydan önce neyin değiştiğini yanıtlamalarına yardımcı olabilir.
Gözlemlilik, veri toplamanın ötesindedir. Değer, telemetreyi anlamlı operasyonel sorularla bağlamaktan ve yazılımı araştırmak ve geliştirmek için kullanmaktan gelir.
Gözlemlenebilirlik vs. İzleme
| Alan | Uygulama gözlemliliği | Geleneksel izleme |
|---|---|---|
| Ana amaç | Uygulama davranışını anlamak ve bilinmeyen sorunları araştırmak | Bilinen sağlık göstergelerini ve durumları izlemek |
| Veri | Metrikler, günlüklere, izler, olaylar ve uygulama bağlamı | Sıklıkla önceden tanımlanmış metrikler ve uyarılar etrafında yoğunlaşır |
| Araştırma | Keşif ve ilişkilendirme desteklemek üzere tasarlanmıştır | Sıklıkla bilinen eşiklerden veya kontrollerden başlar |
| Dağıtık sistemler | Hizmetler ve bağımlılıklar arasında etkinliği ilişkilendirebilir | Birden fazla ayrı izleme görünümü gerektirebilir |
İzleme, gözlemlenebilirliğin önemli bir parçası olmaya devam ediyor. İki kavram birbirini tamamlar, karşılıklı olarak dışlayıcı yaklaşımlar değildir.
Üç Temel Gözlemlenebilirlik Sinyali
Metrikler
Metrikler, zaman içinde toplanan sayısal ölçümlerdir. Uygulama örnekleri arasında istek oranı, gecikme, hata oranı, kuyruk derinliği ve kaynak kullanımı bulunur.
Günlükler
Kayıtlar, uygulama olaylarını ve mesajlarını kaydeder. Yapılandırılmış kayıtlar, hizmet adı, istek kimliği, ciddiyet ve işlem gibi alanların tutarlı bir şekilde aranabilir ve ilişkilendirilebilir olması nedeniyle özellikle faydalıdır.
İzler
Dağıtık izler, bir isteğin birden fazla uygulama bileşeni üzerinden nasıl geçtiğini gösterir. Gecikmeye veya hataya hangi hizmetin, veritabanı sorgusunun veya dış bağımlılığın katkıda bulunduğunu ortaya çıkarabilirler.
Profiller ve iş olayları gibi ek sinyaller, gözlemlenebilirlik mimarisi tarafından destekleniyorsa daha fazla bağlam sağlayabilir.
Uygulama Gözlemlenmesinin Önemi
Uygulamalar giderek dağıtık bileşenlere bağımlı hale geliyor. Bir müşteri isteği, bir API geçidi, kimlik doğrulama hizmeti, uygulama hizmeti, önbellek, veritabanı, ödeme sağlayıcısı ve mesajlaşma sistemi üzerinden geçebilir.
Bir istek başarısız olduğunda veya yavaşladığında, bir sunucuya bakmak nedeni ortaya çıkarmayabilir. İlişkili telemetri, mühendislerin isteği bağımlılıkları boyunca takip etmelerine ve gözlemlenen davranıştan sorumlu olan bileşeni belirlemelerine yardımcı olabilir.
Uygulama Gözlemlenmesi Nasıl Çalışır
- Uygulamalar ve destekleyici sistemler telemetri üretir.
- Aletleme, o telemetriye faydalı bir bağlam ekler.
- Toplayıcılar veya ajanlar verileri alır ve işler.
- Telemetri, gözlemlenebilirlik arka planına aktarılır.
- Gösterge panelleri, sorgular, uyarılar ve izler mühendislerin davranışları araştırmasına yardımcı olur.
- Ekipler, bulguları kullanarak sorunları düzeltir ve uygulamayı geliştirir.
Bir Gözlemlenebilirlik Stratejisinin Ana Bileşenleri
Araçlandırma
Aletleme, hangi uygulama davranışının kaydedileceğini belirler. Otomatik, manuel veya her ikisinin bir kombinasyonu olabilir.
Telemetri Toplama
Toplayıcılar ve ajanlar telemetri alabilir, zenginleştirebilir, filtreleyebilir, gruplandırabilir ve depolama veya analiz sistemlerine yönlendirebilir.
Korelasyon
Korelasyon, aynı istek, işlem, hizmet veya iş akışı tarafından üretilen telemetriyi bağlar. Tutarlı tanımlayıcılar ve izleme bağlamı, dağıtık sistemlerde özellikle faydalıdır.
Analiz
Mühendislerin telemetri sorgulaması, izleri keşfetmesi, gösterge panellerini görüntülemesi ve desenleri tanımlaması için araçlara ihtiyacı vardır.
Uyarı
Uyarılar, harekete geçilmesi gereken durumları tanımlamalıdır. Kötü tasarlanmış uyarılar, gürültü yaratabilir ve önemli sinyallerin gözden kaçmasına neden olabilir.
Uygulama Gözlemlenmesi ve Dağıtık Sistemler
Dağıtık mimariler, hizmet sınırlarını aşabilen hatalar nedeniyle gözlemlenebilirlik ihtiyacını artırır. Bir hizmetteki zaman aşımı, yavaş bir veritabanından veya aşağı akıştaki bir API'den kaynaklanabilir.
Dağıtık izleme, bu etkileşimlerin istek düzeyindeki görünümünü sağlayabilir. Metrikler, sorunun yaygın olup olmadığını gösterebilirken, kayıtlar ayrıntılı olay bağlamı sağlayabilir.
Uygulama Performans İzleme ve Gözlemlenmesi
Uygulama performans izleme veya APM, geleneksel olarak uygulama performansına, işlemlere, hatalara ve ilgili operasyonel bilgilere odaklanır. Modern gözlemlenebilirlik platformları genellikle APM yeteneklerini daha geniş telemetri ile birleştirir.
APM ile gözlemlenebilirlik arasındaki kesin sınır, ürün ve organizasyona göre değişir. Operasyonel olarak önemli olan, mühendislerin uygulama sorunlarını tespit etmek, incelemek ve çözmek için yeterli bağlamı elde edip edememesidir.
Gözlemlenebilirlikte İş Bağlamı
Teknik telemetri, iş akışlarına bağlandığında daha faydalı hale gelir. Örneğin, bir API gecikmesindeki bir artış, ödeme tamamlama veya hesap kaydı etkiliyorsa daha önemli olabilir.
Ekipler, gizlilik ve veri azaltma gereksinimlerine saygı gösterirken telemetriye dikkatle seçilmiş iş niteleri veya olayları ekleyebilir. Bu, teknik olayları kullanıcıya yönelik etkiyle bağlamaya yardımcı olur.
Uygulama Gözlemlenmesi ve OpenTelemetry
OpenTelemetry vendor bağımsız API'ler, SDK'lar, enstrümantasyon, sömestr kuralları ve izleme bileşenleri sunar; böylece izleme için izler, metrikler ve loglar gibi verileri toplayabilir. Bu nedenle, bir uygulama gözlemlenebilirlik mimarisinin önemli bir parçasını oluşturabilir.
OpenTelemetry bir gözlemlenebilirlik arka planını değiştirmez. İzleme genellikle depolama, sorgulama, görselleştirme ve alarm sağlayan sistemlere aktarılmalıdır.
Güvenlik ve Gizlilik Hususları
Gözlemlenebilirlik verileri hassas bilgiler içerebilir. URL'ler, istek parametreleri, kullanıcı kimlikleri, veritabanı ifadeleri, istisna mesajları ve loglar yetersiz tasarlandığında gizli verileri ifşa edebilir.
- İzlemede parolaları, API anahtarlarını veya jetonları yerleştirmeyin.
- Toplamadan önce kişisel olarak tanınabilir bilgileri gözden geçirin.
- Gözlemlenebilirlik platformlarına erişim kontrolleri uygulayın.
- Uygun olduğunda, geçişte izlemeyi şifreleyin.
- Tutma ve silme politikalarını tanımlayın.
- Hassas alanlar için filtreleme veya redaksiyon kullanın.
Maliyet ve Performans Hususları
İzleme, hesaplama kaynaklarını, ağ bant genişliğini ve depolamayı tüketir. Yüksek kardinaliteli metrikler ve son derece ayrıntılı loglar pahalı ve sorgulanması zor hale gelebilir.
Örnekleme, filtreleme, toplama, tutma politikaları ve uygun log seviyeleri maliyetleri kontrol etmeye yardımcı olabilir. Ekipler, olabildiğince fazla hacim toplamak yerine izleme kalitesini ölçmelidir.
Uygulama Gözlemlenmesi Stratejisi Nasıl Oluşturulur
- Uygulamanın en önemli kullanıcı yollarını tanımlayın.
- Hizmet seviyeleri göstergelerini ve yararlı operasyonel metrikleri tanımlayın.
- Kritik uygulama ve bağımlılık yollarını enstrümante edin.
- Yapısal kayıt ve korelasyon tanımlayıcılarını standartlaştırın.
- Uygun olduğunda dağıtılmış izlemeyi uygulayın.
- Anlamlı operasyonel sorular etrafında panolar oluşturun.
- Açık sahiplikle eyleme geçirilebilir uyarılar oluşturun.
- İzleme kalitesini, güvenliğini, tutma süresini ve maliyetini düzenli olarak gözden geçirin.
Uzman İpuçları
- Her şeyi eşit şekilde enstrümante etmek yerine kritik kullanıcı yolları ile başlayın.
- Ortamlar arasında tutarlı hizmet adları ve meta verileri kullanın.
- İzleri, logları ve metrikleri paylaşılan bağlam aracılığıyla bağlayın.
- Uyarıları insan eylemi gerektiren koşullara odaklanmış tutun.
- Gereksiz hassas verileri toplamak zorunda kalmadan arızaları teşhis etmek için yeterli bağlamı kaydedin.
- Kontrollü hata senaryoları sırasında gözlemlenebilirliği test etmek, yalnızca normal çalışma sırasında değil.
Yaygın Uygulama Gözlemlenmesi Hataları
- Belirli bir amacı olmadan büyük miktarda telemetri toplamak.
- Verileri gösteren ancak operasyonel sorulara yanıt vermeyen panolar oluşturmak.
- Hizmetler arasında tutarsız tanımlayıcılar kullanmak.
- Telemetri güvenliği ve gizliliğini göz ardı etmek.
- Kullanıcı etkileyen koşullara öncelik vermek yerine her hata için uyarı vermek.
- Gözlemlenebilirlik boru hattını izlemekte başarısız olmak.
Sıkça Sorulan Sorular
Uygulama gözlemliliği basit terimlerle nedir?
Telemetri kullanarak bir uygulamanın iç davranışını anlamak ve belirli sonuçları neden ürettiğini araştırma pratiğidir.
Ana gözlemlilik sinyalleri nelerdir?
Metrikler, günlükler ve izler, uygulama gözlemlenebilirliği için yaygın olarak kullanılan temel sinyallerdir. Profiller ve iş olayları daha fazla bağlam ekleyebilir.
Gözlemlilik ile izleme arasındaki fark nedir?
İzleme genellikle bilinen koşulları takip etmeye odaklanırken, gözlemlenebilirlik sistem çıktısını kullanarak geniş bir davranış ve problem yelpazesini araştırmayı vurgular.
OpenTelemetry bir gözlemlilik platformu mu?
OpenTelemetry, açık kaynaklı bir gözlemlenebilirlik çerçevesi ve telemetri ekosistemidir. Depolama, analiz, panolar ve uyarı için genellikle ayrı altyapılarla çalışır.
Gözlemlilik uygulama performansını artırır mı?
Gözlemlenebilirlik, ekiplerin performans darboğazlarını ve gerilemeleri tanımlamalarına yardımcı olabilir. Performansı otomatik olarak artırmaz; mühendisler, elde edilen bilgiyi değişiklik yapmak için kullanır.
Uygulama gözlemliliği sadece mikro hizmetler için mi?
Hayır. Monolitik uygulamalar, sunucusuz iş yükleri, mobil ve web arka uçları ile dağıtık sistemler için faydalı olabilir.
Bir uygulamanın ne kadar telemetri toplaması gerekir?
Maliyet, performans, gizlilik ve saklama sürelerini kontrol ederken önemli operasyonel soruları yanıtlamak için yeterli. Uygulama ve risk profiline bağlı olarak uygun seviyeyi belirlemek gerekir.
Acemi kullanıcıların ilk olarak neyi izlemesi gerekiyor?
Kullanılabilirlik, istek oranı, gecikme, hatalar, kritik bağımlılıklar, önemli kullanıcı yolculukları ve hataları araştırmak için yeterli günlükler ve izlerle başlayın.
Sonuç
Uygulama gözlemliliği Mühendislik ekiplerine metrikler, günlükler, izler ve ilgili bağlam aracılığıyla yazılım davranışını anlamanın yapılandırılmış bir yolunu sunar. Birden fazla hizmet ve altyapı katmanını kapsayan uygulamalar için özellikle değerlidir.
Faydalı bir gözlemlenebilirlik stratejisi, toplanan veri miktarıyla tanımlanmaz. Mühendislerin uygulama sağlığı, kullanıcı etkisi, bağımlılıklar ve aksaklıklar hakkında önemli soruları hızlı bir şekilde yanıtlayıp, uygun güvenlik ve maliyet kontrolünü sağlıyor olmalarına bağlıdır.
Teknoloji serisini devam ettirin: sonraki eBPF Teknolojisi, which explores how the Linux kernel can provide powerful visibility and programmability for modern systems.