İzleme

Performans optimizasyonu, genellikle gecikme ve işleme hızıyla ilgili temel metriklerin belirlenmesiyle başlar. Bu metrikleri yakalamak ve izlemek için izleme özelliğinin eklenmesi, uygulamadaki zayıf noktaları ortaya çıkarır. Metrikler sayesinde performans metriklerini iyileştirmek için optimizasyon yapılabilir.

Ayrıca birçok izleme aracı, metrikleriniz için uyarılar ayarlamanıza olanak tanır. Böylece belirli bir eşiğe ulaşıldığında bildirim alırsınız. Örneğin, başarısız isteklerin yüzdesi normal seviyelerin X% oranında üzerine çıktığında sizi bilgilendirecek bir uyarı ayarlayabilirsiniz. İzleme araçları, normal performansın nasıl göründüğünü belirlemenize ve gecikme, hata miktarları ve diğer önemli metriklerdeki olağan dışı artışları tespit etmenize yardımcı olabilir. Bu metrikleri izleyebilmek, özellikle işletme açısından kritik zaman aralıklarında veya yeni kodun üretime gönderilmesinden sonra önemlidir.

Gecikme metriklerini belirleme

Kullanıcı arayüzünüzü mümkün olduğunca duyarlı tutun. Kullanıcıların mobil uygulamalardan daha yüksek standartlar beklediğini unutmayın. Arka uç hizmetleri için de gecikme ölçülmeli ve izlenmelidir. Özellikle de kontrol edilmezse işleme kapasitesi sorunlarına yol açabileceği için bu önemlidir.

İzlemeniz önerilen metrikler arasında şunlar yer alır:

  • İstek süresi
  • Alt sistem ayrıntı düzeyinde istek süresi (ör. API çağrıları)
  • İş süresi

İş çıkarma hızı metriklerini belirleme

İşleme hızı, belirli bir süre içinde sunulan toplam istek sayısının bir ölçüsüdür. Verim, alt sistemlerin gecikmesinden etkilenebilir. Bu nedenle, verimi artırmak için gecikme süresini optimize etmeniz gerekebilir.

Takip etmeniz önerilen bazı metrikler şunlardır:

  • Saniyedeki sorgu sayısı
  • Saniyede aktarılan veri boyutu
  • Saniye başına G/Ç işlemi sayısı
  • CPU veya bellek kullanımı gibi kaynak kullanımı
  • İşleme biriktirme listesinin boyutu (ör. pub/sub veya iş parçacığı sayısı)

Yalnızca ortalama değil

Performans ölçümünde sık yapılan bir hata, yalnızca ortalama duruma bakmaktır. Bu yararlı bir bilgi olsa da gecikme süresinin dağılımı hakkında bilgi vermez. İzlenecek daha iyi bir metrik, performans yüzdelik dilimleridir. Örneğin, bir metriğin 50., 75., 90. ve 99. yüzdelik dilimleri.

Genellikle optimizasyon iki adımda yapılabilir. İlk olarak, 90. yüzdelik dilimdeki gecikme için optimizasyon yapın. Ardından, 99. yüzdelik dilimi (kuyruk gecikmesi olarak da bilinir) göz önünde bulundurun. Bu, tamamlanması çok daha uzun süren isteklerin küçük bir kısmıdır.

Ayrıntılı sonuçlar için sunucu tarafı izleme

Metrikleri izlemek için genellikle sunucu tarafı profilleme tercih edilir. Sunucu tarafını ölçmek genellikle çok daha kolaydır, daha ayrıntılı verilere erişim sağlar ve bağlantı sorunlarından kaynaklanan kesintilerden daha az etkilenir.

Uçtan uca görünürlük için tarayıcı izleme

Google Ads API entegrasyonunuz son kullanıcılara bir web ön ucu sunuyorsa tarayıcı profili oluşturma, kullanıcı deneyimi hakkında ek bilgiler sağlayabilir. Hangi sayfalarda yavaş istekler olduğunu gösterebilir. Daha sonra daha ayrıntılı analiz için bunu sunucu tarafı izlemeyle ilişkilendirebilirsiniz.

Google Analytics, Analytics Sayfa Zamanlamaları raporunda sayfa yüklenme süreleri için kullanıma hazır izleme özelliği de sunar. Bu, sitenizdeki kullanıcı deneyimini anlamak için birkaç yararlı görünüm sağlar. Özellikle:

  • Sayfa yükleme süreleri
  • Yönlendirme yükleme süreleri
  • Sunucu yanıt süreleri

Bulutta izleme

Uygulamanızın performans metriklerini yakalamak ve izlemek için kullanabileceğiniz birçok araç vardır. Örneğin, performans metriklerini Google Cloud projenize kaydetmek için Google Cloud Logging'i kullanabilir, ardından kaydedilen metrikleri izlemek ve segmentlere ayırmak için Google Cloud Monitoring'de gösterge tabloları oluşturabilirsiniz.

Python istemci kitaplığı için yazılmış bir özel gRPC günlük kaydı yakalayıcı örneği için Günlük kaydı kılavuzuna bakın. Bu örnekte, kesici, yapılandırılmış günlük verilerinin Python sözlüğünü Cloud Logging'e göndermek için logger.log_struct() işlevini çağırır. Cloud Logging, bu verileri günlük girişinin jsonPayload alanında saklar:

logger.log_struct({
    "method": method_name,
    "elapsed_ms": elapsed_milliseconds,
    "is_fault": is_fault,
})

Bu veriler Google Cloud'da kullanılabilir olduğunda, Google Cloud Monitoring aracılığıyla uygulamanızın görünürlüğünü artırmak için günlüğe kaydedilen veriler üzerinde metrikler oluşturabilirsiniz. Google Cloud Logging'e gönderilen günlükleri kullanarak metrik oluşturmak için kullanıcı tanımlı günlüğe dayalı metrikler kılavuzunu inceleyin.

Alternatif olarak, kodunuzdaki metrikleri tanımlamak ve bunları doğrudan Monitoring'e göndermek için Cloud Monitoring istemci kitaplıklarını kullanabilirsiniz. Bu durumda metrikler, günlüklerden ayrı olarak gönderilir.

Günlüğe dayalı metrik örneği

Uygulamanızdaki hata oranlarını daha iyi anlamak için is_fault değerini izlemek istediğinizi varsayalım. logger.log_struct(), her Cloud Logging günlük girişinde jsonPayload altına yapılandırılmış sözlük alanları yazdığı için jsonPayload.is_fault = true gibi başarısız isteklerle eşleşen bir filtreyle ErrorCount adlı bir sayaç metriği oluşturabilirsiniz.

Cloud Logging'de etiketler, metriklerinizi günlüklerdeki diğer verilere göre kategorilere ayırmanıza olanak tanır. Hata sayısını Google Ads API yöntemine göre dökümünü almak için Cloud Logging'e gönderilen jsonPayload.method alanında Method adlı bir STRING etiketi yapılandırabilirsiniz.

ErrorCount metriği ve Method etiketi yapılandırıldığında, Method ölçütüne göre gruplandırılmış ErrorCount metriğini izlemek için Cloud Monitoring'de yeni bir grafik oluşturabilirsiniz.

Uyarılar

Cloud Monitoring'de ve diğer araçlarda, metrikleriniz tarafından ne zaman ve nasıl tetikleneceklerini belirten uyarı politikaları yapılandırmak mümkündür. Cloud Monitoring uyarılarını ayarlamayla ilgili talimatlar için günlük tabanlı metriklerle ilgili uyarı kılavuzunu inceleyin.