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

1. Başlamadan önce

Akıllı Ev'de hata ayıklama kod laboratuvarımızda da belirttiğimiz gibi, Akıllı Ev projelerinizin metriklerini ve günlüklerini yayınlıyoruz. Metrikler, Akıllı Ev İşleminizin nerede sorun yaşadığını belirlemenize yardımcı olur. Günlükler ise 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'daki Günlüğe Dayalı Metrikler'i kullanarak kendi metriklerinizi de oluşturabilirsiniz. Bu sayede günlüklerinizdeki belirli kalıpları izleyebilir ve kalite sorunlarını etkili bir şekilde ayıklayabilirsiniz.

Ön koşullar

Neler öğreneceksiniz?

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

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

Akıllı Ev Codelab'inde hata ayıklama bölümünde kısaca belirttiğimiz gibi, günlüklerle çalışmak projenizin başarısı için çok önemlidir. Google Cloud'da günlüklerinizi izleyip analiz etmek için kullanabileceğiniz mükemmel araçlar vardır. Projenizde kullanılabilen tüm günlüklere erişmek için Günlük Gezgini'ni kullanabilirsiniz.

Günlüklere erişme

Günlüklerinize erişmek için ilk adım Google Cloud'a giriş yapıp projenizi seçmektir. Yan menüyü kullanarak İşlemler > Günlük Kaydı > Günlük Gezgini'ne gidin. Aracı açtığınızda şu 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ı yazacağınız bir bölüm (Sorgu oluşturucu) ve eşleşen sonuçların gösterileceği bir alan (Sorgu sonuçları).

Google'daki birçok farklı bileşen varsayılan olarak projenize günlük yazar. Akıllı Ev entegrasyonunuzdan gelen günlükleri bulup 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'daki farklı bir platformu temsil eder. Akıllı Ev platformundan gelen günlükler, assistant_action_project kaynak türü altında projenizde kullanılabilir.

Ayrıca, tüm günlüklere oluşturulurken bir önem düzeyi atanır. Akıllı Ev günlüklerinde hataları ve istisnaları temsil eden günlükler için ERROR düzeyini, diğer 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

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

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. Ayrıca, günlükleri tek tek tıklayıp içlerindeki bilgileri görmek için iç içe yerleştirilmiş alanları genişletebilirsiniz.

Histogram'ı kullanma

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

10eaf1d204decf3c.png

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

dd3410e65a83cf5d.png

Yukarıdaki resimde de görebileceğiniz gibi, son bir saat içinde seyrek olarak kümelenmiş birkaç hatamız var. Saat 13:45, 14:00 ve 14:15 civarında üç küme oluşturdukları görülüyor. 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ı bize gösteriyor. Hataları birbirinden ayırmak istediğiniz birçok durum vardır. Örneğin, belirli cihaz türlerinden veya özelliklerinden kaynaklanan hata kalıplarını izlemek için hataları ayırmak isteyebilirsiniz. Bunun için ileri düzey sorgular yazmaya göz atacağız.

Gelişmiş Sorgular

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

825c57c36800844e.png

action

  • trait: Kullanıcının cihaz özelliğini hedefleyin (ör. AçıkKapalı, BaşlatDurdur, Parlaklık)
  • actionType: Özelliğin ayrıntılı durumu (ör. Açık, Kapalı, Duraklat, Durdur, Devam ettir)

device

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

status

  • isSuccess: İşlemin sonucunun başarılı olarak kabul edilip edilmeyeceğini belirtir (true / false)
  • statusType: İşlem sonucunun durum kodu (başarısız olursa hata kodunu belirtir)
  • externalDebugString: İşlemin hata ayıklama dizesi (hatayı ayrıntılı olarak açıklar)

Diğer alanlar

Ayrıca, bilgi edinebileceğiniz ek alanlar da vardır:

  • requestId: İstekle ilişkili benzersiz bir kimlik (Google tarafından oluşturulur)
  • executionType: İsteğin kullandığı yol (Cloud'da mı yoksa yerel olarak mı 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 (ör. en-US, fr-FR)

Yukarıdaki listedeki ö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 sorgumuz çalıştırıldıktan sonra sistem günlükleri tanımlar ve bize ilgili sonucu gösterir:

76176d7a41962341.png

Sorgularımızın hepsini manuel olarak yaptık. Bu, hataların durumunu hızlıca kontrol etmenin mükemmel bir yoludur ancak zaman içinde hata kalıplarındaki değişimleri izlemek için pek uygun değildir. Bu akışı otomatikleştirmek 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üklerin sayısını saymak için günlük tabanlı metrikleri kullanabilirsiniz. Bu sayede, günlüklerinizdeki kalıpları görebilir ve temel sorunlar hakkında iyi analizler elde edebilirsiniz.

Günlük Tabanlı Metrik Oluşturma

Günlük tabanlı metrik oluşturmak için İşlemler > Günlük kaydı > Günlük tabanlı metrikler'e gidin. Bu işlem, projenizde halihazırda 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ı gösterilir:

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ı izler ve ortalama, medyan 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

Önceki bölümdeki sorgumuzu Filtre oluştur metin alanına 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. İşlemi tamamladığınızda METRİK OLUŞTUR düğmesini tıklayıp sonraki bölüme geçebilirsiniz.

Günlük tabanlı metrik verilerini görüntüleme

Günlüğe dayalı metriğimiz oluşturulduğuna göre Günlüğe dayalı metrikler sayfasının Kullanıcı tanımlı metrikler bölümünde bu metriği görebilirsiniz.

1b2c88c18533fbcd.png

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

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 panelleri aracılığıyla izleme

Yeni günlük tabanlı metriğimizin amaçlandığı gibi çalıştığını gördükten sonra bu grafik görünümünü özel bir kontrol paneline kaydetme zamanı gelmiştir. Bunun için Metrik Gezgini'nin sağ üst köşesindeki Grafiği Kaydet düğmesini tıklayın. Bu işlem, grafiği adlandırmanızı ve kaydetmek istediğiniz kontrol panelini seçmenizi isteyen bir istem gösterir:

52329085f841782e.png

Grafiği bir gösterge tablosuna kaydettikten sonra bu tablodan kolayca erişebiliriz. Projenizdeki kontrol panellerinin listesine erişmek için İşlemler > İzleme > Kontrol Panelleri'ne gidin.

44961e7cb3663341.png

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

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 projenize gerçek zamanlı olarak yayınlanır. Yeni bir günlük mevcut olduğunda, 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 izleme için özel kontrol panellerine kaydetmeyi başarıyla öğrendiniz.

Sonraki adımlar

Bu Codelab'i temel alarak aşağıdaki alıştırmaları deneyin ve 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üğe dayalı metrikler için kullanabileceğiniz karmaşık filtrelerden bazılarını görmek üzere Google Cloud tarafından sağlanan Örnek Sorgu Kitaplığı'nı inceleyin.