Cloud Functions 上的監控與紀錄

概述

你可以在 GCP 主控台檢視你的 Cloud Functions 的執行時間,執行次數,記憶體用量。 這些指標在 Stackdriver Monitoring 上也有,你可以在這裡根據這些指標來設定你的客製化警告。 更多資訊請參考 Stackdriver Monitoring 文件




設定及要求


在你按下 Start Lab 按鈕之前

詳讀所有的教學。Labs 是有時間限制的,而且你不可以停止時間倒數。倒數計時器在你按下 Start Lab 按鈕後開始倒數,上面顯示的時間為你還能使用 Cloud 資源的時間。

Quiklabs 的手把手環境,讓你可以在真實環境中來操作進行 Quiclabs 上提供的課程,而不是在一個模擬或是展示的環境。我們透過提供你一個全新的、暫時的帳號密碼,在計時器歸零之前,你可以用來登入並存取 Google Cloud Platform。

你需要什麼?

要完成這個 lab ,你需要:

  • 一個一般的網路瀏覽器(推薦 Chrome)
  • 完成這個 lab 的時間

備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab

現在你已經開始你的 lab, 你將會登入 Google Cloud Shell 主控台,然後開啟命令列工具

如何開始你的 lab ,然後登入 Console?

  1. 按下 Start Lab 按鈕。如果你需要付費,會有一個彈出視窗來讓你選擇付費的方式。在左方你會看到一個面板,上面有暫時的帳號密碼,你必須使用這些帳號密碼在此次 lab

  1. 複製 username , 然後點擊 Open Google Console。 Lab 會開啟另外一個視窗,顯示選擇帳號的頁面

tip: 開啟一個全新的視窗,然後跟原本的頁面並排

  1. 選擇帳號頁面, 點擊 Use Another Account

  1. 登入頁面開啟,貼上之前複製的 username 以及 password ,然後貼上

重要:必須使用之前於 Connection Details 面板 取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號,請不要用在這裡(避免產生費用)

  1. 點擊並通過接下來的頁面:
    • 接受terms以及conditions
    • 不要增加recovery optoinstwo factor authentication (因為這只是一個臨時帳號)
    • 不要註冊免費體驗

稍待一些時候, GCP 控制台將會在這個視窗開啟。

注意:按下左上方位於Google Cloud Platform 隔壁的 Navigation menu ,你可以瀏覽選單,裡面有一系列的 GCP 產品以及服務


啟動 Google Cloud Shell

Google Cloud Shell 是載有開發工具的虛擬機器。它提供了5GB的 home 資料夾,並且運行在 Google Cloud 上。 Google Cloud Shell 讓你可以利用 command-line 存取 GCP 資源

  1. GCP 控制台 ,右上的工具列,點擊 Open Cloud Shell 按鈕

  1. 在打開的對話框裡,按下 START CLOUD SHELL:

你可以立即按下 START CLOUD SHELL 當對話視窗打開。

連結並提供環境會需要一點時間。當你連結成功,這代表你已成功獲得授權,且此專案已被設為你的專案ID,例如:

gcloudGoogle Cloud Platform 的 command-line 工具,他已事先被安裝在 Cloud Shell 並且支援自動補齊

使用這個 command ,你可以列出有效帳戶名稱:

gcloud auth list

輸出:

Credentialed accounts:
- <myaccount>@<mydomain>.com (active)

範例輸出:

Credentialed accounts:
- google1623327_student@qwiklabs.net

你可以使用以下 command 來列出專案 ID

gcloud config list project

輸出:

[core]
project = <project_ID>

範例輸出:

[core]
project = qwiklabs-gcp-44776a13dea667a6

gcloud 的完整文件可以參閱 Google Cloud gcloud Overview




建立 Stackdriver 工作區

Navigation menu, 點擊 Monitoring

當你看到 Stackdriver 的主控台時, 工作區已準備完畢




在 Stackdriver 檢視 Cloud Functions 的紀錄 & 指標

現在你將會建立一個可以被監控的 Hello World 的 cloud function

回到主控台,在左邊的選單,點擊 Cloud Functions, 然後 Create function

使用以下的設定來建立你的 function:

  • Name: qwiklabsDemo
  • Trigger: HTTP
  • Index.js tab: 將 placeholder 替換成下面的代碼
/**
* Cloud Function.
*
*
*/
exports.qwiklabsDemo = function qwiklabsDemo (req, res) {
res.send(`Hello ${req.body.name || 'World'}!`);
console.log(req.body.name);
}
  • Function to execute: qwiklabsDemo

當你準備好時,點擊 Create

cloud function 將會自動部署,且部署完畢後你可以在 Overview 頁面看到它。 這會需要幾分鐘的時間。 當你可以在名字的旁邊看到一個綠色的確認符號,這代表 cloud function 已經部署完畢。


測試進度

點擊 Check my progress 來確認目前的進度。如果你已經完成目前的進度,你將獲得一個評價分數。

在 Cloud Shell, 執行以下的代碼來下載一個叫做 vegeta 的工具,它可以讓我們傳送一些測試用流量到 cloud function

wget 'https://github.com/tsenart/vegeta/releases/download/v6.3.0/vegeta-v6.3.0-linux-386.tar.gz'

輸入以下指令來解壓縮 vegeta

tar xvzf vegeta-v6.3.0-linux-386.tar.gz

在主控台,點擊 cloud function 的名字, 然後點擊 trigger, 最後點擊下面的 URL

如果新的視窗開啟,並且你有看到 Hello World!, 這代表 cloud function 正常運作中。

現在傳送一些流量到 cloud function

執行以下的代碼,將 YOUR_PROJECT_ID 替換成你的 Project ID

echo "GET https://us-central1-<YOUR_PROJECT_ID>.cloudfunctions.net/qwiklabsDemo" | ./vegeta attack -duration=300s > results.bin



建立基於紀錄的指標

現在你將建立一個分佈類型 (Distribution type) 的紀錄指標,使用正則表達式,從記錄數據的 textPayload 欄位取得延遲的值

點擊 Navigation menu 回到左方選單,然後在 Stackdriver section 區塊點擊 Logging, 你將會被引導到紀錄畫面

從第一個下拉選單選擇 Cloud Function,然後從所有的紀錄下拉選項裡選擇 cloud-functions, 然後點擊 OK, 這樣我們只會看到 Cloud Function 的紀錄:

在 *Filter By… 的欄位,輸入 “function execution took” (包含雙引號) 來篩選你的紀錄

然後在畫面上方點擊 Create Metric

在指標編輯器:

  • 將指標命名為 CloudFunctionLatency-Logs
  • 將 Type 改為 Distribution
  • Field Name 請輸入 textPayload
  • 點擊位於 Extraction regular expression 欄位旁的 Build
  • 在 Regular Expression 欄位裡,輸入以下的代碼:
execution took (\d+)

指標編輯器應該看起來像這樣:

點擊 Create Metric

現在你會看到這個使用者自定義的指標已經被加到 Logs-based Metric 頁面


測試進度

點擊 Check my progress 來確認目前的進度。如果你已經完成目前的進度,你將獲得一個評價分數。


Metrics Explorer (指標探索器)

接下來,使用指標探索器來檢視 cloud function 的資料

在 Stackdriver tab 的視窗,到 Resources > Metrics Explorer 來檢視一些 Cloud Functions 的指標。

開始在欄位中輸入 execution, 然後從建議指標中選擇 Executions

在圖表的上方的下拉選單,將圖表類型變更為 stacked bar

現在試試看不同的指標來看看有什麼其他的圖形選項。 點擊 Metric 旁邊的 X, 然後選擇 Execution times

圖表預設為 heatmap, 但你可以更改承認和你喜歡的類型

你也可以檢視不同的加總,例如百分位排名第 95 位:




客製化顯示面板

客製化一個顯示面板是一個非常好的方式來儲存對你來說重要的指標圖表。 你將再次設定這些圖表,但這次他們會儲存在你的顯示面板

在 Stackdriver 主控台,點擊 Dashboards > Create Dashboard

將這個顯示面板取名為 “Results”, 然後點擊 Add Chart

點擊到 Find resource type and metric 欄位,然後選擇我們在上面最後建立的表格的資源類型以及指標, 點擊 Add Chart 來建立下一個

在選擇指標後,圖表會自動被命名, 但你可以重新命名

當你完成這一切,你的圖表將會出現在你的顯示面板,提供一個快速的參考值來顯示目前資源的狀況




測試你的理解

下面有多重選擇的問題來鞏固你對本教程概念的理解,盡你所能的回答吧:




恭喜!

你已完成本教程

Cloud Functions 初探 - 主控台 Sequelize 學習筆記

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×