Akıllı Ev için Günlük Tabanlı Metrikler

1. Başlamadan önce

Akıllı Ev'de hata ayıklama codelab'inde açıkladığımız gibi, Akıllı Ev projeleriniz için metrik ve günlükler yayınlıyoruz. Metrikler, Akıllı Ev İşleminizin nerede sorun yaşadığını belirlemenize yardımcı olur. Günlükler, bu sorunları çözmek için ayrıntılı bir inceleme yaparken faydalıdır.

848f483bfcd2997a.png

Projenize sunduğumuz metriklerin yanı sıra Google Cloud Platform'daki Günlük Tabanlı Metrikleri kullanarak kendi metriklerinizi de oluşturabilirsiniz. Bu sayede günlüklerinizdeki belirli kalıpları izleyebilir ve kalite sorunlarında etkili bir şekilde hata ayıklayabilirsiniz.

Ön koşullar

Neler öğreneceksiniz?

  • Akıllı Ev hata günlüklerini filtrelemek için etkili sorgular yazma
  • Sorgularınızdan metrikler oluşturmak için günlük tabanlı metrikler oluşturma
  • İzleme için günlük tabanlı metriklerden grafikler ve kontrol panelleri oluşturma

2. Günlüklerle Çalışma

Akıllı Ev Codelab'de Hata Ayıklama bölümünde kısaca ele aldığımız gibi, günlüklerle çalışmak projenizin başarısı için kilit önem taşır. Google Cloud Platform'da günlüklerinizi izlemek ve analiz etmek için yararlanabileceğiniz harika araçlar bulunmaktadır. Projenizin kullanabileceği tüm günlüklere erişmek için Günlük Gezgini'ni kullanabilirsiniz.

Günlüklere Erişim

Günlüklerinize erişmek için ilk adım Google Cloud Platform'a giriş yapmak ve projenizi seçmektir. Yan menüde İşlemler > Günlük Kaydı > Günlük Gezgini'ne gidip Günlük Gezgini'ne gidin. Aracı açtığınızda aşağıdaki görünümü görürsünüz:

78982d8b6d19b827.png

Günlük Gezgini iki ana bölümden oluşur: sorgularınızı en üste yazabileceğiniz bir bölüm (Sorgu oluşturucu) ve eşleşen sonuçları gösterecek bir alan (Sorgu sonuçları).

Google genelindeki birçok farklı bileşen varsayılan olarak projenize günlük yazar. Akıllı Ev entegrasyonunuzdan gelen günlükleri bulmak ve bunlarla çalışmak için özel sorgular yazmanız gerekir.

Sorgu Yazma

Günlükler, bir kaynak türü altındaki projelere yayınlanır. Her kaynak türü, Google içindeki farklı bir platformu temsil eder. Akıllı Ev platformundan gelen günlükler, projenizde assistant_action_project kaynak türü kapsamında kullanılabilir.

Ayrıca, oluşturma sırasında tüm günlüklere bir önem düzeyi atanır. Smart Home günlüklerinde, hataları ve istisnaları temsil eden günlükler için ERROR düzeyini, geri kalan her şey için ise DEBUG düzeyini kullanırız.

Aşağıdaki örnekte, yalnızca platformumuzdan gelen ve hataları temsil eden günlükleri filtrelemek için aşağıdaki gibi bir sorgu yazacağız:

753bfe72a9f8e959.png

Sorgu yazmayı tamamladığınızda sorguyu başlatmak için Sorguyu çalıştır düğmesini tıklayın. Bu komut, Akıllı Ev entegrasyonunuzdan gelen hataları gösterecektir:

3ef42da5a6c322e1.png

Gördüğünüz gibi, son bir saat içinde çeşitli zamanlarda bir dizi hata oluştu. Her satır tek bir hata günlüğünü temsil eder. Daha fazla günlükleri tıklayarak ve iç içe yerleştirilmiş alanları genişleterek bunların içindeki bilgileri görebilirsiniz.

Histogramı Kullanma

Günlük Gezgini, sorgunuzla eşleşen günlüklerin zaman dağılımını görmek için yararlı bir Histogram özelliği sunar. Histogramı etkinleştirmek için sağ üst köşedeki düğmelerden SAYFA DÜZENİ'ni tıklayıp Histogram'ı işaretleyerek özelliği etkinleştirin.

10eaf1d204decf3c.png

Etkinleştirildikten sonra sorgunuzla eşleşen günlüklerin dağıtımını görürsünüz:

dd3410e65a83cf5d.png

Yukarıdaki resimde görebileceğiniz gibi son bir saatte seyrek şekilde kümelenmiş birkaç hatamız var. 13:45, 14:00 ve 14:15 civarında üç küme oluşturuyorlar. Histogram, yalnızca zaman damgası değerlerini kontrol ederek görülmesi zor olan kalıpları tespit etmenize yardımcı olabilir.

Şu anda kullandığımız sorgu, günlükler arasında ayrım yapmıyor ve Akıllı Ev Entegrasyonumuzdan gelen tüm hataları gösteriyor. Bazı durumlarda hataları birbirinden ayırt etmek isteyebilirsiniz. Örneğin, belirli cihaz türlerinden veya özelliklerinden kaynaklanan hata kalıplarını izlemek isteyebilirsiniz. Bunu yapmak için, gelişmiş sorgular yazma konusuna göz atacağız.

Gelişmiş Sorgular

Bir Akıllı Ev olay günlüğünü incelediğinizde, bilgi toplayabileceğiniz çeşitli alanlar görürsünüz:

825c57c36800844e.png

action

  • trait: Cihaz özelliğini kullanıcıya göre hedefleyin (örneğin, Açık Kapalı, StartStop, Parlaklık)
  • actionType: Özelliğin ayrıntılı durumu (örneğin, Açık, Kapalı, Duraklat, Durdur, Devam Ettir)

device

  • deviceType: Kullanıcıya göre cihaz türünü hedefleyin (ör. Işık, Anahtar, Çamaşır Makinesi)

status

  • isSuccess: İşlemin başarılı olarak kabul edilip edilmediği (doğru / yanlış)
  • statusType: İşlem sonucu için durum kodu (başarısızsa bir hata kodu belirtir)
  • externalDebugString: İşlem için hata ayıklama dizesi (hatayı ayrıntılı olarak açıklar)

Diğer alanlar

Ayrıca, bilgi türetebileceğiniz ek alanlar da vardır:

  • requestId: İstekle ilişkilendirilmiş benzersiz bir kimlik (Google tarafından oluşturulur)
  • executionType: İstek tarafından kullanılan yol (Bulut veya Yerel olduğunu belirtir)
  • latencyMsec: Google Sunucularındaki istek için algılanan gecikme (milisaniye cinsinden)
  • locale: İsteğin gönderildiği dil/bölge çifti (örneğin, en-US, fr-FR)

Yukarıdaki listede yer alan trait (özellik) alanını kullanarak, sorgumuzu yalnızca OnOff özelliğinden gelen hataları içerecek şekilde aşağıdaki gibi değiştireceğiz:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Güncellenen sorgumuzu çalıştırdıktan sonra, sistem günlükleri tanımlar ve ilgili sonucu bize gösterir:

76176d7a41962341.png

Şu ana kadar tüm sorgularımızı manuel olarak yaptık. Bu, hataların durumunu hızlı bir şekilde kontrol etmek için harika bir yoldur, ancak hata kalıplarında zaman içindeki kaymaları izlemek için çok fazla değildir. Bu akışı otomatik hale getirmek ve daha uzun dönemlere ait verileri yakalamak için günlük tabanlı metrikler oluşturacağız.

3. Günlük Tabanlı Metrikler

Zaman içinde sorgularınızla eşleşen günlük sayısını saymak için günlük tabanlı metrikleri kullanabilirsiniz. Bu sayede, kalıpları ve günlükleriniz genelinde verileri görebilir ve temel sorunlar hakkında iyi analizler edinebilirsiniz.

Günlük Tabanlı Metrik Oluşturma

Günlük tabanlı bir metrik oluşturmak için İşlemler > Günlük Kaydı > Günlük Tabanlı Metrikler'e gidin. Bu işlem, projenizde zaten mevcut olan günlük tabanlı metriklerin listesini gösterir. METRİK OLUŞTUR düğmesini tıkladığınızda, günlük tabanlı metrik oluşturma ekranıyla karşılaşırsınız:

296af6e7d8dcf6cf.png

İki temel metrik türü vardır: Sayaç metriği sorgunuzla eşleşen günlük sayısını sayar. Dağıtım metriği temel dağılımı takip eder ve ortalama, ortanca değer ve 95. yüzdelik dilim gibi istatistiksel işlemlere olanak tanır.

Sayfayı aşağı kaydırdığınızda sorgunuzu yazabileceğiniz bir filtre bölümü görürsünüz.

f7f2093fa1bce2ac.png

Filtre oluştur metin alanının önceki bölümünde bulunan sorgumuzu yapıştıracağız.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Filtrenizle eşleşen geçmiş günlüklerin hızlı bir görünümünü görmek için GÜNLÜKLERİ ÖNİZLE düğmesini de tıklayabilirsiniz. İşiniz bittiğinde METRİK OLUŞTUR düğmesini tıklayarak bir sonraki bölüme geçebilirsiniz.

Günlük Tabanlı Metrik Verilerini Görüntüleme

Günlük tabanlı metriğimiz oluşturulduğuna göre artık Günlük tabanlı metrikler sayfasının Kullanıcı tanımlı metrikler bölümünde kullanılabilir.

1b2c88c18533fbcd.png

Günlük tabanlı metriğe (3 nokta) karşılık gelen menüden Metrik Gezgini'nde görüntüle'yi seçerek günlük tabanlı metrikte toplanan verileri görebilirsiniz:

54a836fdc3a666a3.png

Yeni bir hata oluştuğunda, bu hata günlük tabanlı metriğimiz tarafından yakalanır ve Metrik Gezgini'ndeki grafik penceresinde gösterilir.

Özel Kontrol Panelleriyle İzleme

Yeni günlük tabanlı metriğimizin amaçlandığı şekilde çalıştığını gördükten sonra bu grafik görünümünü özel bir kontrol paneline kaydetmenin zamanı gelmiş demektir. Bunun için, Metrik Gezgini'nin sağ üst köşesindeki Grafiği Kaydet düğmesini tıklayın. Grafiği adlandırıp kaydetmek istediğiniz Kontrol Panelini seçmeniz için bir istem görüntülenir:

52329085f841782e.png

Grafiği bir kontrol paneline kaydettikten sonra oradan kolayca erişebiliyoruz. Projenizde mevcut olan kontrol panellerinin listesine erişmek için İşlemler > İzleme > Kontrol Panelleri bölümüne gidin.

44961e7cb3663341.png

Grafiğimizi "Codelab Kontrol Paneli" adlı bir kontrol paneline kaydettik. Uygulamayı açtığınızda aşağıdaki görünüm görüntülenir:

f7e025c27f30f996.png

Gördüğünüz gibi, günlük tabanlı metriği temsil eden grafik, yeni toplanan verilerle birlikte burada gösterilir. Akıllı ev günlükleri projenizde gerçek zamanlı olarak yayınlanır. Yeni bir günlük mevcut olduğunda, bunun günlük tabanlı metriğiniz tarafından hemen sayıldığını görürsünüz.

4. Tebrikler

674c4f4392e98c1.png

Tebrikler! Sorgularınızı günlük tabanlı metriklere dönüştürmeyi ve izlemek için özel kontrol panellerine kaydetmeyi başarılı bir şekilde öğrendiniz.

Sonraki adımlar

Bu Codelab'den yola çıkarak aşağıdaki alıştırmaları yaparak ek kaynakları keşfedin:

  • Gecikme gibi sayısal alanlarda günlük tabanlı metrikler oluşturmak için Dağıtım Metrikleri Oluşturma kılavuzuna göz atın.
  • Günlük tabanlı metriklerde kullanabileceğiniz karmaşık filtrelerin bazılarını görmek için Google Cloud tarafından sağlanan Örnek Sorgu Kitaplığı'nı inceleyin.