在 Compute Engine 中,您可以透過用量匯出功能,將 Compute Engine 使用情形的詳細報表匯出至 Cloud Storage 值區。
用量報表提供的資訊與資源的生命週期相關。舉例來說,您可以查看專案中有多少個 VM 執行個體正在執行 n2-standard-4 機器類型,以及每個執行個體已執行多久時間。您也可以查看永久磁碟的儲存空間,以及其他 Compute Engine 功能的相關資訊。
不過報表並不會提供帳單資訊或活動資訊 (如 API 要求等)。如需帳單資訊,請參閱「將 Cloud Billing 資料匯出至 BigQuery」。如要查看Google Cloud 資源中的管理活動和存取權記錄,請參閱稽核記錄。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
- 設定預設地區和區域。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
Python
如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
總覽
啟用用量報表後,Compute Engine 會將兩種類型的報表傳送到您指定的 Cloud Storage 值區:
每日用量報表
系統每天都會發送這種報表,提供您前一天使用情形的資料。每個報表均為單獨的檔案,內容包含上一段期間的資料。這些報告中的資料不可變更,也就是說,如果資料不正確,Compute Engine 不會更新或重新編寫記錄檔。但會在下一份傳送到值區的新報表中修正資料。
每日用量報表的名稱格式如下:
<bucket>/<reportprefix><numeric_projectid><YYYYMMDD>.csv
每月總計報表
系統每天會發送單一的每月總計報表,裡面會包含該專案截至當天的每月用量資料 (當天的用量不包含在內)。系統每天均會使用新資料覆寫每月用量報表,顯示資源到該日為止每個月的使用情況。每項專案每月只會產生一個每月用量資料檔案。
每月總計報表的名稱格式如下:
<bucket>/<reportprefix><numeric_projectid><YYYYMM>.csv
每日報表與每月報表檔案的名稱十分相似,差別僅在於日期格式。每月總計報表的日期格式為年度與月份 (
YYYYMM);每日使用情況報表則是使用年度、月份、日期 (YYYYMMDD)。
所有的用量報表皆以逗號分隔值 (CSV) 格式傳送,並使用前置字串 <report_prefix>。使用者可以自訂 <report_prefix> 的值,如果使用者未指定報表的前置字串,報表會預設使用 usage_gce 前置字串。提醒您,所有時間皆以太平洋時間 (PST) 提供。
必要條件
開始使用 Compute Engine 用量匯出功能前,請先完成下列事項:
- 您必須先建立值區,才能儲存用量記錄。
設定用量報表
首次啟用使用量匯出功能後,系統會在隔天傳送第一份報告,詳細列出前一天的使用量。之後將以 24 小時為間隔傳送報表。
啟用這項功能後,必須定義兩個屬性:
接收報表的 Cloud Storage 值區。
您可以選擇擁有的任何 Cloud Storage 值區,包含不同專案的值區在內。該值區必須在您開始匯出報表前便已經存在,而且您還需要有值區的擁有者權限。Cloud Storage 按照使用量收費,建議您參閱 Cloud Storage 定價以瞭解服務產生的費用。
可以讀取 Cloud Storage bucket 的使用者都可以檢視 bucket 中的用量報表。可以寫入 bucket 的使用者,都能在 bucket 中建立、查看及修改現有檔案。詳情請參閱「存取權控管」一節。
檔案的報表前置字串
您可以指定用量報表所用的報表前置字串,用量報表的檔案名稱將會包含這個前置字串。舉例來說,如果將「my-cool-project-report」指定為報表前置字串,則檔案名稱的格式看起來會與
my-cool-project-report_1234567890_20131230.csv相似。如果沒有指定報表前置字串,系統會使用預設前置字串usage_gce。
決定上述兩種屬性後,您可以按照下列步驟啟用用量匯出功能:
gcloud
使用 gcloud compute project-info set-usage-bucket 指令啟用這項功能:
gcloud compute project-info set-usage-bucket --bucket BUCKET_NAME --prefix PREFIX
更改下列內容:
BUCKET_NAME是現有值區的名稱,用於接收使用情形報表。名稱的格式必須為gs://bucket-name或https://storage.googleapis.com/bucket-name。執行這項指令的使用者必須是 bucket 的擁有者。PREFIX是使用情形報表名稱的前置字元 (選填)。如未指定,預設前置字串為usage_gce。
Python
如要啟用用量匯出功能,請使用 Projects 集合中的 set_usage_export_bucket() 方法。下列範例使用 Python 適用的 Cloud 用戶端程式庫:
詳情請參閱 projects.setUsageExportBucket 的 REST 參考說明文件。
下載使用情況匯出報表
開始在 bucket 中接收用量報表後,請下載報表,就像從 Cloud Storage 下載其他物件一樣。詳情請參閱「下載物件」一文。
支援的指標
每日用量報表提供下列資源的相關資訊:
- 虛擬機器
- 永久磁碟
- 映像檔
- 快照
- 靜態 IP 位址
- 負載平衡器
- 預留項目
每個資源的相關資訊均以下列指標呈現:
| 指標名稱 | 指標屬性 |
|---|---|
| 報表日期 |
|
| MeasurementId |
|
| 數量 |
|
| 單位 |
|
| 資源 URI |
|
| ResourceId |
|
| 位置 |
|
報表中各項目的範例如下:
| 報表日期 | MeasurementId | 數量 | 單位 | 資源 URI | ResourceId | 位置 |
|---|---|---|---|---|---|---|
| 02/13/2019 |
com.google.cloud/services/compute-engine/VmimageE2Standard_2
|
86400 | 秒 |
https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-instance
|
16557630484 | us-central1-a |
存取權控制
當您啟用 Cloud Storage 值區的用量匯出功能後,Compute Engine 會自動加入值區的寫入權限清單中,以便傳送用量報表。只要 Compute Engine 擁有值區的存取權,且用量匯出功能已啟用,Compute Engine 就會繼續將用量報表匯出至指定的 Cloud Storage 值區。
您可以查看 bucket 的 IAM 政策是否新增了下列身分,以辨認 Compute Engine 是否有 bucket 的存取權:
cloud-cluster-analytics-export@google.com
身為專案擁有者的使用者均有 Cloud Storage bucket 的完整存取權,其他使用者 (例如寫入者和讀取者) 則有不同程度的 bucket 存取權。如要瞭解 bucket 的 IAM,請參閱 Cloud Storage 的 IAM。
如果您停用用量匯出功能,Compute Engine 會自動移除其對值區的寫入權限。
如果您修改 cloud-cluster-analytics-export@google.com 帳戶的權限,然後停用用量匯出功能,Compute Engine 會停用該功能,但不會從專案存取權清單中移除帳戶。您可以手動移除帳戶。
確認是否啟用用量報表
您可以使用下列指令取得專案資訊,以查看專案的用量匯出功能設定:
gcloud compute project-info describe
尋找 usageExportLocation 欄位:
+-------------------------+----------------------------------------------------+ | name | myproject | | description | | | creation-time | 2019-10-18T16:31:52.308-07:00 | | usage | | | snapshots | 1.0/1000.0 | | networks | 2.0/2.0 | | firewalls | 3.0/10.0 | |... | | | usageExportLocation | | | bucketName | https://storage.googleapis.com/usage-export-sample | | reportNamePrefix | | +-------------------------+----------------------------------------------------+
停用使用情況報告
停用用量報表後,Compute Engine 會自動移除本身對 Cloud Storage 值區的寫入權限,並停止傳送新的報表。
gcloud
使用帶有 --no-bucket 旗標的 gcloud compute project-info set-usage-bucket 指令停用用量匯出功能:
gcloud compute project-info set-usage-bucket --no-bucket
Python
如要停用用量匯出功能,請在 Projects 集合中使用 set_usage_export_bucket() 方法,並將 usage_export_location_resource 設為 None。下列範例使用 Python 適用的 Cloud 用戶端程式庫:
後續步驟
- 開啟「將 Cloud Billing 資料匯出至 BigQuery」功能,即可查看帳單記錄。
- 使用 Cloud 稽核記錄追蹤專案中的活動。
- 進一步瞭解 Cloud Storage bucket。
- 使用價格計算工具估算價格。