Khắc phục lỗi tích hợp

Đám mây với đám mây    Matter

Google Cloud cung cấp cho bạn các công cụ để theo dõi độ tin cậy của dự án bằng Google Cloud Monitoring và gỡ lỗi các vấn đề bằng nhật ký lỗi Google Cloud Logging. Bất cứ khi nào xảy ra lỗi khi thực hiện ý định của người dùng, quy trình Google Home Analytics sẽ ghi lại lỗi đó trên các chỉ số của bạn và phát hành nhật ký lỗi trong nhật ký dự án.

Có hai bước để khắc phục lỗi:

  1. Theo dõi trạng thái của dự án bằng các chỉ số về nhà thông minh.
  2. Điều tra vấn đề bằng cách kiểm tra thông tin mô tả chi tiết về lỗi trong nhật ký lỗi.

Quy trình này tương tự như quy trình tích hợp cục bộ bằng cách sử dụng Local Home SDK. Sau khi nắm vững quy trình khắc phục sự cố, bạn có thể dễ dàng chuyển đổi qua lại giữa các chỉ số và nhật ký để nắm được thông tin chi tiết về lỗi.

Nếu muốn, bạn có thể kiểm thử Hành động bằng cách chia sẻ Hành động đó với người dùng khác. Hãy nhớ xử lý các lỗi và ngoại lệ một cách thích hợp.

Theo dõi lỗi

Bạn có thể sử dụng Google Cloud Monitoring dashboard để truy cập vào các chỉ số dự án. Có một số biểu đồ chính đặc biệt hữu ích cho việc theo dõi chất lượng và gỡ lỗi:

  • Biểu đồ Tỷ lệ thành công là biểu đồ đầu tiên bạn cần xem khi theo dõi độ tin cậy của các dự án. Sự sụt giảm trong biểu đồ này có thể cho biết một phần hoặc toàn bộ cơ sở người dùng của bạn đang gặp sự cố. Bạn nên theo dõi chặt chẽ biểu đồ này để phát hiện mọi điểm bất thường sau mỗi lần thay đổi hoặc cập nhật dự án.
  • Biểu đồ Độ trễ theo thứ tự thứ 95 là một chỉ báo quan trọng về hiệu suất của hoạt động tích hợp Cloud-to-cloud cho người dùng. Sự biến động đột ngột trong biểu đồ này có thể cho thấy hệ thống của bạn có thể không bắt kịp các yêu cầu. Bạn nên kiểm tra biểu đồ này thường xuyên để xem có hành vi nào không mong muốn hay không.
  • Biểu đồ Bảng chi tiết lỗi hữu ích nhất khi bạn cần khắc phục sự cố về các công cụ tích hợp. Đối với mỗi lỗi được làm nổi bật trong biểu đồ tỷ lệ thành công, một mã lỗi sẽ xuất hiện trong bảng chi tiết lỗi. Bạn có thể xem các lỗi được Google Home platform gắn cờ và cách khắc phục các lỗi đó trong bảng bên dưới.

Mã lỗi nền tảng

Sau đây là một số mã lỗi phổ biến mà bạn có thể thấy trong nhật ký dự án để xác định các vấn đề mà Google Home platform phát hiện được. Vui lòng tham khảo bảng sau để biết thông tin khắc phục sự cố.

Mã lỗi Mô tả
BACKEND_FAILURE_URL_ERROR Google nhận được mã lỗi HTTP 4xx khác với mã 401 từ dịch vụ của bạn.

Hãy sử dụng requestId trong tính năng Ghi nhật ký GCP để kiểm tra các nhật ký dịch vụ nhà thông minh.
BACKEND_FAILURE_URL_TIMEOUT Yêu cầu của Google đã hết thời gian chờ khi cố gắng kết nối với dịch vụ của bạn.

Xác minh rằng dịch vụ của bạn đang hoạt động, chấp nhận kết nối và không vượt quá giới hạn. Ngoài ra, hãy xác minh rằng thiết bị mục tiêu đã bật nguồn, có kết nối mạng và được đồng bộ hoá.
BACKEND_FAILURE_URL_UNREACHABLE Google đã nhận được mã lỗi HTTP 5xx từ dịch vụ của bạn.

Hãy sử dụng requestId trong tính năng Ghi nhật ký GCP để kiểm tra các nhật ký dịch vụ nhà thông minh.
DEVICE_NOT_FOUND Thiết bị không tồn tại ở phía dịch vụ của đối tác.

Thông báo này thường cho biết lỗi đồng bộ hoá dữ liệu hoặc tình trạng tranh chấp.
GAL_BAD_3P_RESPONSE Google không thể phân tích cú pháp phản hồi từ dịch vụ liên kết tài khoản của bạn do định dạng hoặc giá trị không hợp lệ trong tải trọng.

Hãy sử dụng requestId trong tính năng Ghi nhật ký GCP để kiểm tra nhật ký lỗi trong dịch vụ liên kết tài khoản.
GAL_INTERNAL Đã xảy ra lỗi nội bộ của Google khi Google cố gắng truy xuất mã thông báo truy cập.

Nếu bạn thấy tỷ lệ lỗi này tăng lên trong tính năng Ghi nhật ký GCP, hãy liên hệ với chúng tôi để biết thêm thông tin.
GAL_INVALID_ARGUMENT Đã xảy ra lỗi nội bộ của Google khi Google cố gắng truy xuất mã thông báo truy cập.

Nếu bạn thấy tỷ lệ lỗi này tăng lên trong tính năng Ghi nhật ký GCP, hãy liên hệ với chúng tôi để biết thêm thông tin.
GAL_NOT_FOUND Mã thông báo truy cập và mã thông báo làm mới của người dùng được lưu trữ trong Google sẽ không hợp lệ và không thể làm mới được nữa. Người dùng cần liên kết lại tài khoản của họ để tiếp tục sử dụng dịch vụ của bạn.

Nếu bạn thấy tỷ lệ lỗi này tăng lên trong tính năng Ghi nhật ký GCP, hãy liên hệ với chúng tôi để biết thêm thông tin.
GAL_PERMISSION_DENIED Đã xảy ra lỗi nội bộ của Google khi bạn không được phép chia sẻ mã thông báo.

Nếu bạn thấy tỷ lệ lỗi này tăng lên trong tính năng Ghi nhật ký GCP, hãy liên hệ với chúng tôi để biết thêm thông tin.
GAL_REFRESH_IN_PROGRESS Mã thông báo truy cập của người dùng đã hết hạn và một nỗ lực đồng thời khác để làm mới mã thông báo đó đang diễn ra.

Đây không phải là vấn đề và bạn không cần làm gì cả.
INVALID_AUTH_TOKEN Google nhận được mã lỗi HTTP 401 từ dịch vụ của bạn.

Mã thông báo truy cập chưa hết hạn nhưng dịch vụ của bạn đã vô hiệu hoá mã đó. Sử dụng requestId trong tính năng Ghi nhật ký GCP để kiểm tra nhật ký dịch vụ nhà thông minh.
INVALID_JSON Không thể phân tích cú pháp hoặc hiểu được phản hồi JSON.

Kiểm tra cấu trúc của phản hồi JSON để tìm cú pháp không hợp lệ, chẳng hạn như dấu ngoặc không khớp, thiếu dấu phẩy, ký tự không hợp lệ.
OPEN_AUTH_FAILURE Mã thông báo truy cập của người dùng đã hết hạn và Google không thể làm mới mã đó, hoặc Google đã nhận được mã lỗi HTTP 401 từ dịch vụ của bạn.

Nếu bạn thấy tỷ lệ mã này tăng lên, hãy kiểm tra xem bạn có thấy tỷ lệ lỗi liên quan đến ý định nhà thông minh hoặc yêu cầu mã thông báo làm mới tăng lên hay không.
PARTNER_RESPONSE_INVALID_ERROR_CODE Phản hồi cho biết mã lỗi không được nhận dạng.

Nếu phản hồi yêu cầu của bạn cho biết có lỗi, hãy nhớ sử dụng một lỗi được cung cấp từ mã lỗi được hỗ trợ của chúng tôi.
PARTNER_RESPONSE_INVALID_PAYLOAD Không thể phân tích cú pháp trường payload phản hồi dưới dạng Đối tượng JSON.

Kiểm tra xem trường tải trọng trong phản hồi yêu cầu có dấu ngoặc khớp với nhau và có cấu trúc chính xác dưới dạng trường JSON hay không.
PARTNER_RESPONSE_INVALID_STATUS Phản hồi không cho biết trạng thái hoặc cho biết trạng thái không chính xác.

Phản hồi cho các yêu cầu thực hiện ý định phải cho biết trạng thái bằng SUCCESS, OFFLINE, ERROR, EXCEPTIONS. Bạn có thể tìm thêm thông tin về cách xử lý lỗi và ngoại lệ.
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES Một hoặc nhiều ý định có trong yêu cầu bị thiếu trong phản hồi.

Xác minh rằng phản hồi thực thi của bạn có cấu trúc chính xác và kết quả cho tất cả ý định từ yêu cầu đều có trong phản hồi của bạn.
PARTNER_RESPONSE_MISSING_DEVICE Một hoặc nhiều thiết bị có trong yêu cầu bị thiếu trong phản hồi.

Xác minh rằng phản hồi thực thi của bạn có cấu trúc chính xác và tất cả mã nhận dạng thiết bị trong yêu cầu đều có trong phản hồi của bạn.
PARTNER_RESPONSE_MISSING_PAYLOAD Phản hồi không chứa trường payload.

Hãy nhớ thêm trường tải trọng vào phản hồi yêu cầu. Bạn có thể tìm hiểu thêm về cách tạo một phản hồi thực thi chính xác.
PARTNER_RESPONSE_NOT_OBJECT Không thể phân tích cú pháp phản hồi dưới dạng Đối tượng JSON.

Kiểm tra tất cả các trường trong phản hồi yêu cầu để tìm ký tự ngoài ý muốn, dấu ngoặc không khớp hoặc lỗi định dạng. Một số ký tự Unicode có thể không được hỗ trợ. Ngoài ra, hãy đảm bảo phản hồi của bạn được cấu trúc đúng cách dưới dạng đối tượng JSON.
PROTOCOL_ERROR Không xử lý được yêu cầu.

Hãy sử dụng requestId trong Google Cloud Logging để kiểm tra nhật ký dịch vụ nhà thông minh.
RESPONSE_TIMEOUT Yêu cầu đã hết thời gian chờ trong khi chờ phản hồi.

Thời gian chờ gửi phản hồi là 9 giây kể từ khi yêu cầu được gửi. Hãy nhớ gửi phản hồi trong khoảng thời gian này.
RESPONSE_UNAVAILABLE Không nhận được phản hồi hoặc phản hồi không cho biết trạng thái.

Nội dung phản hồi các yêu cầu thực hiện ý định phải được sắp xếp theo tài liệu về nhà thông minh và cho biết trạng thái.
TRANSIENT_ERROR Lỗi tạm thời là lỗi sẽ tự khắc phục.

Thông thường, các lỗi này biểu hiện dưới dạng kết nối với một thiết bị hoặc dịch vụ bị ngắt. Ngoài ra, nếu không thể mở các kết nối mới với máy chủ.

Nhật ký Tìm kiếm

Sau khi bạn đã quen với việc theo dõi các chế độ tích hợp bằng chỉ số, bước tiếp theo là khắc phục các lỗi cụ thể bằng Cloud Logging. Nhật ký lỗi là một mục tương tự như JSON với các trường chứa thông tin hữu ích như thời gian, mã lỗi và thông tin chi tiết về ý định ban đầu của nhà thông minh.

Có nhiều hệ thống trong Google Cloud luôn gửi nhật ký đến dự án của bạn. Bạn cần viết truy vấn để lọc nhật ký và tìm những nhật ký bạn cần. Truy vấn có thể dựa trên Phạm vi thời gian, Tài nguyên, Mức độ nghiêm trọng của nhật ký hoặc mục nhập tuỳ chỉnh.

Truy vấn Nhật ký trên đám mây

Bạn có thể sử dụng các nút truy vấn để tạo bộ lọc tuỳ chỉnh.

Tạo truy vấn nhật ký trên đám mây

Để chỉ định Phạm vi thời gian, hãy nhấp vào nút chọn phạm vi thời gian rồi chọn một trong các tuỳ chọn được cung cấp. Thao tác này sẽ lọc nhật ký và hiển thị những nhật ký bắt nguồn từ khung thời gian đã chọn.

Để chỉ định một Tài nguyên, hãy nhấp vào trình đơn thả xuống Tài nguyên, sau đó chọn Dự án hành động của Trợ lý Google. Thao tác này sẽ thêm một bộ lọc vào truy vấn của bạn để hiển thị các nhật ký bắt nguồn từ dự án của bạn.

Sử dụng nút Severity (Mức độ nghiêm trọng) để lọc theo Emergency (Khẩn cấp), Info (Thông tin), Debug (Gỡ lỗi) và các cấp độ nhật ký nghiêm trọng khác.

Bạn cũng có thể sử dụng trường Truy vấn trong Logs Explorer để nhập các mục tuỳ chỉnh. Công cụ truy vấn mà trường này sử dụng hỗ trợ cả truy vấn cơ bản như so khớp chuỗi và các loại truy vấn nâng cao hơn, bao gồm trình so sánh (<, >=, !=) và toán tử boolean (AND, OR, NOT).

Ví dụ: mục nhập tuỳ chỉnh bên dưới sẽ trả về các lỗi bắt nguồn từ loại thiết bị LIGHT:

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

Hãy truy cập vào Thư viện truy vấn để tìm thêm ví dụ về cách truy vấn nhật ký một cách hiệu quả.

Kiểm thử bản sửa lỗi

Sau khi xác định lỗi và áp dụng bản cập nhật để khắc phục lỗi, bạn nên kiểm thử kỹ các bản sửa lỗi bằng Google Home Test Suite. Chúng tôi cung cấp hướng dẫn sử dụng về cách sử dụng Test Suite, hướng dẫn bạn kiểm thử các thay đổi một cách hiệu quả.

Tài nguyên học tập

Tài liệu này cung cấp các bước khắc phục sự cố trong Hành động nhà thông minh. Bạn cũng có thể tham khảo các lớp học lập trình của chúng tôi để tìm hiểu thêm về cách gỡ lỗi: