智慧型住宅的記錄指標

1. 事前準備

偵錯智慧住宅程式碼研究室所述,我們會將指標和記錄發布至智慧住宅專案。指標可協助您判斷智慧住宅動作發生問題的位置,而記錄則有助於深入瞭解並解決這些問題。

848f483bfcd2997a.png

除了我們為專案提供的指標外,您也可以使用 Google Cloud 的記錄指標產生自己的指標。這樣一來,您就能監控記錄中的特定模式,並有效偵錯品質問題。

必要條件

課程內容

  • 如何撰寫有效查詢,篩選智慧住宅錯誤記錄
  • 如何建立記錄指標,從查詢產生指標
  • 如何根據記錄指標建立圖表和資訊主頁,以便監控

2. 使用記錄

如我們在偵錯智慧住宅 Codelab 中簡要介紹,使用記錄是專案成功的關鍵。Google Cloud 提供許多實用工具,可供您監控及分析記錄檔。如要存取專案的所有記錄,可以使用 Logs Explorer

存取記錄

如要存取記錄,請先登入 Google Cloud 並選擇專案。依序前往「Operations」>「Logging」>「Logs Explorer」,使用側邊選單前往「Logs Explorer」。開啟工具後,您應該會看到這個畫面:

78982d8b6d19b827.png

Logs Explorer 主要由兩部分組成:頂端用於撰寫查詢的區段 (「查詢建立工具」),以及用於顯示相符結果的區域 (「查詢結果」)。

Google 的許多不同元件預設都會將記錄寫入專案。如要尋找及處理智慧住宅整合服務的記錄,您必須編寫自訂查詢。

撰寫查詢

記錄檔會發布至資源類型下的專案。每種資源類型都代表 Google 內的不同平台。專案可透過 assistant_action_project 資源類型存取智慧住宅平台記錄。

此外,所有記錄在建立時都會指派嚴重程度。智慧住宅記錄會使用 ERROR 層級記錄錯誤和例外狀況,並使用 DEBUG 層級記錄其他所有內容。

在下列範例中,我們會編寫查詢,只篩選出代表錯誤的平台記錄,如下所示:

753bfe72a9f8e959.png

撰寫完查詢後,請按一下「執行查詢」按鈕,啟動查詢。這時應該會顯示智慧住宅整合功能傳回的錯誤:

3ef42da5a6c322e1.png

如您所見,過去一小時內發生了許多錯誤。每一行代表一筆錯誤記錄。您也可以進一步點選個別記錄,展開巢狀欄位來查看內含資訊。

使用直方圖

記錄檔探索工具提供實用的直方圖功能,可顯示符合查詢條件的記錄檔時間分布情形。如要啟用直方圖,請按一下右上角的「頁面配置」按鈕,然後勾選「直方圖」,即可啟用這項功能。

10eaf1d204decf3c.png

啟用後,您會看到與查詢相符的記錄分配情形:

dd3410e65a83cf5d.png

如上圖所示,過去一小時內發生了幾項錯誤,但並未密集叢集。似乎在下午 1:45、2:00 和 2:15 左右形成三個叢集。直方圖可協助您偵測模式,如果只檢查時間戳記值,可能難以發現這些模式。

目前我們使用的查詢不會區分記錄,而是顯示智慧住宅整合功能的所有錯誤。您可能經常需要區分錯誤,例如追蹤特定裝置類型或特徵造成的錯誤模式。如要瞭解如何編寫進階查詢,請參閱下文。

進階查詢

檢查智慧住宅事件記錄時,您會看到各種可從中收集資訊的欄位:

825c57c36800844e.png

action

  • trait使用者要控制的裝置特徵 (例如 OnOff、StartStop、Brightness)
  • actionType特徵的精細狀態 (例如「開啟」、「關閉」、「暫停」、「停止」、「繼續」)

device

  • deviceType依使用者指定裝置類型 (例如燈具、開關、洗衣機)

status

  • isSuccess動作結果是否視為成功 (true / false)
  • statusType動作結果的狀態碼 (如果動作失敗,則表示錯誤碼)
  • externalDebugString動作的偵錯字串 (詳細說明錯誤)

其他欄位

您也可以從其他欄位衍生資訊:

  • requestId與要求相關聯的專屬 ID (由 Google 產生)
  • executionType要求使用的路徑 (指出是雲端或本機)
  • latencyMsecGoogle 伺服器上要求的感知延遲時間 (以毫秒為單位)
  • locale傳送要求的語言/區域組合 (例如 en-US、fr-FR)

使用上述清單中的特徵欄位,我們將修改查詢,只納入來自 OnOff 特徵的錯誤,如下所示:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

執行更新後的查詢後,系統會找出記錄並顯示相應結果:

76176d7a41962341.png

到目前為止,我們都是手動執行所有查詢。這很適合用來快速檢查錯誤狀態,但不太適合用來監控錯誤模式隨時間的變化。如要自動執行這項流程,並擷取較長時段的資料,請建立記錄指標。

3. 記錄指標

如要計算一段時間內與查詢相符的記錄數,可以使用記錄指標。這樣一來,您就能查看記錄檔中的模式,深入瞭解根本問題。

建立記錄指標

如要建立記錄指標,請依序前往「Operations」>「Logging」>「Log-based Metrics」。畫面上會顯示專案中已有的記錄指標清單。按一下「建立指標」按鈕後,系統會顯示以記錄為準的指標建立畫面:

296af6e7d8dcf6cf.png

主要有兩種指標類型:計數器指標會計算符合查詢條件的記錄數。分配指標會追蹤基礎分配情形,並允許執行統計作業,例如計算平均值、中位數和第 95 個百分位數。

向下捲動即可看到篩選器專區,您可以在這裡輸入查詢。

f7f2093fa1bce2ac.png

我們將前一節的查詢貼到「Build filter」(建立篩選條件) 文字區域。

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

您也可以點選「預覽記錄」按鈕,快速查看符合篩選條件的過往記錄。完成後,請按一下「建立指標」按鈕,然後前往下一節。

查看記錄指標資料

記錄指標建立完成後,就會顯示在「記錄指標」頁面的「使用者定義的指標」部分。

1b2c88c18533fbcd.png

從記錄指標對應的選單 (3 個點) 中,選取「在 Metrics Explorer 中查看」,即可查看記錄指標中收集的資料:

54a836fdc3a666a3.png

一旦發生新錯誤,系統就會透過以記錄為準的指標擷取錯誤,並顯示在 Metrics Explorer 的圖表視窗中。

透過自訂資訊主頁監控

確認新的記錄檔指標運作正常後,就可以將這個圖表檢視畫面儲存到自訂資訊主頁。如要這麼做,請按一下「指標探索器」右上角的「儲存圖表」按鈕。系統會顯示提示,要求您為圖表命名,並選取要儲存圖表的資訊主頁:

52329085f841782e.png

將圖表儲存到資訊主頁後,就能輕鬆存取。如要存取專案可用的資訊主頁清單,請依序前往「作業」>「監控」>「資訊主頁」

44961e7cb3663341.png

我們已將圖表儲存至名為「Codelab Dashboard」的資訊主頁。開啟後會顯示下列檢視畫面:

f7e025c27f30f996.png

如您所見,這裡會顯示代表記錄指標的圖表,以及新收集的資料。智慧住宅記錄會即時發布至專案。有新記錄時,系統會立即透過以記錄為準的指標計算。

4. 恭喜

674c4f4392e98c1.png

恭喜!您已成功學會如何將查詢轉換為記錄指標,並儲存至自訂資訊主頁以進行監控。

後續步驟

完成本程式碼研究室後,請嘗試下列練習並探索其他資源:

  • 請參閱「建立分布指標」指南,瞭解如何針對延遲等數值欄位建立記錄指標。
  • 請參閱 Google Cloud 提供的範例查詢程式庫,瞭解可搭配記錄指標使用的複雜篩選器。