Aracılığıyla paylaş


Uygulamayı izleme önerileri

Bu Azure Well-Architected Framework Operasyonel Mükemmellik denetim listesi önerisi için geçerlidir:

OE:07 Tasarım seçimlerini doğrulamak ve gelecekteki tasarım ve iş kararlarını bilgilendirmek için bir izleme sistemi tasarlayıp uygulayın. Bu sistem, iş yükünün altyapısından ve kodundan yayılan işletimsel telemetriyi, ölçümleri ve günlükleri yakalar ve kullanıma sunar.

İlgili kılavuz: İzleme sistemi tasarlama ve oluşturma önerileri

Bu kılavuzda izleme kullanarak uygulamanızın gözlemlenebilirliğini etkinleştirmeye yönelik öneriler açıklanmaktadır. İzleme sisteminize alınabilecek ve tümleştirilebilen anlamlı telemetri verileri oluşturun. İzlemeyi kullanarak, izleme veya hata ayıklamayı el ile gerçekleştirmek için uzak üretim sunucusunda oturum açmadan bilgi toplayabilirsiniz. İzleme verileri, performansı değerlendirmek, sorunları tanılamak ve iş yükü kararları almak için kullanabileceğiniz ölçümleri ve günlükleri içerir.

Temel tasarım stratejileri

İş yükünüz için telemetriyi iyileştirmek için uygulamanızı izleyerek aşağıdaki verileri oluşturun:

  • Günlükler , ayrık olayların zaman damgalı kayıtlarıdır. Üç günlük biçimi vardır: düz metin, yapılandırılmış ve ikili.

  • Dağıtılmış izleme günlükleri , bir isteğin farklı hizmet ve bileşenler üzerinden ilerlerken yolunu görmenize olanak sağlar.

  • Ölçümler , sistemin belirli bir noktadaki bir yönünü açıklayan sayısal değerlerdir.

Not

Uygulamanızı otomatik olarak izlemek için Application Insights, Dynatrace ve Elastik Uygulama Performansı İzleme gibi araçları kullanabilirsiniz. Bu araçlar izlemenin daha kolay olmasını sağlar, ancak sınırlayıcı da olabilir. Otomatik izleme aracı kullanıyorsanız, gerektiğinde el ile izleme aracılığıyla daha fazla özellik ekleyebilirsiniz.

Günlükler ve dağıtılmış izleme günlükleri

Günlükleri izleme ve analiz platformları ile kolayca tümleştirmek için yapılandırılmış günlükleri kullanın. Ayrıntı düzeylerinin değiştirilebilmesi için uygulamanızı izleme. Sürekli ayrıntılı günlük depolama kaynaklarını boşa harcar, bu nedenle sorun giderme için gerektiğinde açılıp kapatılmalıdır.

Uygulama Windows için Olay İzleme (ETW) kullanıyorsa, izleme günlükleri bir izleme olayından oluşturulan metin verileri veya ikili veriler içerir. Sistem günlükleri, web sunucusu gibi altyapıdaki olaylardan izleme günlüğü içeriği oluşturur. Metin günlüğü içeriği insanlar tarafından okunabilir olacak şekilde tasarlanmıştır, ancak otomatikleştirilmiş bir sistemin de ayrıştırabileceği bir biçimde yazılmasını sağlamanız gerekir.

Günlükleri kategorilere ayırın ve sistemin her işletimsel yönünden izleme çıkışını kaydetmek için ayrı günlükler kullanın. Günlüklerinizi kategorilere ayırırsanız, tek bir uzun dosyayı işlemek yerine günlük iletilerini hızla filtreleyebilirsiniz. Denetim bilgileri ve hata ayıklama verileri gibi farklı güvenlik gereksinimlerine sahip bilgileri hiçbir zaman aynı günlüğe yazmayın.

Not

Günlük, dosya sisteminde bir dosya olarak uygulanabilir veya blob depolamadaki blob gibi başka bir biçimde tutulabilir. Günlük bilgileri, tablodaki satırlar gibi yapılandırılmış depolama alanında da tutulabilir.

Ölçümler

Ölçümler veya örnekler, bir veya daha fazla ilişkili etiket veya boyut ile belirli bir zamanda sistemdeki bazı yön veya kaynakların sayısıdır. Bir ölçümün tek bir örneği yalıtım açısından kullanışlı değildir, ölçümlerin zaman içinde yakalanması gerekir. Hangi ölçümleri ve ne sıklıkta kaydetmeniz gerektiğini göz önünde bulundurun. Çok sık oluşturulan veriler sisteme ağır yük oluşturabilir, ancak seyrek veri yakalama, önemli bir olaya yol açan koşulları kaçırmanıza neden olabilir. Verileri yakalamak için uygun sıklık ölçümden ölçüme farklılık gösterebilir. Örneğin, bir sunucudaki CPU kullanımı saniyeden saniyeye önemli ölçüde farklılık gösterebilir, ancak yüksek kullanım yalnızca birkaç dakika boyunca tutarlıysa sorun haline gelir.

Verileri ilişkilendirmek için gereken bilgiler

Tek tek ve sistem düzeyindeki performans sayaçlarını kolayca izleyebilir, kaynaklar için ölçümleri yakalayabilir ve çeşitli günlük dosyalarından uygulama izleme bilgilerini alabilirsiniz. Bazı izlemeler, izleme işlem hattındaki analiz ve tanılama aşamasında veri bağıntısı gerektirir. Bu veriler çeşitli biçimler alabilir ve analiz işlemine bu farklı formları eşlemek için yeterli izleme verileri sağlanmalıdır. Örneğin, uygulama çerçevesi düzeyinde bir iş parçacığı kimliği bir görevi tanımlayabilir. Bir uygulama içinde, aynı çalışma bu görevi tamamlayan kullanıcının kullanıcı kimliğiyle ilişkilendirilebilir.

zaman uyumsuz işlemler birden fazla kullanıcı için aynı iş parçacıklarını yeniden kullanabileceğinden, iş parçacıkları ve kullanıcı istekleri arasında 1:1 eşlemesi olması pek olası değildir. Sorunları daha da karmaşık hale getirmek için tek bir istek, sistem üzerinden akan birden fazla iş parçacığıyla ilişkilendirilebilir. Mümkünse, her isteği istek bağlamının bir parçası olarak sistem geneline yayılan benzersiz bir etkinlik kimliğiyle ilişkilendirin. İzleme bilgilerine etkinlik kimlikleri oluşturma ve ekleme tekniği, izleme verilerini yakalamak için kullanılan teknolojiye bağlıdır.

Tüm izleme verileri aynı şekilde zaman damgasına alınmalıdır. Tutarlılık sağlamak için, tüm tarihleri ve saatleri Eşgüdümlü Evrensel Saat kullanarak kaydedin.

Not

Farklı saat dilimlerinde ve ağlarda çalışan bilgisayarlar eşitlenmeyebilir. Birden çok makineye yayılan izleme verilerini ilişkilendirmek için yalnızca zaman damgalarına bağımlı değildir.

Ölçümlü izleme verilerine dahil edilecek bilgiler

Hangi izleme verilerini toplamanız gerektiğine karar verirken aşağıdaki noktaları göz önünde bulundurun.

İnsan tarafından okunabilir veriler

İzleme olayları tarafından yakalanan bilgilerin hem makine hem de insan tarafından okunabilir olduğundan emin olun. Sistemlerde günlük verilerinin otomatik olarak işlenmesine yardımcı olmak ve günlükleri okuyan operasyonlar ve mühendislik personeli için tutarlılık sağlamak amacıyla bu bilgiler için iyi tanımlanmış şemaları benimseyin.

Verilerinize aşağıdaki ortam bilgilerini ekleyin:

  • Dağıtım ortamı
  • İşleme makinesi
  • İşlemin ayrıntıları
  • Çağrı yığını

İzlenebilirlik ve bağıntıya yatırım yapın

Geliştiricinin veya yöneticinin her isteğin kaynağını belirleyebilmesi için isteğin belirli bir örneğiyle ilişkili etkinlik kimliği gibi yeterli bağlam sağlayın.

Veri bağlamı, bir etkinliği gerçekleştirilen hesaplama işi ve kullanılan kaynaklarla ilişkilendirmek için kullanılan bilgileri de içerebilir. Bu çalışma işlem ve makine sınırlarını aşabilir.

Ölçüm için bağlam doğrudan veya dolaylı olarak isteğe neden olan müşteriye bir başvuru içermelidir. Bu bağlam, izleme verilerinin yakalandığı sırada uygulamanın durumu hakkında değerli bilgiler sağlar.

Tüm ilgili verileri yakalama

Tüm istekleri ve bunların yapıldığı konumları veya bölgeleri kaydedin. Konuma özgü etkin noktaları tanımlamaya yardımcı olması için bu bilgileri kullanabilirsiniz. Bu bilgiler, bir uygulamanın mı yoksa kullandığı verilerin mi yeniden bölümleneceğini belirlemek için de yararlı olabilir.

Özel durumların ayrıntılarını dikkatle kaydedin ve yakalayın. Kritik hata ayıklama bilgileri genellikle kötü özel durum işleme nedeniyle kaybolur. Mümkünse, iç özel durumlar veya çağrı yığını gibi diğer bağlamsal bilgiler de dahil olmak üzere uygulamanın attığı tüm özel durum ayrıntılarını yakalayın.

Veri tutarlılığı için çaba gösterin

Tutarlı veriler olayları analiz edip kullanıcı istekleriyle ilişkilendirmenize yardımcı olabilir. Bilgi toplamak için kapsamlı ve yapılandırılabilir bir günlük paketi kullanmayı göz önünde bulundurun. Günlük paketleri, geliştiricilerin sistemin farklı bölümlerini uygularken yaklaşımınızı benimsemesine yönelik bağımlılıktan kaçınmanıza yardımcı olabilir.

Giriş/çıkış birimi, istek sayısı ve bellek, ağ ve CPU kullanımı gibi verileri anahtar performans sayaçlarından toplayın. Bazı altyapı hizmetleri kendi performans sayaçlarını sağlar, örneğin:

  • Veritabanına yapılan bağlantı sayısı.
  • İşlem hızı.
  • Başarılı veya başarısız olan işlemlerin sayısı.

Uygulamalar kendi performans sayaçlarını da tanımlayabilir.

Dış bağımlılıkları göz önünde bulundurun

Tüm dış hizmet çağrılarını günlüğe kaydetme. Dış aramalar şu şekilde yapılabilir:

  • Veritabanı sistemleri.
  • Web hizmetleri.
  • Altyapının parçası olan diğer sistem düzeyinde hizmetler.

Her çağrının süresi ve aramanın başarısı veya başarısızlığı hakkındaki bilgileri kaydedin. Mümkünse, oluşan geçici hatalar için tüm yeniden deneme girişimleri ve başarısızlıklar hakkındaki bilgileri yakalayın.

Telemetri sistemi uyumluluğunu sağlama

Çoğu durumda izleme bilgileri bir dizi olay olarak oluşturulur ve işleme ve analiz için ayrı bir telemetri sistemine geçirilir. Telemetri sistemi genellikle belirli bir uygulama veya teknolojiden bağımsızdır.

Telemetri sistemleri, bilgileri ayrıştırmak için tanımlı şemalar kullanır. Şema, telemetri sisteminin alabildiği veri alanlarını ve türlerini tanımlayan bir sözleşme belirtir. Çeşitli platformlardan ve cihazlardan gelen verilere izin vermek için şemayı genelleştirin. Ortak bir şema, aşağıdakiler gibi tüm izleme olaylarıyla ilgili alanları içermelidir:

  • Olay adı.
  • Olay zamanı.
  • Gönderenin IP adresi.
  • Olay bağıntısı için gereken ayrıntılar:
    • Kullanıcı Kimliği
    • Cihaz Kimliği
    • Uygulama Kimliği

Şemanın cihaz türüne bağlı olmaması için birçok cihazın aynı uygulama için olay oluşturabileceğini unutmayın. Uygulama dolaşım veya cihazlar arası dağıtımı desteklemelidir. Şema, uygulamalar arasında ortak olan belirli bir senaryo için aşağıdakiler gibi ilgili etki alanı alanlarını da içerebilir:

  • Özel durumlar hakkında bilgi.
  • Uygulama başlangıç ve bitiş olayları.
  • Web hizmeti API çağrılarının başarılı veya başarısız olması.

Uygulamalar arasında ortak raporlar ve analizler oluşturmak için aynı olay kümesini oluşturan etki alanı alanları oluşturun. Uygulamaya özgü olayların ayrıntılarını yakalamak için özel alanlar içerecek şekilde bir şema yapılandırmanız gerekebilir.

OpenTelemetry API'ler, SDK'lar ve diğer araçlardan oluşan satıcıdan bağımsız bir koleksiyondur. Uygulamaları işaretlemek ve diller arasında tutarlı bir şekilde anlamlı telemetri oluşturmak için OpenTelemetry kullanabilirsiniz. OpenTelemetry araçdan bağımsızdır, bu nedenle açık kaynak ve ticari teklifler de dahil olmak üzere birçok gözlemlenebilirlik platformuyla uyumludur. Microsoft, openTelemetry'yi izleme için standart araç olarak benimsemiştir.

Uygulamalarda ölçümlü izleme için en iyi yöntemler

Aşağıdaki listede, bulutta çalışan dağıtılmış bir uygulamayı izlemeye yönelik en iyi yöntemler özetlemektedir:

  • Günlüklerin kolay okunur ve kolay ayrıştırılır olmasını sağlayın. Mümkün olduğunca yapılandırılmış günlük kullanın.

  • Günlük iletilerinin kısa ve açıklayıcı olmasına dikkat edin.

  • Günlüğün kaynağını tanımlayın.

  • Her günlük kaydı yazılırken zaman damgası bilgilerini ekleyin.

  • Tüm zaman damgaları için aynı saat dilimini ve biçimi kullanın.

  • Günlükleri kategorilere ayırın ve iletileri uygun yerde yazın.

  • Sistemle ilgili hassas bilgileri veya kullanıcılarla ilgili kişisel bilgileri açığa çıkarma. Bu bilgileri günlüğe kaydedilmeden önce temizle, ancak ilgili ayrıntıları koru.

  • Tüm kritik özel durumları günlüğe kaydet, ancak yöneticinin daha az özel durum ve uyarı için gerektiğinde günlüğü açıp kapatmasını sağlayın.

  • Tüm yeniden deneme mantığı bilgilerini yakalayın ve günlüğe kaydedin. Bu veriler, sistemin geçici durumunu izlemede yararlıdır.

  • Dış web hizmetlerine veya veritabanlarına yönelik istekler gibi işlem çağrılarını izleyin.

  • Aynı günlük dosyasında günlük iletilerini diğer güvenlik gereksinimleriyle karıştırmayın.

  • Tüm günlük çağrılarının iş işlemlerinin ilerleme durumunu engellemeyen tetikle ve unut işlemleri olduğundan emin olun. Denetim olaylarını iş açısından kritik olduğundan bu kuraldan hariç tutun.

  • Günlüğün genişletilebilir olduğundan ve somut bir hedefe doğrudan bağımlılıkları olmadığından emin olun.

  • Tüm günlüklerin başarısızlığa karşı güvenli olduğundan ve basamaklı hataları tetiklemediğinden emin olun.

  • İzlemeyi devam eden bir yinelemeli işlem olarak değerlendirin ve günlükleri düzenli olarak gözden geçirin.

Dikkat edilmesi gerekenler

  • Profil oluşturmayı yalnızca gerektiğinde uygulayın çünkü sisteme önemli bir ek yük getirebilir. İzleme kullanarak profil oluşturma, her gerçekleştiğinde yöntem çağrısı gibi bir olayı kaydeder. Ancak örnekleme yalnızca seçili olayları kaydeder.

  • Profil oluşturma seçimleri, n saniyede bir veya sıklık tabanlı (örneğin, her n istekte bir kez) zaman tabanlı olabilir. Olaylar sık sık oluşuyorsa, profil oluşturma sistemde çok fazla yüke neden olabilir ve genel performansı etkileyebilir. Bu durumda örnekleme yaklaşımı tercih edilir. Öte yandan, olayların sıklığı düşükse örneklemeyle bu olaylar kaçırılabilir. Bu durumda profil oluşturma daha iyi bir yaklaşım olabilir.

Azure kolaylaştırma

Otomatik yetkisiz erişim , Application Insights ile izlenen birçok Azure ve şirket içi uygulama türü için kullanılabilir. Otomatik müdahale işlevi, uygulamanızı Application Insights'a zengin telemetri sağlayacak şekilde otomatik olarak yapılandırarak uygulama panosu ve uygulama haritası gibi deneyimlere kolay erişim sağlar. Desteklenen barındırma platformları ve geliştirme dilleri için bkz . Desteklenen ortamlar, diller ve kaynak sağlayıcıları.

Operasyonel Mükemmellik denetim listesi

Önerilerin tamamına bakın.