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.

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
- Works with Smart Home 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 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:

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:

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:

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.

Etkinleştirildikten sonra, sorgunuzla eşleşen günlüklerin dağıtımını görürsünüz:

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:

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:

Ş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:

İ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.

Ö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.

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:

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:

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.

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:

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

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.