Cloud 作業套件簡介

1. 簡介

上次更新時間:2023 年 7 月 28 日

什麼是 Google Cloud Operations Suite?

Google Cloud 作業套件是個平台,您可以在這個平台上監控 Google Cloud 環境中的應用程式、改善效能及解決相關問題。Cloud 作業套件的主要支柱包括 Cloud Monitoring、Cloud Logging 和 Cloud Trace。

歡迎觀看這部影片,瞭解 Google Cloud Operations 的高階總覽。

建構項目

在本程式碼研究室中,您將在 Google Cloud 上部署範例 API。接著,您將探索及設定 Cloud Monitoring 中的多項功能,並與 API 進行比較。

課程內容

  • 使用 Google Cloud 的 Cloud Shell 將範例應用程式部署至 Cloud Run。
  • 使用 Google Cloud Monitoring 功能,例如資訊主頁、快訊、運作時間檢查、SLI/SLO 監控等。

軟硬體需求

  • 新版 Chrome (74 以上版本)
  • Google Cloud 帳戶和 Google Cloud 專案

2. 設定和需求

自修實驗室環境設定

如果您沒有 Google 帳戶 (Gmail 或 Google 應用程式),請先建立帳戶。登入 Google Cloud Platform 主控台 ( console.cloud.google.com),然後建立新專案。

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • 專案名稱是專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新該位置資訊。
  • 專案 ID 在所有 Google Cloud 專案中不得重複,且設定後即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要理會該字串。在大多數程式碼研究室中,您需要參照專案 ID (通常會識別為 PROJECT_ID)。如果不喜歡系統產生的 ID,可以產生另一個隨機 ID。你也可以嘗試自訂名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間都會維持這個設定。
  • 請注意,部分 API 會使用第三個值,也就是專案編號。如要進一步瞭解這三種值,請參閱說明文件

注意:專案 ID 必須是全域專屬 ID,選定後就無法變更,且其他使用者無法使用。您是該 ID 的唯一使用者。即使刪除專案,該 ID 也無法再使用

  1. 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成本程式碼研究室的費用應該不高,甚至完全免費。如要關閉資源,避免產生本教學課程以外的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。

Google Cloud Shell 設定

雖然可以透過筆電遠端操作 Google Cloud 和 Google Cloud Trace,但在本程式碼研究室中,我們將使用 Google Cloud Shell,這是 Cloud 中執行的指令列環境。

如要從 Cloud Shell 啟用 Cloud Shell,只要按一下「啟用 Cloud Shell」即可 (佈建並連線至環境的作業需要一些時間才能完成)。

30c26f30d17b3d46.png

如果您是首次啟動 Cloud Shell,系統會顯示中繼畫面 (位於摺疊式選單下方),說明這個指令列環境。點選「繼續」後,這則訊息日後就不會再出現。以下是這個初次畫面的樣子:

9c92662c6a846a5c.png

佈建並連至 Cloud Shell 預計只需要幾分鐘。

9f0e51b578fecce5.png

這部虛擬機器搭載您需要的所有開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。本程式碼研究室幾乎所有工作都可在瀏覽器或 Chromebook 上完成。

連線至 Cloud Shell 後,您應會發現自己通過驗證,且專案已設為您的專案 ID。

在 Cloud Shell 中執行下列指令,確認您已通過驗證:

連至 Cloud Shell 後,您應該會看到驗證已完成,專案也已設為獲派的專案 ID PROJECT_ID

gcloud auth list

指令輸出

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

指令輸出

[core]
project = <PROJECT_ID>

如果專案未設定,請發出下列指令:

gcloud config set project <PROJECT_ID>

Cloud Shell 也會預設設定部分環境變數,這些變數在您執行後續指令時可能很有用。

echo $GOOGLE_CLOUD_PROJECT

指令輸出

<PROJECT_ID>

範例應用程式

我們已將本專案所需的資料都放到 Git 存放區中。這個存放區包含幾個範例應用程式,您可以選擇其中任何一個用於本練習。

Git 存放區連結:https://github.com/rominirani/cloud-code-sample-repository

3. 部署 API 應用程式

範例應用程式或 API 的用途為何?

我們的應用程式是簡單的 Inventory API 應用程式,會公開 REST API 端點,並提供幾項作業來列出商品目錄項目,以及取得特定項目的商品目錄數量。

部署 API 後,假設 API 託管於 https://<somehost>,我們就能存取 API 端點,如下所示:

  • https://<somehost>/inventory

系統會列出所有產品項目,以及現有庫存量。

  • https://<somehost>/inventory/{productid}

系統會提供單一記錄,其中包含該產品的產品 ID 和現有庫存量。

傳回的回應資料為 JSON 格式。

資料和 API 要求/回應範例

為簡化操作,應用程式並未在後端使用資料庫。內含 3 個範例產品 ID 和現有庫存量。

產品 ID

現有庫存量

I-1

10

I-2

20

I-3

30

API 要求和回應範例如下所示:

API 要求

API 回應

https://<somehost>/inventory

[ { "I-1": 10, "I-2": 20, "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 20}

https://<somehost>/inventory/I-200

{ "productid": I-200, "qty": -1}

複製存放區

雖然可以透過筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是可在雲端執行的指令列環境。

在 GCP 主控台,按一下右上角工具列的 Cloud Shell 圖示:

bce75f34b2c53987.png

佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的內容:

f6ef2b5f13479f3a.png

這部虛擬機器搭載各種您需要的開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。本實驗室的所有工作都可在瀏覽器上完成。

設定 gcloud

在 Cloud Shell 中設定專案 ID,並儲存為 PROJECT_ID 變數。

PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID

現在,請執行下列指令:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git 

這樣一來,這個資料夾中就會建立名為 cloud-code-sample-repository 的資料夾。

(選用) 在 Cloud Shell 上執行應用程式

如要在本機執行應用程式,請按照下列步驟操作:

  1. 在終端機中,使用下列指令前往 Python 版本的 API:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. 在終端機中提供下列指令 (撰寫本文時,Cloud Shell 已安裝 Python 3.9.x,我們將使用預設版本。如果您打算在筆電上在本機執行,可以使用 Python 3.8 以上版本:
$ python app.py
  1. 您可以執行下列指令,在本機啟動 Python 伺服器。

26570f586acaeacf.png

  1. 這會在通訊埠 8080 上啟動伺服器,您可以透過 Cloud Shell 的「網頁預覽」功能在本機測試。按一下「Web Preview」(網頁預覽) 按鈕,如下所示:

675d9b3097a6209c.png

按一下「透過以下通訊埠預覽:8080」。

  1. 系統會開啟瀏覽器視窗。您會看到 404 錯誤,這沒關係。修改網址,將主機名稱後的內容改為 /inventory

舉例來說,在我的電腦上,看起來會像這樣:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

系統會顯示庫存商品清單,如先前所述:

ef6afb0184c58870.png

  1. 現在前往終端機並按下 Ctrl-C,即可停止伺服器。

部署應用程式

現在要將這個 API 應用程式部署至 Cloud Run。這個程序會使用 glcoud 指令列用戶端執行指令,將程式碼部署至 Cloud Run

在終端機中執行下列 gcloud 指令:

$ gcloud run deploy --source .

系統會詢問多個問題 (如果要求授權,請繼續操作),部分重點如下。視設定而定,您可能不會收到所有問題,以及您是否已在 Google Cloud 專案中啟用特定 API。

  1. 服務名稱 (python-flask-api):您可以沿用這個預設名稱,也可以選擇其他名稱,例如 my-inventory-api
  2. 專案 [project-number] 未啟用 API [run.googleapis.com]。Would you like to enable and retry (this will take a few minutes)? (y/N)? 是
  3. 請指定區域:輸入數字,選擇您想要的區域。
  4. 專案 [project-number] 未啟用 API [artifactregistry.googleapis.com]。Would you like to enable and retry (this will take a few minutes)? (y/N)? 是
  5. 從來源部署時,需要 Artifact Registry Docker 存放區來儲存建構的容器。系統會在 [us-west1] 區域中建立名為 [cloud-run-source-deploy] 的存放區。

Do you want to continue (Y/n)? 是

  1. Allow unauthenticated invocations to [my-inventory-api] (y/N)? 是

最終,這會啟動程序,將您的原始碼容器化、推送至 Artifact Registry,然後部署 Cloud Run 服務和修訂版本。請耐心等待這項程序完成 (可能需要 3 到 4 分鐘),完成後您會看到服務網址。

以下是執行範例:

7516696ea5b3004b.png

測試應用程式

應用程式部署至 Cloud Run 後,您就可以透過下列方式存取 API 應用程式:

  1. 記下上一個步驟中的服務網址。舉例來說,在我的設定中,這項資訊會顯示為 https://my-inventory-api-bt2r5243dq-uw.a.run.app。我們將此網址稱為 <SERVICE_URL>
  2. 開啟瀏覽器,存取下列 3 個 API 端點的網址:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

應與我們在先前章節中提供的規格相同,並附上 API 要求和回應範例。

從 Cloud Run 取得服務詳細資料

我們已將 API 服務部署至無伺服器運算環境 Cloud Run。我們隨時可以透過 Google Cloud 控制台前往 Cloud Run 服務。

在主選單中,前往 Cloud Run。畫面上會顯示您在 Cloud Run 中執行的服務清單。您應該會看到剛部署的服務。視您選取的名稱而定,畫面應會顯示類似下列的內容:

10d2c363241d789c.png

按一下服務名稱即可查看詳細資料。詳細資料範例如下:

1ec2c9e45ff1a2db.png

請注意網址,這就是服務網址,您可以在瀏覽器中輸入這個網址,存取我們剛部署的 Inventory API。您可以查看指標和其他詳細資料。

讓我們立即開始使用 Google Cloud 作業套件。

4. 設定資訊主頁

Cloud Monitoring 提供的一項便利功能,就是 Google Cloud 中多項資源的隨附 (OOTB) 資訊主頁。因此,使用標準指標設定資訊主頁的初始程序快速又方便。

接著來看看如何為剛部署至 Cloud Run 的 API 服務執行這項操作。

「服務」專屬資訊主頁

我們已將 API 服務部署至 Cloud Run,現在來看看如何設定資訊主頁,以便將各種指標 (包括服務延遲時間) 視覺化。

首先,請前往控制台的「Monitoring」→「Overview」,如下所示:

c51a5dda4ab72bbf.png

「總覽」頁面會顯示您在 Monitoring 中設定的多項內容,例如資訊主頁、快訊、運作時間檢查等。

2758f61f1e7f1dca.png

現在,請點選側邊主選單中的「資訊主頁」。系統會顯示以下畫面:

c9110b6f065100da.png

按一下「樣本資料庫」。畫面會顯示 Google Cloud 中可用的 Out-Of-The-Box (OOTB) 資訊主頁清單,涵蓋多個資源。具體來說,請向下捲動清單,然後選取「Google Cloud Run」,如下所示。

ddac4038d4fa91ae.png

畫面會顯示 Google Cloud Run 適用的標準資訊主頁清單。我們已在 Cloud Run 上部署服務,因此對這項功能感興趣。

您會看到一個 Cloud Run 監控資訊主頁。按一下「預覽」連結,即可查看 Cloud Run 監控服務可用的標準圖表 (指標) 清單。只要按一下「IMPORT SAMPLE DASHBOARD」(匯入範例資訊主頁),即可將所有這些圖表匯入自訂資訊主頁。系統會顯示資訊主頁畫面,並預先填入名稱,如下所示:

531cb8434b18193a.png

如要返回,請按一下資訊主頁名稱左側的向左箭頭,位於左上角。系統會顯示資訊主頁清單,您應該會看到剛建立的新資訊主頁。

按一下該資訊主頁連結,即可監控多項可用的指標。這些指標包括延遲時間、要求計數、容器指標等。

您也可以選取星號圖示,將任何資訊主頁標示為我的最愛,如下所示:

fc993d1a17415550.png

這樣一來,資訊主頁就會新增至 Monitoring 的「總覽」畫面,方便您前往常用資訊主頁。

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

太棒了!您剛才新增了自訂資訊主頁,用來監控 Cloud Run 服務。做得好!

5. 運作時間檢查

在本節中,我們將為已部署的 API 服務設定正常運作時間檢查。公開運作時間檢查可從全球多個位置,對公開網址或 Google Cloud 資源發出要求,確認資源是否會回應。

在本例中,資源是我們部署至 Cloud Run 的 API 服務。這個網址是 API 服務公開的特定端點,用來指出服務的健康狀態。

在 API 服務程式碼範例中,我們公開了 /healthy 端點,會傳回「All Izz Well」字串值。因此,我們只需要定義運作時間檢查,檢查 https://<SERVICE_URL>/healthy 是否傳回「All Izz Well」字串。

建立通知管道

建立運作時間檢查前,請務必先設定通知管道。通知管道是一種媒介,當任何受監控資源發生事件/問題時,系統會透過該管道發出警示。通知管道的例子是電子郵件,如果發生快訊等情況,您會收到電子郵件。

目前我們要設定電子郵件通知管道,並使用電子郵件地址進行設定,這樣一來,系統發出任何快訊時,我們就會收到通知。

如要建立通知管道,請按照下列步驟操作:

前往 Google Cloud 控制台主選單中的「Monitoring」→「Alerting」,如下所示:

9f87859064c63b63.png

系統會顯示包含快訊、政策等資訊的頁面。目前畫面頂端會顯示「編輯通知管道」連結。按一下該按鈕。

5ab54f42e6f7b99.png

系統會顯示各種通知管道的清單,如下所示:

cd89b1ca9e1de87c.png

找到「電子郵件」部分,然後點按該列的「新增」。系統會顯示電子郵件設定詳細資料,如下所示:

d6ed98ffd0427fa3.png

輸入電子郵件地址和顯示名稱,如下所示。按一下「儲存」

這樣就完成電子郵件通知管道的建立作業。現在開始設定運作時間檢查。

建立運作時間檢查

在 Google Cloud 控制台的主選單中,前往「Monitoring」→「Uptime checks」。頂端會顯示「建立正常運作時間檢查」連結。按一下該按鈕。

484541aec65e605e.png

系統會顯示一系列步驟,引導您完成運作時間檢查的設定。

第一步是設定目標詳細資料,也就是我們部署的 Cloud Run 服務相關資訊。填寫完畢的表單如下所示:

4e2bb9fe022320f7.png

您可以選取下列不同值:

  • 通訊協定:HTTPS
  • 資源類型:選取「Cloud Run 服務」。請注意,這項服務支援其他資源,您也可以對這些資源設定正常運作時間檢查。
  • Cloud Run 服務:選取「my-inventory-api」或 Cloud Run 服務的特定名稱。
  • 路徑為 /healthy,因為我們傳回的字串是「All Izz Well」,而我們想檢查這個字串。

按一下「繼續」前往下一個步驟。下一步是「回應驗證」步驟,如下所示:

a6011ac2ab3e0f10.png

您可以看到我們正在啟用「內容比對」檢查,然後設定 /healthy 端點傳回的回應為「All Izz Well」。按一下「繼續」,前往下一個步驟,設定快訊和通知管道 (如果運作時間檢查失敗,系統會透過該管道發出快訊)。

d9738670efcb999f.png

在這個步驟中,請為快訊命名。我選擇的名稱是「Inventory API Uptime Check failure」,但您可以選擇自己的名稱。請務必從先前設定的清單中選取正確的通知管道。

按一下「檢查」,即可在最後一個步驟中檢查我們設定的運作時間檢查。

在最後一個步驟中,為運作時間檢查命名 (例如「Inventory API Uptime Check」),然後測試檢查設定是否正確。按一下「測試」按鈕即可。

80375bfab97fc313.png

請繼續完成程序 (按一下左側的「建立」按鈕)。Google Cloud 會指示在不同區域設定的正常運作時間檢查探測器 Ping 網址,並收集這些回應。幾分鐘後,請前往「Monitoring」→「Uptime checks」部分,理想情況下,您應該會看到所有綠色信號,表示可從不同探測器連上網址。

df17555ddbee1127.png

如果任何探測器在一段時間內 (可設定) 失敗,您會在設定的電子郵件管道收到警報通知。

「設定運作時間檢查」部分到此結束。做得好!

6. 指標探索工具

Cloud Monitoring 會公開多項 Google Cloud 產品的數千個標準指標。您可以調查、查詢、轉換為圖表、新增至資訊主頁、發出快訊等。

本節的目標是:

  1. 瞭解如何查看各種指標,然後我們會調查 API 服務的特定指標(延遲時間)
  2. 將該指標轉換為圖表和自訂資訊主頁,以便隨時以視覺化方式呈現指標。

探索 Inventory API 服務的延遲時間指標

前往 Google Cloud 控制台主選單的「Monitoring」→「Metrics Explorer」。系統會將你導向 Metrics Explorer 畫面。點按「選取指標」。您現在可以瀏覽多個產生指標的有效資源。

由於我們處理的是 Cloud Run 服務,請依序點選「Cloud Run Revision」(Cloud Run 修訂版本)、「Request Latency」(要求延遲) 類別和特定指標,如下所示:

7609d8156c8f1384.png

按一下「套用」。圖表會顯示要求延遲時間。如要將小工具類型變更為折線圖,請使用右側的「顯示設定」,如下所示:

46086ac0a8eaf3d7.png

系統會顯示延遲圖表,如下所示:

ad97f749eeacaa95.png

建立圖表和自訂資訊主頁

讓我們繼續儲存這張圖表。按一下「Save Chart」(儲存圖表),然後使用詳細資料,如下所示:

35d1788d5f0cb3c4.png

請注意,我們是建立新資訊主頁,而不是將其儲存至現有資訊主頁。按一下「儲存」按鈕。新建立的資訊主頁會新增至資訊主頁清單,如下所示:

c9cdcd63d5823abd.png

按一下我們建立的特定資訊主頁,即可查看詳細資料。

27354d8310d8a2d7.png

至此,我們已完成透過 Metrics Explorer 探索各種指標,以及如何建立自訂資訊主頁的章節。

7. Cloud Logging

在本節中,我們將探索 Cloud Logging。Cloud Logging 隨附 Logs Explorer 介面,可協助您瀏覽及深入瞭解各種 Google 服務和自有應用程式產生的記錄。

在本節中,我們將瞭解記錄瀏覽器,並模擬幾則記錄訊息,然後透過「以記錄為基礎的指標」功能搜尋這些訊息,並轉換為指標。

記錄檔探索工具

如要前往記錄檔探索工具,請在 Google Cloud 主控台中依序選取「Logging」→「Logs Explorer」,如下所示:

df05f5b33fd5695a.png

系統會顯示記錄介面,您可以在其中選取/取消選取各種資源 (專案、Google Cloud 資源、服務名稱等),以及記錄層級,視需要篩選記錄訊息。

e7fa15bcf73f3805.png

上圖顯示 Cloud Run 修訂版本 (即我們部署的 Cloud Run 服務) 的記錄清單。您會看到多個正常運作時間檢查要求,這些要求會連線至我們設定的 /healthy 端點。

搜尋警告

提供非 I-1、I-2 和 I-3 的產品 ID,模擬對商品目錄服務發出的幾個無效要求。舉例來說,錯誤的要求如下:

https://<SERVICE_URL>/inventory/I-999

現在,當查詢中提供不正確的產品 ID 時,我們會搜尋 API 產生的所有警告。

在查詢方塊中,插入下列查詢參數:

resource.type="cloud_run_revision"

textPayload =~ "Received inventory request for incorrect productid"

如下所示:

b3ee512a0c9c5c7b.png

按一下「執行查詢」。系統隨即顯示所有要求,以及有這個問題的要求。

5fdbd7c23bf4694f.png

記錄指標

讓我們建立自訂記錄指標,追蹤這些錯誤。我們想瞭解是否有大量呼叫使用錯誤的產品 ID。

如要將上述內容轉換為錯誤指標,請按一下記錄檔探索工具中的「建立指標」按鈕。

fa9a5e04922aa412.png

系統會顯示表單,供您建立指標定義。選擇「計數器指標」,然後輸入指標名稱 (inventory_lookup_errors) 和說明的詳細資料 (如下所示),然後按一下「建立指標」

70b5719b472d4d02.png

這會建立計數器指標,您應該會看到如下所示的訊息:

ab9058028185e4d5.png

從主選單前往「記錄」→「記錄指標」,您應該會在「使用者定義的指標」清單中看到我們定義的自訂指標,如下所示:

7d186e90559cf8e1.png

在項目結尾,你會看到三個直向點,點選即可查看可對這個自訂指標執行的作業。清單應與下方顯示的清單類似。按一下「在 Metrics Explorer 中查看」選項。

7586f0789a0bdb41.png

這應該會帶我們前往上一節介紹的 Metrics Explorer,只是現在系統會預先填入資料。

7ee7403d0639ce25.png

按一下「儲存圖表」。請使用下列「儲存圖表」選項的值:

9009da45f76eb4c5.png

這樣就會建立新的資訊主頁,您可以在其中查看商品目錄搜尋錯誤,並在資訊主頁清單中找到該頁面。

201ed66957cb64f9.png

太棒了!您已從記錄檔建立自訂指標,並將其轉換為圖表,顯示在自訂資訊主頁中。這有助於我們追蹤使用錯誤產品 ID 的通話次數。

8. 快訊政策

在本節中,我們將使用建立的自訂指標,監控資料是否達到門檻 (即錯誤數量是否超過特定門檻),並在達到門檻時發出快訊。也就是說,我們要設定快訊政策。

建立快訊政策

讓我們前往「廣告空間搜尋資訊主頁」。系統會顯示我們建立的圖表,其中會註記「Inventory Lookup Errors」(目錄查詢錯誤),如下所示:

3591a1dd91a8b9fd.png

系統會顯示目前的指標資料。首先,請編輯指標,如下所示 (按一下「編輯」按鈕):

5e76fc20d8387984.png

系統會顯示指標詳細資料。我們要將圖表從顯示錯誤率轉換為顯示總和,也就是錯誤數。要變更的欄位如下所示:

65ccd1eaca607831.png

按一下右上角的「套用」,系統會返回「指標」畫面,但這次您可以看到比對期間的錯誤總數與錯誤率。

我們要建立快訊政策,在錯誤數量超過門檻時通知我們。按一下圖表右上角的 3 點圖示,然後從選項清單中按一下「轉換為快訊圖表」,如上圖所示。

cc9eec48b9bfbc92.png

您應該會看到如下畫面:

6202ad1e88679a78.png

點選「下一步」,系統會顯示可設定的門檻值。我們在這裡採用的樣本門檻為 5,但您可以視需要選擇。

734f809cc802ab78.png

按一下「下一步」,開啟「通知」表單

f2d84fb85c2520cb.png

我們已選取先前建立的電子郵件管道做為通知管道。您可以填寫其他詳細資料,例如說明文件 (這類文件會隨系統發出的快訊提供)。按一下「下一步」即可查看摘要並完成程序。

c670b29da70c4655.png

建立這項警告政策後,系統會將其列入警告政策清單,如下所示。如要查看快訊政策清單,請前往「Monitoring」→「Alerting」。掃描頁面中的「政策」部分,查看目前已設定的政策清單。

154da627959c54f3.png

太棒了!您已設定自訂快訊政策,在查詢 Inventory API 時,如果錯誤率提高,系統就會通知您。

9. Service Monitoring (選用)

在本節中,我們將根據網站可靠性工程 (SRE) 原則,為服務設定 SLI/SLO。您會發現 Cloud Monitoring 可自動探索您在 Cloud Run 中部署的服務,並自動計算可用性、延遲時間等重要 SLI,以及錯誤預算,讓您更輕鬆地掌握服務狀態。

接下來,我們要為 API 服務設定延遲時間 SLO。

為 Inventory Service 設定延遲時間 SLO

在 Cloud 控制台的主選單中,依序點選「Monitoring」→「Services」。系統會顯示已設定服務監控的服務清單。

目前我們沒有任何已設定服務水準指標/服務等級目標監控的服務,因此清單是空白的。按一下頂端的「定義服務」連結,先定義 / 識別服務。

42d14515a481213.png

系統會自動探索適合用來監控服務等級目標的服務。這項服務能夠探索 Cloud Run 服務,因此部署至 Cloud Run 的 Inventory API 服務會顯示在清單中。

522aaba719f85c54.png

您看到的顯示名稱可能不同,取決於將服務部署至 Cloud Run 時的選擇。點選「提交」按鈕。系統隨即顯示下圖畫面:

eca08010ab6858a9.png

您可以點選「建立 SLO」。現在您可以從系統自動計算的 SLI 中選取。

556e49b10d22e5ac.png

我們選擇「延遲 SLI」做為起點。按一下「繼續」。接著會看到畫面,顯示這項服務目前的效能和一般延遲時間。

a9cc6f6778c13b52.png

我們輸入門檻值,也就是要達成的目標:300 毫秒。您可以視需要選擇其他值,但請注意,這會影響您相應定義的錯誤預算。按一下「繼續」

現在請按照下圖設定服務水準目標 (目標和測量視窗):

e1fc336d4191c08e.png

也就是說,我們選取「滾動」類型的評估期,並評估 7 天的資料。同樣地,我們選擇 90% 的目標。也就是說,API 服務的 90% 要求應在 300 毫秒內完成,且這項指標應以 7 天為單位進行評估。

按一下「繼續」。這時會顯示摘要畫面,按一下「更新 SLO」按鈕即可確認。

f2540173d9f4a4b7.png

系統會儲存服務等級目標定義,並自動計算錯誤預算。

76393df0e189104.png

你可以嘗試以下幾種做法:

  1. 透過多次呼叫練習使用 API,瞭解服務的效能,以及這對剩餘錯誤預算的影響。
  2. 修改原始碼,在某些呼叫中隨機導入一些額外延遲 (休眠)。這會導致多項呼叫的延遲時間變長,並對錯誤預算造成負面影響。

10. 恭喜

恭喜!您已成功將範例應用程式部署至 Google Cloud,並瞭解如何使用 Google Cloud 作業套件監控應用程式的健康狀態!

涵蓋內容

  • 將服務部署至 Google Cloud Run。
  • 設定 Google Cloud Run 服務的資訊主頁。
  • 運作時間檢查。
  • 設定自訂記錄指標,並根據該指標建立資訊主頁/圖表。
  • 探索 Metrics Explorer 並設定資訊主頁/圖表。
  • 設定快訊政策。
  • 在 Google Cloud 中設定服務監控的服務水準指標/服務水準目標。

注意:如果您是使用自己的帳戶和 Google Cloud 專案執行 Codelab,系統可能會繼續對已分配的資源收取費用。因此,完成實驗室後,請刪除專案和資源。

後續步驟

歡迎參加這項 Cloud Skills Boost 任務,進一步瞭解 Google Cloud 作業套件。

其他資訊