使用 Looker Studio 圖表呈現費用

您可以搭配使用 Looker Studio 與將 Cloud Billing 資料匯出至 BigQuery 的功能,隨時掌握 Google Cloud 費用。

本文說明如何使用 Cloud Billing 資料設定帳單用量和費用洞察資訊主控台。您可以透過資訊主頁回答有關 Google Cloud 支出的問題,例如「我在 Compute Engine 資源上花了多少錢?」和「哪個環境最花錢?」

Looker Studio 中的圖表範例

你可以按照這篇教學文章設定資訊主頁,或觀看以下影片:

建立資訊主頁副本

Terraform

如要使用 Terraform 建立自己的資訊主頁副本,請先複製可自動執行程序的 GitHub 存放區。這個步驟會使用 Cloud Shell,這是互動式殼層環境,可透過瀏覽器使用。 Google Cloud Cloud Shell 已預先安裝 Terraform。

從較高的層級來看,存放區中的 Terraform 設定會執行下列工作:

  • 建立新的 BigQuery 檢視畫面,從標準費用資料匯出作業擷取資料。
  • 複製資訊主頁範本,並將副本連結至資料的 BigQuery 檢視畫面。
  • 提供副本的 Looker Studio 連結,您可以將副本儲存至 Looker Studio 資訊主頁。
  • 提供 Google Cloud 服務帳戶 ID,您可將其做為資訊主頁的驗證方法。

請按照下列步驟建立資訊主頁:

  1. 在 Cloud Shell 中開啟 GitHub 存放區:

    在 Cloud Shell 中開啟

  2. 建立 Terraform 變數定義檔案,其中包含專案和 BigQuery 資料集的相關資訊。使用下列指令建立名為 variables.tfvars 的檔案:

    cat << EOF > variables.tfvars
     project-id  = "PROJECT_ID"
     bq-dashboard-dataset-name = "DATASET_NAME"
     bq-billing-export-table-id = "PROJECT_ID.DATASET_NAME.TABLE_ID"
     looker-studio-service-agent-name = "LOOKER_STUDIO_AGENT_NAME"
    EOF
    

    變數如下:

    • PROJECT_ID:代管 Cloud Billing 資料集的專案 ID。
    • DATASET_NAME:包含標準費用資料匯出的 BigQuery 資料集。
    • TABLE_ID:包含標準帳單資料匯出的 BigQuery 資料表名稱。
    • LOOKER_STUDIO_AGENT_NAME:Looker Studio 服務專員的電子郵件地址,可從這個頁面取得
  3. 如要將 GitHub 存放區初始化為 Terraform 工作目錄,請執行下列指令:

    terraform init
    
  4. (選用) 如要預覽 Terraform 設定所做的變更,請執行下列 terraform plan 指令:

    terraform plan -var-file=variables.tfvars
    

    系統可能會提示您授權 Cloud Shell 代表您發出 API 呼叫。

  5. 查看 Terraform 變更,並視需要編輯 variables.tfvars 變更任何變數值。準備好建立資源時,請執行下列 terraform apply 指令:

    terraform apply -var-file=variables.tfvars
    

    指令執行完畢後,您會取得為驗證建立的服務帳戶,以及 Looker Studio 資訊主頁的連結。

  6. 複製服務帳戶名稱。設定 Looker Studio 資料來源的驗證時,需要這項資訊。

  7. 按一下 Looker Studio 連結,開啟資訊主頁。

  8. 在 Looker Studio 中,按一下「編輯及共用」即可儲存資訊主頁。 系統提示您查看資料存取權設定時,請按一下「確認並儲存」

  9. 如果系統提示您將資料加入報表,請按一下「加入報表」

您現在可以從 Looker Studio 首頁存取資訊主頁。

Python

如要使用 Python 建立自己的資訊主頁副本,請先複製可自動執行程序的 GitHub 存放區。這個步驟會使用 Cloud Shell,這是互動式殼層環境,可透過瀏覽器使用。 Google Cloud

一般來說,存放區中的設定指令碼會執行下列工作:

  • 在含有標準費用資料匯出的資料集中,建立新的 BigQuery 檢視區塊。
  • 複製資訊主頁範本,並將副本連結至資料的 BigQuery 檢視畫面。
  • 提供副本的 Looker Studio 連結,您可以將副本儲存至 Looker Studio 資訊主頁。

請按照下列步驟建立資訊主頁:

  1. 在 Cloud Shell 中開啟 GitHub 存放區:

    在 Cloud Shell 中開啟

  2. 請前往 billboard 目錄:

    cd examples/billboard
    
  3. 執行下列指令,為指令碼設定 Python 環境:

    rm -rf bill-env
    python3 -m venv bill-env
    source bill-env/bin/activate
    pip install -r requirements.txt
    
  4. 執行指令碼來建立資訊主頁。您可能需要授權 Cloud Shell 代表您發出 API 呼叫:

    python billboard.py \
      -pr 'PROJECT_ID' \
      -se 'STANDARD_BILLING_EXPORT_DATASET' \
      -bb 'BILLBOARD_DATASET'
    

    變數如下:

    • PROJECT_ID:用於代管 Cloud Billing 資料集的專案 ID。
    • STANDARD_BILLING_EXPORT_DATASET:包含標準用量費用資料匯出的 BigQuery 資料集。
    • BILLBOARD_DATASET:BigQuery 資料集名稱,用於建立資訊主頁的 BigQuery 檢視區塊,例如 example_dashboard_view。 如果沒有檢視畫面的資料集,指令碼會建立同名的新資料集。

    指令碼執行完畢後,系統會提供 Looker Studio 連結,方便您前往資訊主頁。

  5. 按一下 Looker Studio 連結,開啟資訊主頁。

  6. 在 Looker Studio 中,按一下「編輯及共用」即可儲存資訊主頁。 系統提示您將資料來源加入報表時,請按一下「加入報表」

您現在可以從 Looker Studio 首頁存取資訊主頁。

(選用) 設定資料來源憑證

根據預設,帳單用量資訊主頁會使用您的憑證存取 BigQuery 資料來源。如要與他人共用資訊主頁,建議使用 Google Cloud 服務帳戶向 BigQuery 資料集進行驗證,這樣資料來源就不會依附於您的憑證。

如果您使用 Terraform 複製資訊主頁,執行 terraform apply 指令時會取得服務帳戶 ID。如果您使用 Python 指令碼,請按照下列步驟手動建立服務帳戶:

  1. 前往 Looker Studio 服務代理說明頁面,取得服務代理的電子郵件地址。

  2. 為 Looker Studio 服務代理程式建立服務帳戶

  3. 在含有資訊主頁 BigQuery 檢視區的專案中,授予服務帳戶下列權限:

    • bigquery.dataViewer
    • bigquery.jobUser
    • iam.serviceAccountTokenCreator

取得服務帳戶 ID 後,請按照下列步驟使用服務帳戶進行驗證:

  1. Looker Studio 首頁開啟資訊主頁。

  2. 按一下「編輯」即可編輯資訊主頁。

  3. 在「資源」選單中,選取「管理已新增的資料來源」。資訊主頁資料來源的名稱開頭為 billing-export-view

  4. 在資料來源的「動作」欄中,按一下「編輯」

  5. 按一下「資料憑證」

  6. 在「更新資料憑證」頁面中,選取「服務帳戶憑證」,然後輸入服務帳戶 ID。

  7. 按一下「更新」即可使用服務帳戶憑證。

  8. 按一下「完成」,儲存對資料來源所做的變更。

  9. 如要查看資訊主頁,請按一下「查看」

更新資訊主頁,使用貴機構的標籤

資訊主頁中的多個圖表 (例如 Cost Reporting: Labels 頁面中的圖表) 都是根據資源標籤產生。如要查看特定標籤的費用明細,請修改預設篩選條件,改用自己的標籤。

  1. Looker Studio 首頁開啟資訊主頁。

  2. 按一下「編輯」即可編輯資訊主頁。

  3. 在「資源」選單中,選取「管理篩選器」

  4. 查看以 labels.keyproject.labels.key 為依據的篩選器,並視需要按一下「編輯」,將標籤鍵變更為貴機構使用的標籤鍵。

    舉例來說,如果您使用標籤鍵 department 依業務單位整理資源,請編輯 business_unit 篩選器,並將 project.labels.key 篩選器變更為 department

  5. 按一下「關閉」即可完成篩選器編輯作業。

在資訊主頁中分析資料

Looker Studio 資訊主頁中的頁面會細分費用資料,方便您查看費用和趨勢的快速摘要,以及取得詳細的支出資訊。

在大多數頁面中,您可以依專案篩選資料,並使用日曆選擇要分析費用的期間。

概略瞭解費用

使用「總覽」頁面,概略查看當月和上個月的淨費用、產生最多費用的服務,以及過去 30 天的每日費用。

您可以在「趨勢」頁面比較不同期間的費用,例如本月與上個月,或是本季與上季。

使用「分析」頁面分析一段時間內的費用,並找出異常狀況,例如支出異常偏高或偏低。

找出費用影響因素

如要找出支出最多的項目,請參閱下列頁面:

  • 每月各服務的費用
  • 每月各專案的費用
  • 依專案、服務和 SKU 計算的費用
  • 按區域計算運費

如要詳細瞭解各項服務的費用,請使用服務專屬頁面。舉例來說,「GKE 叢集」頁面會顯示依 GKE 叢集和命名空間細分的費用。

找出可透過承諾使用折扣節省費用的機會

承諾使用折扣 (CUD):您只要承諾在指定期間內達到一定的資源用量,即可享有折扣價。

資訊主頁中的 CUD 頁面會顯示您可能符合 CUD 資格的 Compute Engine、Cloud SQL 和 Memorystore 用量。如果您已有一或多個 CUD,這些頁面只會顯示現有 CUD 未涵蓋的用量。

查看 Cloud Marketplace 軟體和額外授權的費用

在「Marketplace」Marketplace頁面中,您可以查看從 Cloud Marketplace 購買的軟體費用,例如 Google Cloud NetApp Volumes

您可以在「授權」頁面中,查看額外授權的支出金額,例如 Compute Engine 上的 Windows Server 授權,以及您從 Cloud Marketplace 購買的第三方授權。

依標籤查看費用

您可以自訂資訊主頁的篩選器,使用貴機構的標籤。更新篩選器後,您可以使用下列頁面查看專案和資料夾的費用:

  • 「依應用程式」頁面會顯示標籤鍵 application 下所有資源的費用。舉例來說,如果您有網站和行動應用程式,並分別以 application:webapplication:mobile 標示資源,即可分別查看每個應用程式的費用。

  • 「標籤」頁面會顯示特定標籤的費用,例如成本中心和業務代碼。如果自訂資訊主頁的篩選器,可以變更圖表標題來反映篩選器。

(進階) 修改多個 Cloud Billing 帳戶的資料

如要讓資訊主頁納入多個 Cloud Billing 帳戶的資料,可以修改 BigQuery 檢視畫面,納入所有 Cloud Billing 帳戶的帳單資料匯出內容。

事前準備

如要納入每個 Cloud Billing 帳戶,請按照教學課程先決條件中的所有步驟操作。

更新 BigQuery 檢視畫面,納入其他 Cloud Billing 匯出資料

  1. 在 Google Cloud 控制台開啟「BigQuery」頁面。

    前往「BigQuery」

  2. 選取包含您為資訊主頁建立的資料集的專案。

  3. 在「Explorer」面板中展開專案,然後展開資料集。

  4. 按一下「看板」檢視畫面,即可查看詳細資料。這個檢視畫面會查詢標準費用和用量資料匯出項目。

  5. 按一下「詳細資料」分頁,然後點選「編輯查詢」。檢視區塊的查詢類似於下列查詢:

    SELECT *,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month,
       date(usage_end_time) AS date
    from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s
    WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
    

    其中 PROJECT_ID 是包含 Cloud Billing BigQuery 標準費用資料匯出項目的專案,BILLING_ACCOUNT_EXPORT 則是包含標準費用資料的 BigQuery 資料表名稱。

  6. 複製現有查詢,並在 FROM 子句中,將專案 ID 和 BigQuery 資料表替換為其他 Cloud Billing 帳戶的資訊。

  7. 在兩項查詢之間加入 UNION ALL 運算子,即可合併資料。最終查詢結果應類似下列範例,其中合併了 BILLING_ACCOUNT_1BILLING_ACCOUNT_2 的資料匯出作業,分別位於 PROJECT_ID_1PROJECT_ID_2

    SELECT *, --query for BILLING_ACCOUNT_1
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
      COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
      EXTRACT(DATE FROM _PARTITIONTIME) AS date
    FROM `PROJECT_ID_1.BILLING_ACCOUNT_1_EXPORT` s
    WHERE _PARTITIONTIME >"2021-01-01"
    UNION ALL
    SELECT *, --query for BILLING_ACCOUNT_2
    COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount,
    COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost,
    PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month,
    date(usage_end_time) AS date
    from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s
    WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
    
  8. 針對 billboard_detail 檢視畫面重複上述步驟,查詢詳細的費用和用量資料。

  9. 如果其中一個帳戶使用的幣別不是美元,請重複上述步驟,並使用 currency_conversion_rate 欄將幣別換算為美元,如下列範例所示:

    select *,
      (COALESCE((SELECT SUM(x.amount)
      FROM UNNEST(s.credits) x),0))/currency_conversion_rate AS credits_sum_amount,
        (COALESCE((SELECT SUM(x.amount)
        FROM UNNEST(s.credits) x),0))/currency_conversion_rate + cost/currency_conversion_rate as net_cost,
        'USD' as net_cost_currency,
         PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month,
          date(usage_end_time) AS date
    from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s
    WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)