智慧型住宅的記錄指標

1. 事前準備

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

848f483bfcd2997a.png

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

必要條件

課程內容

  • 如何撰寫有效的查詢,篩選智慧家庭錯誤記錄
  • 如何建立記錄指標,從查詢產生指標
  • 如何使用記錄檔指標建立圖表和監控資訊主頁

2. 使用記錄檔

如同我們在智慧型家居程式碼研究室中簡要說明,使用記錄檔是專案成功的關鍵。Google Cloud 提供多種實用工具,可用於監控及分析記錄。如要存取專案可用的所有記錄,您可以使用記錄檔探索工具

存取記錄檔

如要存取記錄,請先登入 Google Cloud 並選擇專案。使用側邊選單前往「Logs Explorer」,方法是依序點選「作業」>「記錄」>「記錄檔探索工具」。開啟工具後,您應該會看到這個檢視畫面:

78982d8b6d19b827.png

Logs Explorer 包含兩個主要部分:頂端的編寫查詢區段 (查詢建構工具) 和顯示比對結果的區域 (查詢結果)。

根據預設,Google 中的許多不同元件都會將記錄寫入專案。如要查看並處理智慧型住宅整合功能產生的記錄,您必須編寫自訂查詢。

編寫查詢

記錄會發布至資源類型下的專案。每個資源類型都代表 Google 中的不同平台。來自智慧型家居平台的記錄會以 assistant_action_project 資源類型提供給專案。

此外,所有記錄在建立時都會指派嚴重性層級。在智慧型家居記錄中,我們會使用 ERROR 層級代表錯誤和例外狀況,其他則使用 DEBUG 層級。

在以下範例中,我們會編寫查詢,只篩選來自平台的記錄,如下所示:

753bfe72a9f8e959.png

編寫查詢完成後,請按一下「Run query」 按鈕,啟動查詢。這應該會顯示智慧住宅整合功能產生的錯誤:

3ef42da5a6c322e1.png

如您所見,我們在過去一小時內發生了許多錯誤。每列代表一個錯誤記錄。您可以進一步點選個別記錄,並展開巢狀欄位,查看其中包含的資訊。

使用直方圖

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

10eaf1d204decf3c.png

啟用後,您會看到符合查詢的記錄分布情形:

dd3410e65a83cf5d.png

如上圖所示,我們在過去一小時內發現了幾個錯誤,但這些錯誤分散分布。這些點似乎形成了三個叢集,分別位於下午 1 點 45 分、2 點和 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. 記錄指標

如要計算與查詢相符的記錄數量,您可以使用記錄指標。這樣一來,您就能查看記錄檔中的模式,並針對潛在問題提供詳細的洞察資料。

建立記錄指標

如要建立記錄指標,請依序前往「操作」>「記錄」>「記錄指標」。這會顯示專案中現有的記錄指標清單。點選「建立指標」按鈕後,您會看到以記錄為基礎的指標建立畫面:

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 的圖表視窗中顯示。

透過自訂資訊主頁進行監控

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

52329085f841782e.png

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

44961e7cb3663341.png

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

f7e025c27f30f996.png

如您所見,這裡會顯示代表記錄式指標的圖表,以及新收集的資料。智慧型家居記錄會即時發布至專案。新的記錄可供使用時,您會立即看到系統根據記錄為基礎的指標計算的結果。

4. 恭喜

674c4f4392e98c1.png

恭喜!您已成功瞭解如何將查詢轉換為以記錄為基礎的指標,並將這些指標儲存到自訂資訊主頁中進行監控。

後續步驟

請參考本程式碼研究室的內容,嘗試下列練習,並探索其他資源:

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