Entegrasyon hatalarını giderme

Buluttan buluta    Matter

Google Cloud, Google Cloud Monitoring ile projelerinizin güvenilirliğini izlemenize ve Google Cloud Logging hata günlükleriyle sorunların hata ayıklamasını yapmanıza olanak tanıyan araçlar sunar. Kullanıcı amaçları yerine getirilirken bir hata oluştuğunda Google Home Analytics işlem hattı, bu hatayı metriklerinize kaydeder ve proje günlüklerinize bir hata günlüğü yayınlar.

Hatalarınızı gidermek için iki adım vardır:

  1. Akıllı ev metrikleriyle projelerinizin durumunu izleyin.
  2. Hata günlüklerindeki ayrıntılı hata açıklamalarını kontrol ederek sorunları inceleyin.

Local Home SDK kullanılarak yapılan yerel entegrasyon için de benzer bir süreç uygulanır. Sorun giderme akışında ustalaştıktan sonra, hatalarınızla ilgili analizler elde etmek için metrikler ve günlükler arasında kolayca geçiş yapabilirsiniz.

İsteğe bağlı olarak, diğer kullanıcılarla paylaşarak İşleminizi test edebilirsiniz. Hata ve istisnaları uygun şekilde ele aldığınızdan emin olun.

Hataları izleme

Proje metriklerinize erişmek için Google Cloud Monitoring dashboards simgesini kullanabilirsiniz. Kaliteyi izlemek ve hataları ayıklamak için özellikle yararlı olan bazı önemli grafikler vardır:

  • Başarı oranı grafiği, projelerinizin güvenilirliğini izlerken başlangıç noktası olarak kullanacağınız ilk grafiktir. Bu grafikteki düşüşler, kullanıcı tabanınızın bir kısmı veya tamamı için kesinti olduğunu gösterebilir. Projenizde her değişiklik veya güncelleme yapıldıktan sonra bu grafikteki düzensizlikleri yakından izlemenizi öneririz.
  • %95'lik dilim gecikmesi grafiği, Cloud-to-cloud entegrasyonunuzun kullanıcılarınız için nasıl performans gösterdiğini belirten önemli bir göstergedir. Bu grafikteki ani dalgalanmalar, sistemlerinizin isteklere yetişemediğini gösterebilir. Beklenmedik davranışları görmek için bu grafiği düzenli olarak kontrol etmeniz önerilir.
  • Hata Dökümü grafikleri, entegrasyonlarınızdaki sorunları giderme konusunda en faydalı olanlardır. Başarı yüzdesi grafiğinizde vurgulanan her hata için hata dökümünüzde bir hata kodu gösterilir. Google Home platform tarafından işaretlenen hataları ve bu hatalarla ilgili sorunları nasıl gidereceğinizi aşağıdaki tabloda görebilirsiniz.

Platform Hata Kodları

Google Home platform tarafından yakalanan sorunları belirlemek için proje günlüklerinizde görebileceğiniz bazı yaygın hata kodları aşağıda verilmiştir. Sorun giderme bilgileri için lütfen aşağıdaki tabloya bakın.

Hata Kodu Açıklama
BACKEND_FAILURE_URL_ERROR Google, hizmetinizden 401 dışında bir HTTP 4xx hata kodu aldı.

Akıllı ev hizmeti günlüklerinizi kontrol etmek için GCP Logging'de requestId simgesini kullanın.
BACKEND_FAILURE_URL_TIMEOUT Google'ın hizmetinize ulaşmaya çalışırken yaptığı istek zaman aşımına uğradı.

Hizmetinizin çevrimiçi olduğunu, bağlantı kabul ettiğini ve kapasiteyi aşmadığını doğrulayın. Ayrıca, hedef cihazın açık, internete bağlı ve senkronize edilmiş olduğunu doğrulayın.
BACKEND_FAILURE_URL_UNREACHABLE Google, hizmetinizden bir HTTP 5xx hata kodu aldı.

Akıllı ev hizmeti günlüklerinizi kontrol etmek için GCP Logging'de requestId simgesini kullanın.
DEVICE_NOT_FOUND Cihaz, iş ortağı hizmeti tarafında mevcut değil.

Bu durum genellikle veri senkronizasyonunda bir hata veya yarışma koşulu olduğunu gösterir.
GAL_BAD_3P_RESPONSE Google, yükteki geçersiz biçim veya değerler nedeniyle hesap bağlama hizmetinizden gelen yanıtı ayrıştıramıyor.

Hesap bağlama hizmetinizdeki hata günlüklerini kontrol etmek için GCP Logging'de requestId'ı kullanın.
GAL_INTERNAL Google, erişim jetonu almaya çalışırken Google'da dahili bir hata oluştu.

GCP Logging'de bu hatanın sıklığı artarsa daha fazla bilgi için bizimle iletişime geçin.
GAL_INVALID_ARGUMENT Google, erişim jetonu almaya çalışırken Google'da dahili bir hata oluştu.

GCP Logging'de bu hatanın sıklığı artarsa daha fazla bilgi için bizimle iletişime geçin.
GAL_NOT_FOUND Kullanıcının Google'da depolanan erişim jetonları ve yenileme jetonları geçersiz kılınır ve artık yenilenemez. Kullanıcının hizmetinizi kullanmaya devam etmek için hesabını yeniden bağlaması gerekir.

GCP Logging'de bu hatanın sıklığı artarsa daha fazla bilgi için bizimle iletişime geçin.
GAL_PERMISSION_DENIED Token paylaşımı yetkilendirilmediğinde Google'da dahili bir hata oluşur.

GCP Logging'de bu hatanın sıklığı artarsa daha fazla bilgi için bizimle iletişime geçin.
GAL_REFRESH_IN_PROGRESS Kullanıcının erişim jetonunun süresi dolmuş ve jetonu yenilemek için eşzamanlı olarak başka bir deneme yapılıyor.

Bu bir sorun değildir ve herhangi bir işlem yapılmasına gerek yoktur.
INVALID_AUTH_TOKEN Google, hizmetinizden bir HTTP 401 hata kodu aldı.

Erişim jetonunun süresi dolmamış ancak hizmetiniz jetonu geçersiz kılmış. Akıllı ev hizmeti günlüklerinizi kontrol etmek için GCP Logging'de requestId seçeneğini kullanın.
INVALID_JSON JSON yanıtı ayrıştırılamıyor veya anlaşılamıyor.

JSON yanıtınızın yapısında geçersiz söz dizimi olup olmadığını kontrol edin. Örneğin, eşleşmeyen ayraçlar, eksik virgüller, geçersiz karakterler.
OPEN_AUTH_FAILURE Kullanıcının erişim jetonunun süresi dolmuş ve Google bu jetonu yenileyemiyor, veya Google, hizmetinizden bir HTTP 401 hata kodu almış.

Bu kodun oranında artış görürseniz akıllı ev amaçları veya yenileme jetonu istekleriyle ilgili hataların oranında da artış olup olmadığını kontrol edin.
PARTNER_RESPONSE_INVALID_ERROR_CODE Yanıt, tanınmayan bir hata kodu olduğunu gösteriyor.

İstek yanıtınızda hata belirtiliyorsa desteklenen hata kodlarımızdan birini kullandığınızdan emin olun.
PARTNER_RESPONSE_INVALID_PAYLOAD Yanıt payload alanı JSON nesnesi olarak ayrıştırılamıyor. Object.

İstek yanıtınızdaki yük alanında eşleşen parantezlerin olup olmadığını ve JSON alanı olarak doğru şekilde yapılandırılıp yapılandırılmadığını kontrol edin.
PARTNER_RESPONSE_INVALID_STATUS Yanıt, durumu belirtmiyor veya yanlış bir durum belirtiyor.

Amacın yerine getirilmesi isteklerine verilen yanıtlarda SUCCESS, OFFLINE, ERROR, EXCEPTIONS ile durum belirtilmelidir. Hataları ve istisnaları ele alma hakkında daha fazla bilgi edinebilirsiniz.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES İstek içinde bulunan bir veya daha fazla amaç yanıtta eksik.

Yürütme yanıtınızın doğru şekilde yapılandırıldığını ve istekteki tüm amaçlara ait sonuçların yanıtınızda yer aldığını doğrulayın.
PARTNER_RESPONSE_MISSING_DEVICE İstek içinde bulunan bir veya daha fazla cihaz yanıtta eksik.

Yürütme yanıtınızın doğru şekilde yapılandırıldığını ve istekteki tüm cihaz kimliklerinin yanıtınızda bulunduğunu doğrulayın.
PARTNER_RESPONSE_MISSING_PAYLOAD Yanıt payload alanı içermiyor.

İstek yanıtınıza bir yük alanı eklediğinizden emin olun. Yürütme yanıtını doğru şekilde oluşturma hakkında daha fazla bilgi edinebilirsiniz.
PARTNER_RESPONSE_NOT_OBJECT Yanıt, JSON nesnesi olarak ayrıştırılamıyor.

İstek yanıtınızdaki tüm alanlarda istenmeyen karakterler, eşleşmeyen parantezler veya biçimlendirme hataları olup olmadığını kontrol edin. Bazı Unicode karakterleri desteklenmeyebilir. Ayrıca yanıtınızın doğru şekilde JSON nesnesi olarak yapılandırıldığından emin olun.
PROTOCOL_ERROR İstek işlenirken hata oluştu.

Akıllı ev hizmeti günlüklerinizi kontrol etmek için Google Cloud Logging'de requestId simgesini kullanın.
RELINK_REQUIRED Yanıt, relinkRequired hatası olduğunu gösteriyor. Bu hata, kullanıcının Google ve iş ortağı hesaplarını yeniden bağlamasına neden oluyor.

Daha fazla bilgi için desteklenen hata kodları bölümüne bakın.
RESPONSE_TIMEOUT Yanıt beklenirken istek zaman aşımına uğradı.

Yanıt gönderme için zaman aşımı süresi, isteğin gönderilmesinden itibaren 9 saniyedir. Bu süre içinde yanıt gönderdiğinizden emin olun.
RESPONSE_UNAVAILABLE Yanıt alınmaz veya yanıtta durum belirtilmez.

Amaca uygunluk isteklerine verilen yanıtlar, akıllı ev dokümanlarına göre yapılandırılmalı ve durumu belirtmelidir.
TRANSIENT_ERROR Geçici hatalar, kendi kendine çözülen hatalardır.

Bu hatalar genellikle bir cihaza veya hizmete olan bağlantının kesilmesi şeklinde ortaya çıkar. Ayrıca, sunucuya yeni bağlantılar açılamıyorsa.

Arama Günlükleri

Metrikleri kullanarak entegrasyonlarınızı izleme konusunda rahat hissetmeye başladığınızda bir sonraki adım, Cloud Logging kullanarak belirli hataları gidermektir. Hata günlüğü, JSON benzeri bir giriş olup zaman, hata kodu ve kaynak akıllı ev amacı ile ilgili ayrıntılar gibi faydalı bilgiler içeren alanlar içerir.

Google Cloud içinde, güncel olarak projenize günlük gönderen birden fazla sistem vardır. Günlüklerinizi filtrelemek ve ihtiyacınız olanları bulmak için sorgular yazmanız gerekir. Sorgular Zaman Aralığı, Kaynak, günlük Önem Derecesi veya özel girişlere göre yapılabilir.

Cloud günlüklerini sorgulama

Özel filtrelerinizi oluşturmanıza yardımcı olması için sorgu düğmelerini kullanabilirsiniz.

Cloud Log Sorguları Oluşturma

Zaman aralığı belirtmek için zaman aralığı seçim düğmesini tıklayın ve sağlanan seçeneklerden birini belirleyin. Bu işlem, günlükleri filtreleyerek seçilen zaman aralığında oluşturulanları gösterir.

Kaynak belirtmek için Kaynak açılır listesini tıklayın, ardından Google Asistan İşlemi Projesi'ni seçin. Bu işlem, sorgunuza projenizden gelen günlükleri gösterecek bir filtre ekler.

Önem derecesi düğmesini kullanarak Acil, Bilgi, Hata ayıklama ve diğer önem derecesi günlük düzeylerine göre filtreleme yapın.

Ayrıca, Logs Explorer bölümündeki Sorgu alanını kullanarak özel girişler de girebilirsiniz. Bu alan tarafından kullanılan sorgu motoru hem dize eşleştirme gibi temel sorguları hem de karşılaştırıcılar (<, >=, !=) ve Boole operatörleri (AND, OR, NOT) gibi daha gelişmiş sorgu türlerini destekler.

Örneğin, aşağıdaki özel giriş, LIGHT cihaz türünden kaynaklanan hatalar döndürür:

resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"

Günlüklere etkili bir şekilde sorgu göndermeyle ilgili daha fazla örnek bulmak için Sorgu Kitaplığı'nı ziyaret edin.

Düzeltmeleri Test Etme

Hataları belirleyip düzeltmek için güncellemeleri uyguladıktan sonra, düzeltmelerinizi Google Home Test Suite ile kapsamlı bir şekilde test etmenizi öneririz. Test Suite'yı nasıl kullanacağınızla ilgili bir kullanıcı kılavuzu sunuyoruz. Bu kılavuz, değişikliklerinizi etkili bir şekilde test etme konusunda size yol gösterir.

Eğitici Kaynaklar

Bu belgede, akıllı ev işleminizdeki hataları giderme adımları açıklanmaktadır. Hata ayıklama hakkında daha fazla bilgi edinmek için codelab'lerimize de göz atabilirsiniz: