Aracılığıyla paylaş


Azure Cosmos DB'de içgörülerle izleme ve hata ayıklama

ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa

Azure Cosmos DB aktarım hızı, depolama, tutarlılık, kullanılabilirlik ve gecikme süresiyle ilgili içgörüler sağlar. Azure portalı bu ölçümlerin bir toplu görünümünü sağlar. Azure Cosmos DB ölçümlerini Azure İzleyici API'sinden de görüntüleyebilirsiniz. Kapsayıcı adı gibi ölçümlerin boyut değerleri büyük/küçük harfe duyarlı değildir. Bu nedenle, bu boyut değerleri üzerinde dize karşılaştırmaları yaparken büyük/küçük harfe duyarsız karşılaştırma kullanmanız gerekir. Azure izleyicisinden ölçümleri görüntülemeyi öğrenmek için bkz . Azure Cosmos DB'yi izleme.

Bu makalede yaygın kullanım örnekleri ve Azure Cosmos DB içgörülerinin bu sorunları analiz etmek ve hatalarını ayıklamak için nasıl kullanılabilebileceği açıklanmaktadır. Varsayılan olarak ölçüm içgörüleri beş dakikada bir toplanır ve yedi gün boyunca saklanır.

Azure portalından içgörüleri görüntüleme

  1. Azure portalında oturum açın ve Azure Cosmos DB hesabınıza gidin.

  2. Hesap ölçümlerinizi Ölçümler bölmesinden veya İçgörüler bölmesinden görüntüleyebilirsiniz.

    • Ölçümler: Bu bölme, düzenli aralıklarla toplanan sayısal ölçümler sağlar ve belirli bir zamanda sistemin bazı yönlerini açıklar. Örneğin, sunucu tarafı gecikme süresi ölçümünü, normalleştirilmiş istek birimi kullanım ölçümünü vb. görüntüleyebilir ve izleyebilirsiniz.

    • İçgörüler: Bu bölme, Azure Cosmos DB için özelleştirilmiş bir izleme deneyimi sağlar. İçgörüler, Azure İzleyici'de toplanan ölçümlerin ve günlüklerin aynısını kullanır ve hesabınız için toplu bir görünüm gösterir.

  3. İçgörüler bölmesini açın. Varsayılan olarak, İçgörüler bölmesi hesabınızdaki her kapsayıcı için aktarım hızı, istekler, depolama, kullanılabilirlik, gecikme süresi, sistem ve yönetim işlemleri ölçümlerini gösterir. İçgörüleri görüntülemek istediğiniz Zaman Aralığı, Veritabanı ve Kapsayıcı'yı seçebilirsiniz. Genel Bakış sekmesinde ru/sn kullanımı, veri kullanımı, dizin kullanımı, kısıtlanmış istekler ve seçilen veritabanı ve kapsayıcı için normalleştirilmiş RU/sn tüketimi gösterilir.

    Azure portalında Azure Cosmos DB performans ölçümlerinin ekran görüntüsü.

  4. İçgörüler bölmesinde aşağıdaki ölçümler kullanılabilir:

    • Aktarım hızı. Kapsayıcı için sağlanan aktarım hızı veya depolama kapasitesi aşıldığından, bu sekmede tüketilen veya başarısız olan istek birimi sayısı (429 yanıt kodu) gösterilir.

    • İstekler. Bu sekmede durum koduna göre, işlem türüne göre işlenen isteklerin toplam sayısı ve başarısız isteklerin sayısı (429 yanıt kodu) gösterilir. Kapsayıcı için sağlanan aktarım hızı veya depolama kapasitesi aşıldığında istekler başarısız olur.

    • Depolama. Bu sekmede, seçilen zaman aralığındaki verilerin ve dizin kullanımının boyutu gösterilir.

    • Kullanılabilirlik. Bu sekmede, saat başına toplam istek sayısı içindeki başarılı isteklerin yüzdesi gösterilir. Azure Cosmos DB SLA'ları başarı oranını tanımlar.

    • Gecikme süresi. Bu sekme, hesabınızın çalıştığı bölgede Azure Cosmos DB tarafından gözlemlenen okuma ve yazma gecikmesini gösterir. Coğrafi olarak çoğaltılmış bir hesap için bölgeler arasında gecikme süresini görselleştirebilirsiniz. Sunucu tarafı gecikme süresini farklı işlemlere göre de görüntüleyebilirsiniz. Bu ölçüm, uçtan uca istek gecikme süresini temsil etmez.

    • Sistem. Bu sekme, birincil bölümün kaç meta veri isteğine hizmet ettiğini gösterir. Ayrıca azaltılan isteklerin tanımlanmasına da yardımcı olur.

    • Yönetim İşlemleri. Bu sekmede hesap oluşturma, silme, anahtar güncelleştirmeleri, ağ ve çoğaltma ayarları gibi hesap yönetimi etkinliklerine yönelik ölçümler gösterilir.

Aşağıdaki bölümlerde Azure Cosmos DB ölçümlerini kullanabileceğiniz yaygın senaryolar açıklanmaktadır.

Kaç isteğin başarılı olduğunu veya hataya neden olduğunu anlama

Başlamak için Azure portalına gidin ve İçgörüler bölmesine gidin. Bu bölmeden İstekler sekmesini açın. İstekler sekmesi, toplam isteklerin durum koduna ve işlem türüne göre segmentlere ayrıldığı bir grafik gösterir. HTTP durum kodları hakkında daha fazla bilgi için bkz . Azure Cosmos DB için HTTP durum kodları.

En yaygın hata durum kodu 429'dur (hız sınırlama/azaltma). Bu hata, Azure Cosmos DB'ye yapılan isteklerin sağlanan aktarım hızının üzerinde olduğu anlamına gelir. Bu sorunun en yaygın çözümü, verilen koleksiyon için RU'ların ölçeğini genişletmektir. Daha fazla bilgi için bkz . Azure Cosmos DB'de sağlanan aktarım hızına giriş

Durum koduna göre toplam istekleri, azaltılan istekleri ve işlem türüne göre toplam istekleri gösteren ekran görüntüsü.

Bölüm anahtarı aralığına göre aktarım hızı tüketimini belirleme

Bölüm anahtarlarınızın iyi bir kardinalitesine sahip olmak, ölçeklenebilir tüm uygulamalar için önemlidir. Bölüm anahtarı aralığı kimliklerine göre ayrılmış bölümlenmiş kapsayıcıların aktarım hızı dağılımını belirlemek için İçgörüler bölmesine gidin. Aktarım Hızı sekmesini açın. Farklı bölüm anahtarı aralıklarında normalleştirilmiş RU/sn tüketimi grafikte gösterilir.

RU/sn tüketimini gösteren Aktarım Hızı sekmesinin ekran görüntüsü.

Bu grafiğin yardımıyla sık erişimli bölüm olup olmadığını belirleyebilirsiniz. Eşit olmayan aktarım hızı dağıtımı sık erişimli bölümlere neden olabilir ve bu da isteklerin kısıtlanmasıyla sonuçlanabilir ve yeniden bölümleme gerektirebilir. Dağıtımda dengesizliklere neden olan bölüm anahtarını belirledikten sonra kapsayıcınızı daha dağıtılmış bir bölüm anahtarıyla yeniden bölümlemeniz gerekebilir. Azure Cosmos DB'de bölümleme hakkında daha fazla bilgi için bkz . Azure Cosmos DB'de bölümleme ve yatay ölçeklendirme.

Veri ve dizin kullanımını belirleme

Bölümlenmiş kapsayıcıların depolama dağılımını veri kullanımına, dizin kullanımına ve belge kullanımına göre belirlemek önemlidir. Dizin kullanımını en aza indirip veri kullanımını en üst düzeye çıkarabilir ve sorgularınızı iyileştirebilirsiniz. Bu verileri almak için İçgörüler bölmesine gidin ve Depolama sekmesini açın.

Depolama sekmesini vurgulayan İçgörüler bölmesinin ekran görüntüsü.

Veri boyutunu dizin boyutuyla karşılaştırma

Azure Cosmos DB'de toplam tüketilen depolama alanı hem veri boyutunun hem de dizin boyutunun birleşimidir. Dizin boyutu genellikle veri boyutunun bir bölümüdür. Daha fazla bilgi edinmek için Dizin boyutu makalesine bakın. Azure portalındaki Ölçümler bölmesinde, Depolama sekmesi veri ve dizine göre depolama tüketiminin dökümünü gösterir.

// Measure the document size usage (which includes the index size)  
ResourceResponse<DocumentCollection> collectionInfo = await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri("db", "coll"));
 Console.WriteLine("Document size quota: {0}, usage: {1}", collectionInfo.DocumentQuota, collectionInfo.DocumentUsage);

Dizin alanından tasarruf etmek isterseniz dizin oluşturma ilkesini ayarlayabilirsiniz.

Yavaş sorgularda hata ayıklama

Azure Cosmos DB, NoSQL SDK'ları için API'de sorgu yürütme istatistikleri sağlar.

IDocumentQuery<dynamic> query = client.CreateDocumentQuery(
 UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName),
 "SELECT * FROM c WHERE c.city = 'Seattle'",
 new FeedOptions
 {
 PopulateQueryMetrics = true,
 MaxItemCount = -1,
 MaxDegreeOfParallelism = -1,
 EnableCrossPartitionQuery = true
 }).AsDocumentQuery();
FeedResponse<dynamic> result = await query.ExecuteNextAsync();

// Returns metrics by partition key range Id
IReadOnlyDictionary<string, QueryMetrics> metrics = result.QueryMetrics;

QueryMetrics , sorgunun her bileşeninin yürütülmesinin ne kadar sürdüğüne ilişkin ayrıntılar sağlar. Uzun süre çalışan sorguların en yaygın kök nedeni taramadır ve bu da sorgunun dizinleri uygulayamadığı anlamına gelir. Bu sorun daha iyi bir filtre koşuluyla çözülebilir.

Denetim düzlemi isteklerini izleme

Azure Cosmos DB, ardışık 5 dakikalık aralıklarla yapılabilecek meta veri isteği sayısına sınırlar uygular. Bu sınırları aşan denetim düzlemi istekleri azaltmayla karşılaşabilir. Meta veri istekleri bazı durumlarda, bir hesabın tüm meta verilerini içeren bir hesapta aktarım hızını master partition tüketebilir. Aktarım hızı miktarını aşan denetim düzlemi isteklerinde hız sınırlaması (429s) yaşanır.

Başlamak için Azure portalına gidin ve İçgörüler bölmesine gidin. Bu bölmeden Sistem sekmesini açın. Sistem sekmesinde iki grafik gösterilir. Bir hesap için tüm meta veri isteklerini gösteren. İkincisi, bir hesabın meta verilerini depolayan hesabın master partition aktarım hızı tüketiminin meta veri isteklerini gösterir.

Sistem sekmesinde meta veri istekleri grafiğini vurgulayan İçgörüler bölmesinin ekran görüntüsü.

Sistem sekmesinde meta veri istekleri 429 grafiğini vurgulayan İçgörüler bölmesinin ekran görüntüsü.

Yukarıdaki Durum Koduna Göre Meta Veri İsteği grafiği, siz Zaman Aralığını artırdıkça istekleri daha büyük ayrıntı düzeyinde toplar. 5 dakikalık zaman aralığı için kullanabileceğiniz en büyük Zaman Aralığı 4 saattir. Belirli bir ayrıntı düzeyine sahip daha büyük bir zaman aralığında meta veri isteklerini izlemek için Azure Ölçümleri'ni kullanın. Yeni bir grafik oluşturun ve Meta veri istekleri ölçümünü seçin. Sağ üst köşede, aşağıda gösterildiği gibi Zaman ayrıntı düzeyi için 5 dakika seçin. Ölçümler, kullanıcıların bu ölçümler üzerinde Uyarılar oluşturmasına da olanak sağlar ve bu da onları İçgörüler'den daha kullanışlı hale getirir.

Bir hesap için meta veri isteklerini ve 5 dakikalık zaman ayrıntı düzeyini vurgulayan Ölçümler bölmesinin ekran görüntüsü.

Sonraki adımlar

Aşağıdaki makaleleri okuyarak veritabanı performansını geliştirme hakkında daha fazla bilgi edinmek isteyebilirsiniz: