Geniş Ölçekte Eyleme Geçirilebilir Yanıtlar İçin OpenTelemetry Gözlemlenebilirliği ve Dynatrace
OpenTelemetry, farklı izleme çözümlerinden normalleştirilmiş veriler alabilmeniz için telemetri verilerini enstrümanlamak ve toplamak için standart bir yol sağlar. Veri toplamaya yönelik bu tek tip yaklaşım, Jaeger, Zipkin, Logstash, Fluentd ve StatsD gibi farklı bakış açılarıyla görmemize yardımcı olurken tam olarak ne olduğunu ve bu konuda ne yapacağınızı anlamlandırabilir.
Bir mikro hizmet hataya düşerse ve tüm izleme çözümleriniz bunu farklı şekilde bildirirse, ürünler olanları doğru bir şekilde izleyebilir ve bir yanıtı otomatikleştirebilir mi? OpenTelemetry gözlemlenebilirliği bu felsefi bilmecenin cevabını verir.
Jaeger, Zipkin, Logstash, Fluentd ve StatsD gibi farklı izleme noktası çözümlerinin her birinin böyle bir olayı gözlemleme ve kaydetme yolu vardır. Ormandaki ağaç gibi, hata alan mikro hizmet de kesinlikle ses çıkarırdı. Ancak çeşitli izleme araçlarından farklı bir şekilde ele alınarak, tam olarak neyin düşmesine neden olduğu konusunda bir anlaşma yok. Ya da düşmesi, onunla etkileşime giren diğer tüm hizmetler için ne anlama gelebilir. Bazı izleme araçları bunu hiç tespit etmemiş olabilir.
OpenTelemetry, farklı izleme çözümlerinden normalleştirilmiş veriler alabilmeniz için telemetri verilerini enstrümanlamak ve toplamak için standart bir yol sağlar. Veri toplamaya yönelik bu tek tip yaklaşım, bu farklı bakış açılarını anlamanıza yardımcı olur, böylece tam olarak ne olduğunu ve bu konuda ne yapacağınızı söyleyebilirsiniz.
Ancak, OpenTelemetry tek başına her derde deva değildir.
OpenTelemetry nedir?
OpenTelemetry, telemetri verilerini otomatik olarak enstrümanlayan, üreten ve toplayan aracılar, API’ler ve SDK’lar sağlayan açık kaynaklı bir framework’tür. W3C açık standart Trace Context’e dayanan OpenTelemetry, birden fazla kaynaktan telemetri verilerini standartlaştırır, böylece kuruluşlar yazılım davranışını ve performansını derinlemesine analiz etme kapasitesine sahip olur.
OpenTelemetry nasıl çalışır?
Gözlemlenebilirlik verileri, OpenTelemetry’nin teknik kaynağıdır: Ki bunlar “Günlükler, metrikler ve izler” dir.
Trace Context standardını kullanan OpenTelemetry, uç noktalar, ara katman yazılımı ve bunları birbirine bağlayan bulut hizmetleri arasında bir izlemenin her aralığının başlangıcını ve sonunu belirleyen alanlar ve veri türleri hakkında anlaşma sağlar.
OpenTelemetry, geliştiricilere kodlarını enstrümanlamaları ve günlükler, metrikler ve izler gibi telemetri verilerini toplamaları için API’ler, SDK’lar ve araçlar sağlayarak çalışır. Bir kere APM ürününe entegre edildikten sonra, araçlar telemetri verilerini OpenTelemetry Collector’a gönderebilir. Toplayıcı verileri işler ve analiz için Dynatrace gibi önceden belirlenmiş bir izleme, izleme veya günlük kaydı arka ucuna aktarır.
Genel olarak, OpenTelemetry framework’ü son derece özelleştirilebilir ve genişletilebilir. Ayrıca, diğerleri arasında Kubernetes, Apache Kafka, Jaeger ve Prometheus dahil olmak üzere popüler açık kaynak projeleriyle araçlar ve entegrasyonlar sağlar.
Tüm bu tutarlılık ne kadar tatlı olsa da, OpenTelemetry bazı zorluklarla birlikte gelir.
OpenTelemetry’i benimsemenin zorlukları
İlk zorluk, OpenTelemetry’nin yalnızca verileri toplaması ve işlemesidir — arka ucu, depolaması ve analitiği yoktur. Bu, OpenTelemetry’nin gözlemlenebilirlik büyüsünü çalıştırmadan önce, önce gözlemlenebilirlik hedeflerinizi belirlemeniz gerektiği anlamına gelir. Neyi takip etmek istediğinizi öğrendikten sonra, ısmarlama bir araç seti veya Dynatrace gibi ticari bir çözüm kullanarak kurarsınız. Bu, ihracatçılarını, acentelerini ve toplayıcılarını, seçtiğiniz arka uç tarafından işlemeye hazırlık olarak çeşitli hizmetlerinizden ve altyapınızdan gelen verileri enstrümanlamak üzere yapılandırmayı içerir.
Bazı hizmetler için bu oldukça basittir. Ancak özel uygulamalar gibi diğerleri için bu karmaşık olabilir. Özellikle neyi ölçeceğinize ve aralıkları nasıl tanımlayacağınıza karar verdiğinizde bu gerçekleşir.
Ayrıca, varlıklar arasındaki ilişkiler gibi yakalamak istediğiniz herhangi bir bağlamı, etiketleri kullanarak manuel olarak tanımlamanız gerekir. Aynı şekilde, gereksiz uyarı fırtınalarından ve yanlış pozitiflerden kaçınmak için uyarı eşiklerini elle ayarlamanız gerekir.
Son olarak, zenginleştirilmiş gözlemlenebilirlik verileri, verilerin genel hacmini artırır ve bu da uygulama performansını etkileyebilir. Çoğu durumda, OpenTelemetry için kullanılan arka uç müşterileri ya izlerinin % 1–5'inden fazlasını depolayamaz ya da bunu yapmak uygun maliyetli değildir. Ve enstrümantasyon yapılandırmalarını sürdürmek, yazılımınız ve araç setleriniz geliştikçe hantal olabilir.
Artan karmaşıklık, bağlam eksikliği ve artan hacim, OpenTelemetry gözlemlenebilirlik verilerini analiz etmek için birleşik bir platform yaklaşımı gerektirir.
Dynatrace platformu bu sorunları Smartscape topoloji haritalama, Davis AI ve Grail veri göl evi ile çözer. Dynatrace OneAgent’ı kullanmak, otomatik veri toplamayı ekler ve kullanıcı davranışı analizi ve uygulama güvenliği kullanım durumlarının yanı sıra kod düzeyinde analitik ve profil oluşturma olanağı sağlar. Bununla birlikte, Dynatrace OpenTelemetry gözlemlenebilirliğini genişletir ve OpenTelemetry Dynatrace gözlemlenebilirliğini genişletir.