Entegrasyon hatalarını giderme

Google Cloud, Google Cloud Monitoring ile projelerinizin güvenilirliğini izleyebileceğiniz ve Google Cloud Logging hata günlükleriyle sorunları giderebileceğiniz araçlar sunar. Kullanıcıların amaçları yerine getirilirken bir hata meydana geldiğinde Google Home Analytics ardışık düzeni, metriklerinizde bu hatayı kaydeder ve proje günlüklerinizde bir hata günlüğü yayınlar.

Hatalarınızı gidermenin 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ı araştırın.

Bu işlem, Local Home SDK kullanılan yerel entegrasyonda da benzer şekilde işler. 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 ileri ve geri gidebilirsiniz.

İzleme hataları

Proje metriklerinize erişmek için Google Cloud Monitoring dashboard kullanabilirsiniz. Özellikle kaliteyi izlemek ve hata ayıklamada kullanışlı olan bazı temel grafikler vardır:

  • Başarı Oranı grafiği, projelerinizin güvenilirliğini izlerken başlamanız gereken ilk grafiktir. Bu grafikteki düşüşler, kullanıcı tabanınızın bir kısmında veya tamamında kesinti olduğunu gösterebilir. Projenizde yaptığınız her değişiklikten veya güncellemeden sonra düzensizlikler olup olmadığını görmek için bu grafiği yakından izlemenizi öneririz.
  • 95. Yüzdelik Dilim Gecikmesi grafiği, akıllı ev İşleminizin kullanıcılarınız açısından nasıl performans gösterdiğinin önemli bir göstergesidir. Bu grafikteki ani dalgalanmalar, sistemlerinizin istekleri karşılayamadığını gösterebilir. Beklenmedik davranışlarla karşılaşmak için bu grafiği düzenli olarak kontrol etmeniz önerilir.
  • Hata Dökümü grafikleri en çok entegrasyonlarınızdaki sorunları giderme konusunda yararlıdır. Başarı yüzdesi grafiğinizde vurgulanan her hata için hata dökümünde bir hata kodu görüntülenir. Google Home platform tarafından işaretlenen hataları ve bunların nasıl giderileceğini aşağıdaki tabloda görebilirsiniz.

Platform Hata Kodları

Google Home platform tarafından yakalanan sorunları tanımlamak için proje günlüklerinizde görebileceğiniz bazı yaygın hata kodlarını aşağıda bulabilirsiniz. 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'deki requestId hizmetini kullanın.
BACKEND_FAILURE_URL_TIMEOUT Hizmetinize ulaşmaya çalışırken Google'ın isteği zaman aşımına uğradı.

Hizmetinizin internete bağlı olduğunu, bağlantı kabul ettiğini ve kapasiteyi aşmadığını doğrulayın. Ayrıca, hedef cihazın açık, çevrimiçi ve senkronize 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'deki requestId hizmetini kullanın.
DEVICE_NOT_FOUND Cihaz, iş ortağı hizmeti tarafında mevcut değil.

Bu normalde veri senkronizasyonunda bir hata veya yarış koşuluna işaret eder.
GAL_BAD_3P_RESPONSE Google, geçersiz biçim veya yükteki değerler nedeniyle hesap bağlantı hizmetinizden gelen yanıtı ayrıştıramıyor.

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

GCP Logging'de bu hatanın sayısında artış görürseniz daha fazla bilgi için bize ulaşın.
GAL_INVALID_ARGUMENT Google, erişim jetonu almaya çalışırken Google'da dahili bir hata oluştu.

GCP Logging'de bu hatanın sayısında artış görürseniz daha fazla bilgi için bize ulaşın.
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. Hizmetinizi kullanmaya devam edebilmesi için kullanıcının hesabını yeniden bağlaması gerekir.

GCP Logging'de bu hatanın sayısında artış görürseniz daha fazla bilgi için bize ulaşın.
GAL_PERMISSION_DENIED Jeton paylaşımı yetkilendirilmediğinde Google'da dahili bir hata oluştu.

GCP Logging'de bu hatanın sayısında artış görürseniz daha fazla bilgi için bize ulaşın.
GAL_REFRESH_IN_PROGRESS Kullanıcının erişim jetonunun süresi dolmuş ve jetonu yenilemeye yönelik başka bir eşzamanlı girişim zaten devam etmektedir.

Bu bir sorun değildir ve herhangi bir işlem yapmanız gerekmez.
INVALID_AUTH_TOKEN Google, hizmetinizden bir HTTP 401 hata kodu aldı.

Erişim jetonunun süresi dolmamasına rağmen hizmetiniz tarafından geçersiz kılındı. Akıllı ev hizmeti günlüklerinizi kontrol etmek için GCP Logging'deki requestId öğesini 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 eşleşmeyen parantezler, eksik virgüller, geçersiz karakterler gibi geçersiz söz dizimi olup olmadığını kontrol edin.
OPEN_AUTH_FAILURE Kullanıcının erişim jetonunun süresi dolmuş ve jeton Google tarafından yenilenemiyor veya Google, hizmetinizden HTTP 401 hata kodu aldı.

Bu kodun kullanım oranının yükseldiğini görürseniz akıllı ev amaçları veya yenileme jetonu istekleriyle ilgili hata oranının da artıp artmadığını kontrol edin.
PARTNER_RESPONSE_INVALID_ERROR_CODE Yanıt tanınmayan bir hata kodu belirtiyor.

İstek yanıtınızda hata varsa desteklenen hata kodlarımızda sağlanan bir yanıtı kullandığınızdan emin olun.
PARTNER_RESPONSE_INVALID_PAYLOAD Yanıt payload alanı JSON Nesnesi olarak ayrıştırılamıyor.

İstek yanıtınızdaki yük alanının eşleşen parantezlere sahip olup olmadığını ve JSON alanı olarak doğru yapılandırılmış olup olmadığını kontrol edin.
PARTNER_RESPONSE_INVALID_STATUS Yanıt herhangi bir durum belirtmiyor veya yanlış bir durumu belirtiyor.

Amaç yerine getirme isteklerine verilen yanıtlar, SUCCESS, OFFLINE, ERROR, EXCEPTIONS özelliklerinden birini içeren bir durum belirtmelidir. Hataları ve istisnaları işleme hakkında daha fazla bilgi edinebilirsiniz.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES İstekte 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 İstekte yer alan 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 bir payload alanı içermiyor.

İstek yanıtınıza 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 JSON nesnesi olarak doğru yapılandırıldığından da emin olun.
PROTOCOL_ERROR İstek işleme alınamadı.

Akıllı ev hizmeti günlüklerinizi kontrol etmek için Google Cloud Logging'deki requestId hizmetini kullanı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önderildiği tarihten itibaren 9 saniyedir. Bu süre içinde yanıt gönderdiğinizden emin olun.
RESPONSE_UNAVAILABLE Yanıt alınmadı veya yanıtta durum belirtilmiyor.

Amaç yerine getirme isteklerine verilen yanıtlar, akıllı ev belgelerine göre yapılandırılmalı ve durumu belirtmelidir.
TRANSIENT_ERROR Geçici hata, kendi kendine çözülecek bir hatadır.

Bu hatalar genellikle bir cihazın veya hizmetin kaldırılması şeklinde ortaya çıkar. Ayrıca, bir sunucuya yönelik yeni bağlantılar açılamıyorsa.

Arama Günlükleri

Metrikler kullanarak entegrasyonlarınızı izlemeye alıştıktan sonra Cloud Logging kullanarak belirli hataları giderme adımına geçebilirsiniz. Hata günlüğü; zaman, hata kodu ve kaynak akıllı ev amacı ile ilgili ayrıntılar gibi yararlı bilgiler içeren alanlar içeren JSON benzeri bir giriştir.

Google Cloud içinde, günlükleri projenize sürekli olarak gönderen birden fazla sistem vardır. Günlüklerinizi filtrelemek için sorgular yazmanız ve ihtiyacınız olanları bulmanız gerekir. Sorgular; Zaman Aralığı, Kaynak, günlük Önem Düzeyi veya özel girişleri temel alabilir.

Bulut Günlüklerini Sorgula

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

Cloud Günlüğü 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 filtreler ve seçilen zaman aralığında olan günlükleri gösterir.

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

Acil Durum, Bilgi, Hata Ayıklama ve diğer önem düzeyi günlüğü düzeylerine göre filtrelemek için Önem Düzeyi düğmesini kullanın.

Özel girişler girmek için Logs Explorer içindeki Sorgu alanını da kullanabilirsiniz. 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) dahil daha gelişmiş sorgu türlerini destekler.

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

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

Günlükleri etkili bir şekilde sorgulamayla ilgili daha fazla örnek için Sorgu Kitaplığı'nı ziyaret edin.

Test Düzeltmeleri

Hataları tanımlayıp düzeltmek için güncellemeleri uyguladıktan sonra düzeltmelerinizi Google Home Test Suite ile kapsamlı bir şekilde test etmenizi öneririz. Değişikliklerinizi etkili bir şekilde test etme konusunda size yol gösteren bir Test Suite kullanıcı rehberini de sağlıyoruz.

Eğitici Kaynaklar

Bu belgede, Akıllı Ev İşleminizdeki hataları gidermeye yönelik adımlar yer almaktadır. Hata ayıklama hakkında daha fazla bilgi edinmek için codelab'lerimizi de inceleyebilirsiniz: