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.
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
- Akıllı Ev ile çalışır entegrasyonuna sahip olun.
- 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 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:
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:
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:
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.
Etkinleştirildikten sonra sorgunuzla eşleşen günlüklerin dağılımını görürsünüz:
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:
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:
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:
İ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.
Ö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.
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:
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:
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.
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:
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
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.