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.
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
- Akıllı Ev ile çalışır entegrasyonuna sahip olma
- Akıllı Ev'de hata ayıklama codelab'ini tamamlayın
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:
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:
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:
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.
Etkinleştirildikten sonra sorgunuzla eşleşen günlüklerin dağıtımını görürsünüz:
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:
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:
Ş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:
İ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.
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.
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:
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:
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.
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:
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
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.