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

1. Başlamadan önce

Akıllı Evlerde Hata Ayıklama codelab'inde değindiğimiz gibi, Akıllı Ev projelerinize metrikleri ve günlükleri yayınlıyoruz. Metrikler, Akıllı Ev İşleminizin nerede sorun yaşadığını belirlemenize yardımcı olur. Günlükler de bu sorunları çözmek için derinlemesine inceleme yaparken faydalı olabilir.

848f483bfcd2997a.png

Projenizde kullanabileceğiniz 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ı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 ele aldığımız gibi, günlüklerle çalışmak projenizin başarısı için çok önemlidir. Google Cloud Platform'da günlüklerinizi izlemek ve analiz etmek için harika araçlar bulunur. Projenizde kullanılabilen tüm günlüklere erişmek için Günlük Gezgini'ni kullanabilirsiniz.

Günlüklere Erişim

Günlüklerinize erişmenin ilk adımı, Google Cloud Platform'a giriş yapıp projenizi seçmektir. Yan menüyü kullanarak İşlemler > bölümüne giderek Günlük Gezgini'e gidin. Günlük kaydı > Günlük Gezgini. 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österen 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 bulmak ve ç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çinde farklı bir platformu temsil eder. Akıllı Ev platformundan gelen günlükler, projenizde assistant_action_project kaynak türü altında kullanılabilir.

Ayrıca, tüm günlüklere oluşturma sırasında bir önem düzeyi atanır. Akıllı Ev günlüklerinde, hata ve istisnaları temsil eden günlükler için ERROR, 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 yazdıktan sonra başlatmak için Sorguyu çalıştır düğmesini tıklayın. Bu işlem, Akıllı Ev entegrasyonunuzdan gelen hataları getirecektir:

3ef42da5a6c322e1.png

Gördüğünüz gibi, son bir saat içinde çeşitli zamanlarda birçok hata oluştu. Her satır tek bir hata günlüğünü temsil eder. Günlükleri tek tek tıklayabilir ve iç içe yerleştirilmiş alanları genişleterek, 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 kullanışlı bir Histogram özelliği sağlar. Histogramı etkinleştirmek için sağ üst köşedeki düğmelerde SAYFA DÜZENİ'ni tıklayın ve özelliği etkinleştirmek için Histogram'ı işaretleyin.

10eaf1d204decf3c.png

Etkinleştirildiğinde 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 saat içinde seyrek şekilde kümelenen birkaç hatamız var. 13:45, 14:00 ve 14:15 civarında üç küme oluşturmuşlar. Histogram, yalnızca zaman damgası değerlerini kontrol ederek görülmesi zor kalıpları tespit etmenize yardımcı olabilir.

Şu anda kullandığımız sorgu günlükleri birbirinden ayırt etmiyor ve Akıllı Ev Entegrasyonumuzdan gelen tüm hataları gösteriyor. 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 yazmaya başlayacağız.

Gelişmiş Sorgular

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

825c57c36800844e.png

action

  • trait: Kullanıcı tarafından cihaz özelliğini hedefleyin (ör. OnKapalı, 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 sonucunun başarılı olup olmadığı (doğru / yanlış)
  • statusType: İşlem sonucunun durum kodu (başarısızsa hata kodu gösterir)
  • externalDebugString: İşlemin hata ayıklama dizesi (hatayı ayrıntılı olarak açıklar)

Diğer alanlar

Ayrıca, aşağıdaki kaynaklardan bilgi edinebileceğiniz ek alanlar da vardır:

  • requestId: İstekle ilişkili benzersiz bir kimlik (Google tarafından oluşturulur)
  • executionType: İstek tarafından kullanılan yol (Bulut veya Yerel olduğunu belirtir)
  • latencyMsec: Google Sunucularında 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 listede bulunan trait alanını kullanarak, sorgumuzu yalnızca OnOff özelliğinden gelen hataları içerecek şekilde değiştireceğiz:

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

Güncellenmiş 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 etmenin harika bir yoludur ancak hata kalıplarında zaman içinde görülen kaymaları izlemek için çok fazla gerekmez. Bu akışı otomatikleştirmek ve daha uzun döneme 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üklerinizi görüp temel sorunlara dair faydalı bilgiler edinebilirsiniz.

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. Burada, projenizde halihazırda bulunan günlük tabanlı metriklerin listesi gösterilir. METRİK OLUŞTUR düğmesini tıkladığınızda günlük tabanlı metrik oluşturma ekranı gösterilir:

296af6e7d8dcf6cf.png

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

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

f7f2093fa1bce2ac.png

Önceki bölümde yer alan sorgunuzu 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ü elde etmek için GÜNLÜKLERİ ÖNİZLE düğmesini de tıklayabilirsiniz. İşiniz bittiğinde METRİK OLUŞTUR düğmesini tıklayarak sonraki bölüme geçebilirsiniz.

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

Günlük tabanlı metriğimiz oluşturulduğu için bu metriği Günlük tabanlı metrikler sayfasının Kullanıcı tanımlı metrikler bölümünde bulabilirsiniz.

1b2c88c18533fbcd.png

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

54a836fdc3a666a3.png

Yeni bir hata olduğunda, 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

Günlük tabanlı yeni metriğimizin beklendiği gibi çalıştığını gördükten sonra, bu grafik görünümünü özel bir kontrol paneline kaydetme zamanı gelmiş demektir. Bunun için Metrik Gezgini'nin sağ üst köşesindeki Grafiği Kaydet düğmesini tıklayın. Grafiğe bir ad vermeniz ve grafiği kaydetmek istediğiniz Kontrol Paneli'ni seçmenizin istendiği bir istem görüntülenir:

52329085f841782e.png

Grafiği bir kontrol paneline kaydettikten sonra, ona oradan kolayca erişebiliriz. Projenizde kullanılabilen kontrol panellerinin listesine erişmek için İşlemler > İzleme > Gösterge Tabloları.

44961e7cb3663341.png

Grafiğimizi "Codelab Kontrol Paneli" adlı bir kontrol paneline kaydettik. Açıldığında 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 burada yeni toplanan verilerle birlikte gösterilmektedir. Akıllı ev günlükleri projenize gerçek zamanlı olarak yayınlanır. Yeni bir günlük kullanıma sunulduğunda, günlüğe dayalı 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 amacıyla özel kontrol panellerine kaydetmeyi başarıyla öğrendiniz.

Sonraki adımlar

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

  • Gecikme gibi sayısal alanlarla ilgili günlük tabanlı metrikler oluşturmak için Dağıtım Metrikleri Oluşturma kılavuzunu inceleyin.
  • Google Cloud tarafından sağlanan Örnek Sorgu Kitaplığı'nı inceleyerek günlük tabanlı metrikler için kullanabileceğiniz karmaşık filtrelerden bazılarını inceleyin.