Entegrasyon hatalarını giderme

Buluttan buluta    Konu

Google Cloud, projelerinizin güvenilirliğini Google Cloud Monitoring ile izlemeniz ve Google Cloud Logging hata günlüklerini kullanarak sorunları ayıklamanızı sağlayacak araçlar sunar. Kullanıcıların amaçları yerine getirilirken bir hata oluştuğunda Google Home Analytics ardışık düzeni, metriklerinizdeki başarısızlığı kaydeder ve proje günlüklerinizde bir hata günlüğü yayınlar.

Hatalarınızı gidermek için izlenecek 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.

Bu işlem, Local Home SDK kullanılan yerel entegrasyona benzer. Sorun giderme akışında ustalaştıktan sonra hatalarınızla ilgili bilgi edinmek için metrikler ve günlükler arasında kolayca geçiş yapabilirsiniz.

İzleme hataları

Proje metriklerinize erişmek için Google Cloud Monitoring dashboard kullanabilirsiniz. Özellikle kaliteyi izleme ve hata ayıklama için faydalı olan bazı önemli grafikler vardır:

  • Başarı Oranı grafiği, projelerinizin güvenilirliğini izlediğinizde başlayabileceğiniz 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 yapılan her değişiklik veya güncellemeden sonra herhangi bir düzensizlik 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 için nasıl performans gösterdiğine dair önemli bir göstergedir. Bu grafikteki ani dalgalanmalar, sistemlerinizin istekleri karşılayamadığını 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ızla ilgili sorunları giderme açısından çok yararlıdır. Başarı yüzdesi grafiğinizde vurgulanan her hata için hata dökümünüzde bir hata kodu görüntülenir. Google Home platform tarafından işaretlenen hataları ve bu hataları nasıl gidereceğinizi 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ı 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'deki requestId kullanın.
BACKEND_FAILURE_URL_TIMEOUT Google'ın isteği, hizmetinize ulaşmaya çalışırken zaman aşımına uğradı.

Hizmetinizin internete bağlı olduğunu, bağlantıları kabul ettiğini ve kapasitenin üzerinde olmadığını doğrulayın. Ayrıca, hedef cihazın açık, internete bağlı 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 kullanın.
DEVICE_NOT_FOUND Cihaz, iş ortağı hizmeti tarafında mevcut değil.

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

Hesap bağlama hizmetindeki hata günlüklerini kontrol etmek için GCP Logging'deki requestId aracını kullanın.
GAL_INTERNAL Google bir erişim jetonu almaya çalıştığında Google'ın dahili hatası oluştu.

GCP Logging'de bu hatada artış görürseniz daha fazla bilgi için bizimle iletişime geçin.
GAL_INVALID_ARGUMENT Google bir erişim jetonu almaya çalıştığında Google'ın dahili hatası oluştu.

GCP Logging'de bu hatada artış görürseniz 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 hale gelir ve artık yenilenemez. Kullanıcının hizmetinizi kullanmaya devam edebilmesi için hesabını yeniden bağlaması gerekiyor.

GCP Logging'de bu hatada artış görürseniz daha fazla bilgi için bizimle iletişime geçin.
GAL_PERMISSION_DENIED Jeton paylaşımı yetkilendirilmediğinde Google'ın dahili hatası oluştu.

GCP Logging'de bu hatada artış görürseniz daha fazla bilgi için bizimle iletişime geçin.
GAL_REFRESH_IN_PROGRESS Kullanıcının erişim jetonunun süresi doldu ve jetonun yenilenmesi için aynı anda başka bir deneme yapılıyor.

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 dolmadı ancak hizmetiniz, jetonu geçersiz hale getirdi. Akıllı ev hizmeti günlüklerinizi kontrol etmek için GCP Logging'deki requestId 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 parantez, 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 doldu ve Google jetonu yenileyemiyor veya Google, hizmetinizden bir HTTP 401 hata kodu aldı.

Bu kodda artış görürseniz akıllı ev amaçları veya yenileme jetonu istekleriyle ilgili hata oranında da artış görüp görmediğinizi kontrol edin.
PARTNER_RESPONSE_INVALID_ERROR_CODE Yanıt, tanınmayan bir hata kodu belirtiyor.

İstek yanıtınızda bir hata olduğu belirtiliyorsa desteklenen hata kodlarımızda sağlanan hatalardan birini 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 parantez içerip içermediğini 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 bir durum belirtmiyor veya yanlış bir durumu belirtmiyor.

Amaç yerine getirme isteklerine verilen yanıtlar, SUCCESS, OFFLINE, ERROR, EXCEPTIONS ile birlikte 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 niyet yanıtta eksik.

Yürütme yanıtınızın doğru şekilde yapılandırıldığını ve istekten gelen tüm niyet sonuçlarının yanıtınızda mevcut olduğunu doğrulayın.
PARTNER_RESPONSE_MISSING_DEVICE İstekte bulunan bir veya daha fazla cihaz yanıtta yok.

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 mevcut olduğ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ı 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, uyumsuz 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 bir şekilde yapılandırıldığından emin olun.
PROTOCOL_ERROR İstek işlenemedi.

Akıllı ev hizmeti günlüklerinizi kontrol etmek için Google Cloud Logging'deki requestId öğesini kullanın.
RESPONSE_TIMEOUT İstek, yanıt beklenirken zaman aşımına uğradı.

Yanıt gönderme süresi, isteğin gönderildiği tarihten 9 saniye sonradır. Bu süre içinde yanıt gönderdiğinizden emin olun.
RESPONSE_UNAVAILABLE Yanıt alınamadı 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 veya hizmetle bağlantısı kesilen bir bağlantı şeklinde ortaya çıkar. Ayrıca, sunucu için yeni bağlantıların açılamaması durumunda da bu durum geçerlidir.

Arama Günlükleri

Metrikleri kullanarak entegrasyonlarınızı izlemeye alıştıktan sonraki adım Cloud Logging kullanarak belirli hataları gidermektir. Hata günlüğü; zaman, hata kodu ve kaynak akıllı ev amacı ile ilgili ayrıntılar gibi faydalı bilgilerin bulunduğu JSON benzeri bir giriştir.

Google Cloud içinde, projenize her zaman günlük gönderen birden fazla sistem vardır. Günlüklerinizi filtrelemek için sorgular yazmanız ve ihtiyaç duyduğunuz bilgileri bulmanız gerekir. Sorgular; Zaman Aralığı, Kaynak, günlük Önem derecesi veya özel girişlere dayalı olabilir.

Bulut Günlüklerini Sorgulama

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

Cloud Log Sorguları Derleme

Zaman aralığı belirlemek için zaman aralığı seçim düğmesini tıklayın ve sunulan seçeneklerden birini belirleyin. Bu işlem, günlükleri filtreler ve seçili zaman aralığında oluşturulan günlükleri gösterir.

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

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

Ö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 olmak üzere daha gelişmiş sorgu türlerini destekler.

Örneğin, aşağıdaki özel giriş bir 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ükleri etkili bir şekilde sorgulamayla ilgili daha fazla örnek için Sorgu Kitaplığı'nı ziyaret edin.

Test Düzeltmeleri

Hataları belirleyip 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 etmeniz için size yol gösteren, Test Suite özelliğinin nasıl kullanılacağıyla ilgili bir kullanıcı rehberi sağlıyoruz.

Eğitici Kaynaklar

Bu dokümanda, Akıllı Ev İşleminizdeki hataları giderme adımları yer almaktadır. Hata ayıklama hakkında daha fazla bilgi edinmek için codelab'lerimizi de kontrol edebilirsiniz: