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.
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
- Akıllı Ev ile Çalışır entegrasyonuna sahip olma
- Akıllı Evlerde 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 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:
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:
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:
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.
Etkinleştirildiğinde 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 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:
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:
Ş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:
İ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.
Ö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.
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:
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:
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ı.
Grafiğimizi "Codelab Kontrol Paneli" adlı bir kontrol paneline kaydettik. Açıldığında 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 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
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.