Share via


Azure Service Fabric için izleme ve tanılama

Bu makalede Azure Service Fabric'e yönelik izleme ve tanılama işlemlerine genel bir bakış sağlanmaktadır. İzleme ve tanılama, iş yüklerini herhangi bir bulut ortamında geliştirme, test etme ve dağıtma açısından kritik öneme sahiptir. Örneğin, uygulamalarınızın nasıl kullanıldığını, Service Fabric platformu tarafından gerçekleştirilir eylemleri, performans sayaçlarıyla kaynak kullanımınızı ve kümenizin genel durumunu izleyebilirsiniz. Sorunları tanılamak ve düzeltmek ve gelecekte ortaya çıkmasını önlemek için bu bilgileri kullanabilirsiniz. Sonraki birkaç bölümde Service Fabric izlemenin üretim iş yükleri için dikkate alınacak her alanı kısaca açıklanacaktır.

Dekont

Bu makale kısa süre önce Log Analytics yerine Azure İzleyici günlükleri terimini kullanacak şekilde güncelleştirildi. Günlük verileri hala bir Log Analytics çalışma alanında depolanır ve yine de aynı Log Analytics hizmeti tarafından toplanır ve analiz edilir. Azure İzleyici'deki günlüklerin rolünü daha iyi yansıtacak şekilde terminolojiyi güncelleştiriyoruz. Ayrıntılar için bkz . Azure İzleyici terminolojisi değişiklikleri .

Uygulama izleme

Uygulama izleme, uygulamanızın özelliklerinin ve bileşenlerinin nasıl kullanıldığını izler. Kullanıcıları etkileyen sorunların yakalandığından emin olmak için uygulamalarınızı izlemek istiyorsunuz. Uygulama izlemenin sorumluluğu, uygulamanızın iş mantığına özgü olduğundan uygulama geliştiren kullanıcılar ve hizmetleridir. Uygulamalarınızı izlemek aşağıdaki senaryolarda yararlı olabilir:

  • Uygulamam ne kadar trafik yaşıyor? - Kullanıcı taleplerini karşılamak veya uygulamanızdaki olası bir performans sorununu gidermek için hizmetlerinizi ölçeklendirmeniz gerekiyor mu?
  • Hizmet çağrılarına hizmetim başarılı mı ve izleniyor mu?
  • Uygulamamın kullanıcıları hangi eylemleri gerçekleştiriyor? - Telemetri verilerini toplamak gelecekteki özellik geliştirme ve uygulama hataları için daha iyi tanılama işlemlerine yol gösterebilir
  • Uygulamam işlenmeyen özel durumlar mı atıyor?
  • Kapsayıcılarımın içinde çalışan hizmetler içinde neler oluyor?

Uygulama izlemenin en iyi özelliği, geliştiricilerin uygulama bağlamında yer alan araçları ve çerçeveleri kullanabilmeleridir. Uygulama Analizler ile olay analizi bölümünde Azure İzleyici Uygulama Analizler ile uygulama izleme için Azure çözümü hakkında daha fazla bilgi edinebilirsiniz. Bunun .NET Uygulamaları için nasıl ayarlanacağına ilişkin bir öğreticimiz de vardır. Bu öğreticide, uygulamanıza özel telemetri yazmak ve Azure portalında uygulama tanılama ve telemetrisini görüntülemek için doğru araçların nasıl yükleneceği açıklanır.

Platform (Küme) izleme

Kullanıcı, kodun kendisini yazdığından kendi uygulamasından gelen telemetri verilerinin denetimindedir, ancak Service Fabric platformundaki tanılamalar ne olacak? Service Fabric'in hedeflerinden biri, uygulamaları donanım hatalarına karşı dayanıklı tutmaktır. Bu hedefe, platformun sistem hizmetlerinin altyapı sorunlarını algılama ve iş yüklerini kümedeki diğer düğümlere hızla yük devretme özelliği aracılığıyla ulaşılır. Ancak bu özel durumda, sistem hizmetlerinin kendilerinde sorunlar varsa ne olur? Ya da bir iş yükünü dağıtmaya veya taşımaya çalışırken, hizmetlerin yerleştirilmesine yönelik kurallar ihlal edilir mi? Service Fabric, kümenizde gerçekleşen etkinlik hakkında bilgi sahibi olduğunuzdan emin olmak için bunlar ve daha fazlası için tanılama sağlar. Küme izleme için bazı örnek senaryolar şunlardır:

Service Fabric, kullanıma hazır kapsamlı bir olay kümesi sağlar. Bu Service Fabric olaylarına EventStore veya işlem kanalı (platform tarafından sunulan olay kanalı) üzerinden erişilebilir.

  • Service Fabric olay kanalları - Windows'da Service Fabric olayları, İşletimsel ve Veri ve Mesajlaşma kanalları arasında seçim yapmak için kullanılan ilgili logLevelKeywordFilters bir kümeye sahip tek bir ETW sağlayıcısından kullanılabilir. Bu, gerektiğinde filtrelenecek giden Service Fabric olaylarını ayırma yöntemimizdir. Linux'ta Service Fabric olayları LTTng aracılığıyla gelir ve gerektiğinde filtrelenebilen tek bir Depolama tablosuna konur. Bu kanallar, kümenizin durumunu daha iyi anlamak için kullanılabilecek, seçilmiş, yapılandırılmış olaylar içerir. Tanılamalar, küme oluşturma zamanında varsayılan olarak etkinleştirilir ve bu da gelecekte sorgulamanız için bu kanallardan gelen olayların gönderildiği bir Azure Depolama tablosu oluşturur.

  • EventStore - EventStore, platform tarafından sunulan ve Service Fabric Gezgini'nde ve REST API aracılığıyla kullanılabilen Service Fabric platform olayları sağlayan bir özelliktir. Olay zamanına göre düğüm, hizmet, uygulama ve sorgu gibi her varlık için kümenizde neler olup bittiğinin anlık görüntü görünümünü görebilirsiniz. EventStore hakkında daha fazla bilgiyi EventStore'a Genel Bakış sayfasından da okuyabilirsiniz.

Screenshot shows the EVENTS tab of the Nodes pane several events, including a NodeDown event.

Sağlanan tanılamalar, kullanıma hazır kapsamlı bir olay kümesi biçimindedir. Bu Service Fabric olayları Düğümler, Uygulamalar, Hizmetler, Bölümler vb. gibi farklı varlıklarda platform tarafından yapılan eylemleri gösterir. Yukarıdaki son senaryoda bir düğümün kapanması durumunda platform bir NodeDown olay yayar ve tercih ettiğiniz izleme aracı tarafından size hemen bildirilebilir. Diğer yaygın örnekler arasında ApplicationUpgradeRollbackStarted yük devretme sırasında veya PartitionReconfigured bulunur. Aynı olaylar hem Windows hem de Linux kümelerinde kullanılabilir.

Olaylar hem Windows hem de Linux'ta standart kanallardan gönderilir ve bunları destekleyen herhangi bir izleme aracı tarafından okunabilir. Azure İzleyici çözümü Azure İzleyici günlükleridir. Kümeniz için özel bir işletim panosu ve uyarı oluşturabileceğiniz bazı örnek sorgular içeren Azure İzleyici günlükleri tümleştirmemiz hakkında daha fazla bilgi edinebilirsiniz. Platform düzeyinde olay ve günlük oluşturma konusunda daha fazla küme izleme kavramı mevcuttur.

Sistem durumunu izleme

Service Fabric platformu, bir kümedeki varlıkların durumu için genişletilebilir sistem durumu raporlaması sağlayan bir sistem durumu modeli içerir. Her düğüm, uygulama, hizmet, bölüm, çoğaltma veya örnek sürekli güncelleştirilebilir bir sistem durumuna sahiptir. Sistem durumu "Tamam", "Uyarı" veya "Hata" olabilir. Service Fabric olaylarını küme tarafından çeşitli varlıklara yapılan fiiller ve sistem durumunu her varlık için bir sıfat olarak düşünün. Belirli bir varlığın sistem durumu her geçişinde bir olay da gönderilir. Bu şekilde, diğer tüm olaylar gibi tercih ettiğiniz izleme aracında sistem durumu olayları için sorgular ve uyarılar ayarlayabilirsiniz.

Ayrıca, kullanıcıların varlıklar için sistem durumunu geçersiz kılmalarına bile izin veririz. Uygulamanız bir yükseltmeden geçiyorsa ve doğrulama testleriniz başarısız oluyorsa, uygulamanızın artık iyi durumda olmadığını belirtmek için Sistem Durumu API'sini kullanarak Service Fabric Health'e yazabilirsiniz ve Service Fabric yükseltmeyi otomatik olarak geri alır! Sistem durumu modeli hakkında daha fazla bilgi için Service Fabric sistem durumu izlemesine giriş bölümüne göz atın

SFX health dashboard

Watchdogs

Watchdog genellikle sistem durumunu izleyen ve hizmetler arasında yükleyen, uç noktalara ping atan ve kümedeki beklenmeyen sistem durumu olaylarını bildiren ayrı bir hizmettir. Bu, yalnızca tek bir hizmetin performansına bağlı olarak algılanmayabilecek hataları önlemeye yardımcı olabilir. Watchdogs, belirli zaman aralıklarında depolamadaki günlük dosyalarını temizleme gibi kullanıcı etkileşimi gerektirmeyen düzeltici eylemler gerçekleştiren kodu barındırmak için de iyi bir yerdir. Kullanımı kolay bir watchdog genişletilebilirlik modeli içeren ve hem Windows hem de Linux kümelerinde çalışan tam olarak uygulanan bir SF watchdog hizmeti açık kaynak istiyorsanız FabricObserver projesine bakın. FabricObserver üretime hazır bir yazılımdır. Test ve üretim kümelerinize FabricObserver dağıtmanızı ve eklenti modeli aracılığıyla veya çatal oluşturarak ve kendi yerleşik gözlemcilerinizi yazarak gereksinimlerinizi karşılayacak şekilde genişletmenizi öneririz. Önerilen yaklaşım, önceki (eklentiler) yaklaşımıdır.

Altyapı (performans) izleme

Uygulamanızdaki ve platformdaki tanılamaları ele aldığımıza göre donanımın beklendiği gibi çalıştığını nasıl anlarız? Temel altyapınızı izlemek, kümenizin durumunu ve kaynak kullanımınızı anlamanın önemli bir parçasıdır. Sistem performansını ölçmek, iş yüklerinize bağlı olarak öznel olabilecek birçok faktöre bağlıdır. Bu faktörler genellikle performans sayaçları aracılığıyla ölçülür. Bu performans sayaçları işletim sistemi, .NET çerçevesi veya Service Fabric platformunun kendisi gibi çeşitli kaynaklardan gelebilir. Yararlı olabilecek bazı senaryolar şunlardır:

  • Donanımımı verimli bir şekilde mi kullanıyorum? Donanımınızı %90 CPU'da mı yoksa %10 CPU'da mı kullanmak istiyorsunuz? Bu, kümenizi ölçeklendirirken veya uygulamanızın işlemlerini iyileştirirken kullanışlıdır.
  • Altyapı sorunlarını önceden tahmin edebilir miyim? - birçok sorundan önce performanstaki ani değişiklikler (düşüşler) gelir, bu nedenle sorunları önceden tahmin etmek ve tanılamak için ağ G/Ç ve CPU kullanımı gibi performans sayaçlarını kullanabilirsiniz.

Altyapı düzeyinde toplanması gereken performans sayaçlarının listesi Performans ölçümleri bölümünde bulunabilir.

Service Fabric, Reliable Services and Actors programlama modelleri için bir dizi performans sayacı da sağlar. Bu modellerden birini kullanıyorsanız, bu performans sayaçları aktörlerinizin doğru şekilde yukarı ve aşağı doğru döndüğünü veya güvenilir hizmet isteklerinizin yeterince hızlı işlendiğini güvence altına almak için bilgi verebilir. Daha fazla bilgi için bkz . Reliable Service Remoting için İzleme ve Reliable Actors için Performans izleme.

Bunları toplamak için Azure İzleyici çözümü, platform düzeyinde izleme gibi Azure İzleyici günlükleridir. Uygun performans sayaçlarını toplamak ve bunları Azure İzleyici günlüklerinde görüntülemek için Log Analytics aracısını kullanmanız gerekir.

İzleme ve örnek senaryoların her alanını ele aldığımıza göre, yukarıdaki tüm alanları izlemek için gereken Azure izleme araçlarının ve kurulumunun özeti aşağıda verilmiştir.

Ayrıca tüm gerekli kaynakların ve aracıların dağıtımını otomatikleştirmek için burada bulunan örnek ARM şablonunu kullanabilir ve değiştirebilirsiniz.

Diğer günlük çözümleri

Önerdiğimiz iki çözüm olan Azure İzleyici günlükleri ve Uygulama Analizler Service Fabric ile yerleşik tümleştirmeye sahip olsa da birçok olay ETW sağlayıcıları aracılığıyla yazılır ve diğer günlük çözümleriyle genişletilebilir. Ayrıca Elastik Yığına (özellikle bir kümeyi çevrimdışı bir ortamda çalıştırmayı düşünüyorsanız), Dynatrace'e veya tercih ettiğiniz başka bir platforma da bakmanız gerekir. Burada tümleşik iş ortaklarının bir listesi mevcuttur.

Seçtiğiniz herhangi bir platformun önemli noktaları arasında kullanıcı arabirimi, sorgulama özellikleri, kullanılabilir özel görselleştirmeler ve panolar ve izleme deneyiminizi geliştirmek için sağladıkları ek araçlar yer almalıdır.

Sonraki adımlar