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

1. Başlamadan önce

Akıllı Ev'de Hata Ayıklama adlı codelab'de ele aldığımız gibi, metrikleri ve günlükleri Akıllı Ev projelerinizde yayınlıyoruz. Metrikler, akıllı ev işleminizin nerede sorun yaşadığını belirlemenize yardımcı olur. Günlükler ise bu sorunları çözmek için ayrıntılı inceleme yaparken faydalıdır.

848f483bfcd2997a.png

Projenizde kullanabileceğiniz metriklerin yanı sıra, Google Cloud'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 bahsettiğimiz gibi, günlüklerle çalışmak projenizin başarısı için çok önemlidir. Google Cloud'da günlüklerinizi izleyip analiz etmenize yardımcı olacak harika 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 olarak Google Cloud'da oturum açıp projenizi seçin. Operations > Logging > Logs Explorer (İşlemler > Günlük Kaydı > Günlük Gezgini) adımlarını uygulayarak yan menüden 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: Üstte sorgularınızı yazabileceğiniz bir bölüm (Sorgu oluşturucu) ve eşleşen sonuçları gösterebileceğiniz 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 kullanmak 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ükler oluşturulurken bir önem derecesi 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ı bitirdikten sonra 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 oluşan bir dizi hatamız var. Her satır tek bir hata günlüğünü temsil eder. Ayrıca, bilgileri görmek için günlükleri tek tek tıklayabilir ve 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ğıtımını görürsünüz:

dd3410e65a83cf5d.png

Yukarıdaki resimde de görebileceğiniz gibi, son bir saat içinde seyrek olarak gruplandırılmış birkaç hata var. Bu saatler 13:45, 14:00 ve 14:15 civarında üç küme oluşturuyor. Histogram, yalnızca zaman damgası değerlerini kontrol ederek görmesi zor olan kalıpları tespit etmenize yardımcı olabilir.

Şu anda kullandığımız sorgu, günlükleri ayırt etmiyor ve Akıllı Ev entegrasyonumuzdan gelen tüm hataları gösteriyor. Örneğin, belirli cihaz türlerinden veya özelliklerinden kaynaklanan hata kalıplarını izlemek için hataları ayırt etmek isteyebilirsiniz. Bunun için gelişmiş sorgular yazma konusunu inceleyeceğiz.

Gelişmiş Sorgular

Bir akıllı ev etkinlik günlüğünü incelerken bilgi toplayabileceğiniz çeşitli alanlar olduğunu görürsünüz:

825c57c36800844e.png

action

  • trait: Kullanıcı tarafından cihaz özelliğini (örneğin, OnOff, StartStop, Brightness) hedefleyin.
  • actionType: Özelliğin ayrıntılı durumu (örneğin, Açık, Kapalı, Duraklat, Durdur, Devam Ettir)

device

  • deviceType: Kullanıcı tarafından hedeflenen cihaz türü (ö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ız olursa hata kodunu gösterir)
  • externalDebugString: İşlemle ilgili hata ayıklama dizesi (hatayı ayrıntılı olarak açıklar)

Diğer alanlar

Bilgi alabileceğiniz ek alanlar da vardır:

  • requestId: İstekle ilişkili benzersiz kimlik (Google tarafından oluşturulur)
  • executionType: İstek tarafından kullanılan yol (Cloud veya Yerel olup olmadığını gösterir)
  • 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 listede yer alan özellik alanını kullanarak sorgumuzu yalnızca OnOff özelliğinden kaynaklanan hataları içerecek şekilde aşağıdaki gibi değiştiririz:

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 bize ilgili sonucu 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 yöntem olsa da zaman içindeki hata kalıplarındaki değişiklikleri izlemek için pek uygun değildir. Bu akışı otomatikleştirmek ve daha uzun sürelerdeki 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ı hesaplamak 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 zaten kullanılabilen 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üklerin sayısını gösterir. Dağılı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ü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şturulduktan sonra, Günlüğe dayalı metrikler sayfasının Kullanıcı tanımlı metrikler bölümünde kullanılabilir.

1b2c88c18533fbcd.png

Günlüğe dayalı metriğe karşılık gelen menüden (3 nokta), günlüğe dayalı metrikte toplanan verileri görmek için 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 beklendiği gibi çalıştığını gördüğümüzde 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. Bu işlem, grafiği adlandırmanız ve kaydetmek istediğiniz kontrol panelini seçmeniz için bir istem gösterir:

52329085f841782e.png

Grafiği bir kontrol paneline kaydettikten sonra, grafiğe kolayca erişebiliriz. Projenizde kullanılabilen Gösterge Tablolarının listesine erişmek için İşlemler > İzleme > Gösterge Tabloları'na gidin.

44961e7cb3663341.png

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

f7e025c27f30f996.png

Günlüğe dayalı 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 kullanıma sunulduğunda, günlük tabanlı metriğinizde hemen sayılır.

4. Tebrikler

674c4f4392e98c1.png

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

Sonraki adımlar

Bu Codelab'den yararlanarak aşağıdaki alıştırmaları deneyin ve ek kaynakları inceleyin:

  • 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 bazı karmaşık filtreleri görmek üzere Google Cloud tarafından sağlanan Örnek Sorgu Kitaplığı'nı inceleyin.