İ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 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 olduğunu 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.

Takip edilmesi önerilen metrikler şunlardı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

İş çıkarma hızı, belirli bir süre boyunca sunulan toplam istek sayısının ölçüsüdür. İşleme hızı, alt sistemlerin gecikmesinden etkilenebilir. Bu nedenle, işleme hızını artırmak için gecikmeyi 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ı)

Sadece 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. Takip etmek için daha iyi bir metrik, performans yüzdelik dilimleridir. Örneğin, bir metrik için 50., 75., 90. ve 99. yüzdelik dilimler.

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ı profil oluşturma tercih edilir. Sunucu tarafının ölçümlemesi 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ı deneyimiyle ilgili ek analizler sağlayabilir. Hangi sayfaların yavaş isteklere sahip 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üklenme 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ış özel gRPC günlük kaydı engelleyici örneği için Günlük kaydı kılavuzuna bakın. Bu örnekte, engelleyici, yapılandırılmış günlük verilerinin Python sözlüğünü Cloud Logging'e göndermek için logger.log_struct() yöntemini çağırır. Cloud Logging, bu verileri günlük girişinin jsonPayload alanında depolar:

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 hakkında görünürlük elde etmek 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, kodunuzda metrikleri tanımlamak ve bunları günlüklerden ayrı olarak doğrudan Monitoring'e göndermek için Cloud Monitoring istemci kitaplıklarını kullanabilirsiniz.

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ında yapılandırılmış sözlük alanları yazdığından, 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 kategoriler halinde gruplandı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 Cloud Monitoring'de Method gruplandırma ölçütüyle ErrorCount metriğini izlemek için yeni bir grafik oluşturabilirsiniz.

Uyarılar

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