共用方式為


FinOps 中樞如何處理數據

FinOps 中樞會執行許多數據處理活動,以清除、正規化及優化數據。 下列各節說明如何將數據從成本管理流向中樞實例。


範圍設定

範圍是雲端資源和帳戶階層內的層級,可讓您存取成本、使用量和碳數據。 對於 FinOps 中樞,我們通常建議使用 Enterprise 合約 (EA) 計費帳戶或 Microsoft 客戶合約 (MCA) 計費配置檔,不過任何雲端範圍都足以進行基本分析。 關鍵問題在於是否需要價格和預留資料,因為成本管理只會公開 EA 計費帳戶和 MCA 帳單配置檔的資料。

FinOps 中樞支援透過手動設定成本管理匯出來配置範圍,或透過授予 FinOps 中樞存取權來代表您管理範圍。 受控範圍是在中樞記憶體的 config/settings.json 檔案中設定。 這項資訊描述將新的受控範圍新增至此檔案時會發生什麼情況。 非受控範圍,其中成本管理導出是手動設定的,不需要其他設定。

描述範圍設定程式的圖表。

  1. config_SettingsUpdated觸發程式會在更新settings.json檔案時執行。
  2. config_ConfigureExports管線會為任何新加入的範圍建立新的匯出。

資料提取

下圖描述 FinOps 中樞內的端對端資料擷取程式:

描述數據擷取程式的圖表。

  1. (選擇性)如果使用管理的匯出:
    1. config_DailySchedule和config_MonthlySchedule觸發程式會在其各自的排程上執行,以啟動數據擷取。
    2. config_StartExportProcess 管線會取得對於正在執行的排程適用的匯出資料。
    3. config_RunExportJobs 管線會執行每個選取的匯出。
  2. 成本管理會將原始成本詳細數據匯出至 msexports 容器。 深入了解
  3. 當檔案新增至 msexports 容器時,msexports_ExecuteETL 管線會將擷取-轉換-載入(ETL)流程的管線排入佇列。
  4. msexports_ETL_ingestion管線會將數據轉換成 parquet 格式,並使用具可擴展性的檔案結構將其移至引入容器。 深入了解
  5. (選擇性)如果使用 Azure 數據總管:
    1. manifest.json 檔案新增至 擷取 容器時,ingestion_ExecuteETL 管線會將 Data Explorer 的擷取管線加入佇列。
      • 如果要擷取在成本管理匯出之外的自定義數據集,請在所有其他檔案都準備好後,在目標擷取資料夾中建立一個空的 manifest.json 檔案(檔案仍在上傳時,請勿新增此檔案)。 manifest.json 檔案沒有被解析,且可能是空的。 唯一的目的是表示所有檔案都已新增到此擷取作業。
    2. ingestion_ETL_dataExplorer 管線會將數據匯入至資料探索工具中的 {dataset}_raw 資料表。
      • 數據集名稱是 嵌入 容器中的第一個資料夾。
      • 所有原始數據表都在 Data Explorer 中的 擷取 資料庫中。
    3. 將數據擷取到數據總管中的原始數據表時,更新原則會使用 {dataset}_final_v1_0 函式將數據複製到對應的 {dataset}_transform_v1_0() 數據表,以將所有數據正規化以對齊 FOCUS 1.0。
    4. 在資料匯入之後,ingestion_ETL_dataExplorer 資料處理流程會進行一些清理工作,包括刪除已超過數據保存期限的最終資料表中的資料。
      • 從 0.7 版本開始,Data Explorer 會在原始資料表中進行資料保留,而最終資料表中的資料保留則是由資料匯入管線負責套用。 如果數據擷取停止,則不會清除歷程記錄數據。
      • 您可以在範本部署期間設定數據保留,或在記憶體中的 組態/settings.json 檔案中手動設定。
  6. 報告和其他工具,例如 Power BI,會從 Data Explorer 或 擷取 容器中讀取數據。
    • Data Explorer 中的數據可以從 中樞 資料庫中讀取。
      • 使用{dataset}() 函數來套用最新的架構。
        • 此函式適用於快速探索,但可能會在更新 FinOps 中樞實例時引入重大變更。
      • 使用函數{dataset}_v1_0()來使用FOCUS 1.0模式。
        • 版本設定的函式架構不應該隨著時間而變更,但如果數據源變更這些值,值可能會變更。
      • 請避免使用 引入 資料庫進行查詢。 雖然未明確禁止,但匯入資料庫應該被視為暫存和數據準備的內部區域。
    • 您可以從 ingestion/<dataset>/<year>/<month>/<scope-path>讀取記憶體中的數據。
      • 數據應該以遞歸方式從數據集資料夾讀取,並選擇性地視需要包含更多數據,以取得特定性。
      • 每個數據集資料夾中的檔案可能會根據數據源和帳戶類型有不同的架構。 如果將數據導入到其他系統,如 Microsoft Fabric,請準備好轉換數據。
      • 由於效能原因,不建議從記憶體讀取。 當報告成本超過 100 萬美元時,建議使用 Data Explorer。

關於資料瀏覽器匯入

當將數據匯入到數據瀏覽器時,{dataset}_transform_v1_0() 函式會在 擷取 資料庫中套用轉換規則。 每個數據集都有一組不同的轉換規則,這些規則涵蓋於下列各節中。

如需查看針對基礎成本管理數據集的變更請求、正在考慮的想法以及開放問題清單,請參閱 問題 #1111。 如果您發現有機會解決任何疑慮,或表達您對任何特定問題的支援,請對該問題留下意見。

成本數據轉換

支援的資料集:

  • Microsoft FocusCost:1.0r21.01.0-preview(v1)

在設計中會考慮下列數據集,但並非原生支援。 若要擷取這些數據集,請建立數據管線(或外部進程),將 parquet 檔案推送至記憶體中的 ingestion/Costs/yyyy/mm/{scope-path} 資料夾。 {scope-path} 可以是任何唯一的路徑,例如 aws/123gcp/projects/foo。 唯一的需求是確保每個範圍都位於不同的資料夾中。 複製外部內容之後,也建立 manifest.json 檔案來觸發數據總管擷取。

  • Amazon Web Services (AWS) FOCUS 1.0
  • Google Cloud Platform (GCP) FOCUS 1.0
  • Oracle 雲端基礎結構 (OCI) FOCUS 1.0

變換:

  • v0.7+:
    • 將FOCUS 1.0-preview欄位名稱對齊至FOCUS 1.0。
      • 包含將FOCUS 1.0預覽轉換為1.0。
    • 新增 x_IngestionTime,以指出上次更新數據列的時間。
    • 新增 x_SourceChanges 以識別行中數據被中樞更改的情況。
    • 未指定時,更新 ProviderNamePublisherName
    • 新增 x_SourceNamex_SourceProviderx_SourceTypex_SourceVersion,以識別原始的內嵌數據集。
    • 請依據價位表補齊遺漏的 ListCostListUnitPriceContractedCostContractedUnitPrice 值。
      • 這個過程需要在成本之前匯出價格。 如果在當月的價格尚未出現之前就已擷取成本資料,則當月第一天的價格可能會遺漏。
    • 修正由於成本管理中的錯誤而導致 ContractedCost 設定不正確的情況。
    • 請將 ResourceNamex_ResourceGroupName 轉成小寫,以解決分組和篩選過程中因大小寫不一致而產生的問題。
    • 根據帳戶類型新增 x_BillingAccountAgreement
  • v0.8+:
    • 請修正任何使用內部資源類型 ID 的 ResourceType 值(例如 microsoft.compute/virtualmachines)。
  • v0.9+:
    • 小寫 BillingAccountId 以確保價格聯結符合所有數據列。
    • 小寫 CommitmentDiscountId 以避免在匯總數據時重複的數據列。
    • x_SourceChangesListCostLessThanContractedCost 新增 ContractedCostLessThanEffectiveCost 檢查。
  • v0.10+:
    • 修正x_EffectiveUnitPrice在計算時出現的四捨五入錯誤,以使其與x_BilledUnitPriceContractedUnitPrice相比較時一致。
    • 當有成本但沒有數量時,計算 PricingQuantity 和 ConsumedQuantity。
    • ContractedCost尚未設定時,將EffectiveCost設為ContractedCost
    • ListCost尚未設定時,將ContractedCost設為ListCost
    • 拿掉欄位中的 x_InvoiceSectionId 「-2」。
    • 移除x_InvoiceSectionName 列中的「未指派」。
    • 計算x_EffectiveUnitPrice時,修正其四捨五入錯誤。
    • 新增對x_SourceChangesMissingConsumedQuantityMissingPricingQuantityXEffectiveUnitPriceRoundingError的新檢查。
  • v0.11+:
    • BillingPeriodStartBillingPeriodEnd變更為當月的第一天。

價格數據轉換

支援的資料集:

  • Microsoft PriceSheet: 2023-05-01 (EA 和 MCA)

變換:

  • v0.7+
    • 將欄位名稱對齊至 FOCUS 1.0。
      • 包括確保EA和MCA資料行名稱一致性。
      • 不會變更基礎值,這可能會因EA和MCA而有所不同。
    • x_SkuTerm ISO 持續時間轉換為特定月份數,以符合成本詳細數據。
      • 我們正等待FOCUS判斷如何在將此值變更為ISO或其他格式之前定義持續時間。
    • 以隨選對等專案取代 ContractedUnitPrice 作為節省計畫的使用。
    • 設定 ListUnitPrice 將儲蓄計畫的使用量設為按需等值。
    • SkuPriceIdv2 新增為比目前成本詳細數據更精確的 SkuPriceId 值。
    • 新增 x_IngestionTime,以指出上次更新數據列的時間。
    • 新增 x_CommitmentDiscountSpendEligibilityx_CommitmentDiscountUsageEligibility
    • x_PricingUnitDescription 展開至 PricingUnit,並 x_PricingBlockSize
    • 根據帳戶類型新增 x_BillingAccountAgreement
    • x_EffectivePeriodEnd 變更為獨佔結束日期。
    • 新增 x_EffectiveUnitPriceDiscountx_ContractedUnitPriceDiscountx_TotalUnitPriceDiscount,以匯總每個 SKU 的可用折扣。
    • 新增 x_EffectiveUnitPriceDiscountPercentx_ContractedUnitPriceDiscountPercentx_TotalUnitPriceDiscountPercent,以摘要說明每個 SKU 的折扣百分比。
    • 新增 x_SourceNamex_SourceProviderx_SourceTypex_SourceVersion,以識別原始的內嵌數據集。
  • v0.9+:
    • 小寫 BillingAccountId 以確保成本聯結符合所有數據列。

推薦系統數據轉換

支援的資料集:

  • Microsoft ReservationRecommendations:2023-05-01(EA 和 MCA)

變換:

  1. 將欄位名稱對齊至 FOCUS 1.0。
    • 包括確保EA和MCA資料行名稱一致性。
    • 不會變更基礎值,這可能會因EA和MCA而有所不同。
  2. 新增 x_SourceNamex_SourceProviderx_SourceTypex_SourceVersion,以識別原始的內嵌數據集。

交易資料轉換

支援的資料集:

  • Microsoft ReservationTransactions:2023-05-01(EA 和 MCA)

變換:

  1. 將欄位名稱對齊至 FOCUS 1.0。
    • 包括確保EA和MCA資料行名稱一致性。
    • 不會變更基礎值,這可能會因EA和MCA而有所不同。
  2. 新增 x_SourceNamex_SourceProviderx_SourceTypex_SourceVersion,以識別原始的內嵌數據集。

承諾折扣使用量數據轉換

支援的資料集:

  • Microsoft 預訂詳情:2023-03-01 (EA 和 MCA)

變換:

  1. 將欄位名稱對齊至 FOCUS 1.0。
    • 包括確保EA和MCA資料行名稱一致性。
    • 不會變更基礎值,這可能會因EA和MCA而有所不同。
  2. 新增 ResourceType 資料行,其中包含資源類型顯示名稱。
  3. 新增 ServiceNameServiceCategoryx_ServiceModel 欄。
  4. 將「NA」替換為 null,以用於 x_CommitmentDiscountNormalizedGroup
  5. 根據 FOCUS 1.1 新增 x_CommitmentDiscountQuantity

關於引入容器

FinOps 中心依賴 併入 儲存容器中的特定資料夾路徑和檔案名稱格式:

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion 是數據管線儲存數據的容器。
  • {dataset} 是匯出的數據集類型。 如果擷取至 Azure 數據總管,擷取資料庫必須具有相符且區分大小寫的 "_raw" 資料表(例如 "Costs_raw")。 FinOps 中樞在此版本中支援下列數據集:
    • CommitmentDiscountUsage - 成本管理預留詳情匯出。
    • 成本 - FOCUS 成本和使用量數據。
    • 價格 - 成本管理價位表導出。
    • 建議 - 成本管理預留建議匯出。
    • 交易 - 成本管理保留交易匯出。
    • 若要匯入自定義數據集,請在 {dataset}_raw 資料庫中建立相符的 數據表和 parquet 匯入對應。
  • {date-folder-path} 可以是一或多個資料夾,指出應該保留多少個內嵌數據集。 例子:
    • all(或任何佔位符)不追蹤數據集的歷程記錄。 每次錄入都會取代先前的資料。 在以儲存為基礎的 Power BI 報表中不支援。
    • {yyyy} 作為匯出數據集的四位數年份,僅保留每年最新的資料輸入。 在以儲存為基礎的 Power BI 報表中不支援。
    • {yyyy}/{mm} 作為匯出數據集的四位數年份和兩位數月份,以保留每月最新的數據載入。
    • {yyyy}/{mm}/{dd} 作為四位數年份、兩位數月份和兩位數日期的匯出數據集,以保留每日最新的匯入。 在以儲存為基礎的 Power BI 報表中不支援。
  • {scope-id-path} 是數據所來自範圍的完整資源標識碼。 如果擷取非 Azure 資料,建議您根據資料範圍使用邏輯階層 (例如 , aws/{account-id}gcp/{project-name}oci/{component-id}/{component-id}
  • {ingestion-id} 是內嵌數據集的唯一標識符。 只要所有擷取數據集的檔案都一致,此標識碼可以是 GUID、時間戳或任何值。 這個值是用來移除先前在相同資料夾路徑中內嵌的數據。
  • {original-file-name} 是要做為源檔名稱或其他標識符,以指出檔案中的數據來源。 此值僅供疑難解答之用。

完整資料夾路徑和擷取標識碼都是用來確保數據不會在記憶體或 Azure 資料總管中重複。 原始檔案名稱會新增至 Azure Data Explorer 資料擴展區以進行疑難排解,但不會由 FinOps hubs 追蹤或使用。

如果您需要使用中樞來監視非 Azure 數據,請使用本指南將數據轉換成 FOCUS ,並將其放入 擷取 容器。 請注意,對非 Azure 數據的支援尚未在最新版本中明確測試。 如果您遇到任何問題, 請建立問題


關於出口

FinOps 中樞會利用成本管理導出來取得成本數據。 成本管理會控制 msexports 記憶體容器中匯出數據的資料夾結構。 一般路徑看起來如下:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

FinOps 中樞會利用指令清單檔案來識別範圍、數據集、月份等。中樞路徑的唯一重要部分是容器,該容器必須 msexports

請勿將數據導出至 擷取 容器。 導出的 CSV 必須 發佈至 msexports 容器,才能由中樞引擎處理。

欲導入自訂資料,請將 Parquet 檔案儲存在 ingestion 容器中,以便 FinOps 工具組 Power BI 報表按預期運作。 新增所有 parquet 檔案之後,新增空白 manifest.json 檔案以觸發擷取。

若要從成本管理導出擷取 CSV 檔案,請將檔案儲存在 msexports 容器的特定資料夾中。 新增所有檔案之後,請根據下列範本新增 manifest.json 檔案。 請進行下列變更以確保成功匯入:

  1. <export-name> 更改為您正在載入的數據集範圍內的唯一值。
    • 這僅用於建議,以區分導入的眾多不同類型的建議,這些建議無法單靠導出指令清單來識別。 在提出保留建議時,最好包括服務、範圍(單一/共用),以及回溯時期。
  2. <dataset><version> 變更為成本管理匯出類型和版本。 如需支持的數據集,請參閱下列清單。
  3. 針對數據的來源範圍,變更 <scope> 為 Azure 資源識別碼。
  4. 變更 <guid> 為唯一 GUID。
  5. 變更 <yyyy-MM> 為數據集的年份和月份。
  6. 變更 <path-to-file> 為容器下的完整資料夾路徑 (不包含 “msexports” )。
  7. 變更 <file-name> 為上傳至記憶體之第一個檔案的名稱。
  8. 如果您有一個以上的 CSV 檔案,請針對您上傳的每個檔案複製 Blob 物件,並更新檔名。
{
  "blobCount": 1,
  "dataRowCount": 1,
  "exportConfig": {
    "exportName": "<export-name>",
    "type": "<dataset>",
    "dataVersion": "<version>",
    "resourceId": "<scope>/providers/Microsoft.CostManagement/exports/export-name"
  },
  "runInfo": {
    "runId": "<guid>",
    "startDate": "<yyyy-MM>-01T00:00:00"
  },
  "blobs": [
    {
      "blobName": "<path-to-file>/<file-name>.csv"
    }
  ]
}

FinOps 中樞支援下列數據集類型、版本和 API 版本:

  • FocusCost:1.0r21.01.0-preview(v1)
  • 價格表:2023-05-01
  • 預訂詳情:2023-03-01
  • ReservationRecommendations:2023-05-01
  • 交易預訂:2023-05-01
  • API 版本: 2023-07-01-preview

FinOps 中樞 v0.6

下列各節說明 FinOps 中樞 0.6 中的數據程式。

v0.6中的範圍設定

將新的受控範圍新增至中樞實例時,會發生下列步驟。 非受控範圍(手動設定成本管理導出)不需要在中樞進行任何設定。

  1. config_SettingsUpdated觸發程式會在更新settings.json檔案時執行。
  2. config_ConfigureExports管線會為任何新加入的範圍建立新的匯出。

v0.6 中的數據擷取

數據擷取可以分成兩個部分:

  1. 將數據匯出至儲存裝置。
  2. 中樞會處理和匯入數據。

針對受控範圍,中樞會執行下列步驟:

  1. config_DailySchedule和config_MonthlySchedule觸發程式會在其各自的排程上執行,以啟動數據擷取。
  2. config_StartExportProcess 管線會取得對於正在執行的排程適用的匯出資料。
  3. config_RunExportJobs 管線會執行每個選取的匯出。
  4. 成本管理會將原始成本詳細數據匯出至 msexports 容器。 深入了解
  5. 當檔案新增至 msexports 容器時,msexports_ExecuteETL 管線會將擷取-轉換-載入(ETL)流程的管線排入佇列。
  6. msexports_ETL_ingestion管線會將數據轉換成 parquet 格式,並使用具可擴展性的檔案結構將其移至引入容器。 深入了解
  7. Power BI 或其他工具會從 擷取 容器讀取數據。

匯出完成後,無論是管理還是非管理的匯出,中樞會按照以下步驟執行:

  1. 檔案新增至記憶體時,msexports_ExecuteETL 管線會啟動擷取-轉換載入 (ETL) 程式。
  2. msexports_ETL_ingestion管線會將數據轉換成 parquet 格式,並使用具可擴展性的檔案結構將其移至引入容器。 深入了解
  3. Power BI 或其他工具會從 擷取 容器讀取數據。

關於 v0.6 中的資料導入

FinOps Hub 依賴 匯入 容器中的特定資料夾路徑和檔案名格式:

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion 是數據管線儲存數據的容器。
  • {dataset} 是匯出的數據集類型。
  • {date-folder-path} 可以是一或多個資料夾,指出應該保留多少個內嵌數據集。 例子:
    • all(或任何佔位符)不追蹤數據集的歷程記錄。 每次錄入都會取代先前的資料。 在以儲存為基礎的 Power BI 報表中不支援。
    • {yyyy} 作為匯出數據集的四位數年份,僅保留每年最新的資料輸入。 在以儲存為基礎的 Power BI 報表中不支援。
    • {yyyy}/{mm} 作為匯出數據集的四位數年份和兩位數月份,以保留每月最新的數據載入。
    • {yyyy}/{mm}/{dd} 作為四位數年份、兩位數月份和兩位數日期的匯出數據集,以保留每日最新的匯入。 在以儲存為基礎的 Power BI 報表中不支援。
  • {scope-id-path} 是數據所來自範圍的完整資源標識碼。 如果內嵌非 Azure 數據,建議您根據數據範圍使用邏輯階層(例如“aws/{account-id}”、“gcp/{project-name}”、“oci/{component-id}/{component-id}”)。
  • {ingestion-id} 是內嵌數據集的唯一標識符。 只要所有擷取數據集的檔案都一致,此標識碼可以是 GUID、時間戳或任何值。 這個值是用來移除先前在相同資料夾路徑中內嵌的數據。
  • {original-file-name} 是要做為源檔名稱或其他標識符,以指出檔案中的數據來源。 此值僅供疑難解答之用。

完整資料夾路徑和擷取標識碼都是用來確保數據不會在記憶體或 Azure 資料總管中重複。 原始檔案名稱會新增至 Azure Data Explorer 資料擴展區以進行疑難排解,但不會由 FinOps hubs 追蹤或使用。

如果您需要使用中樞來監視非 Azure 數據,請使用本指南將數據轉換成 FOCUS ,並將其放入 擷取 容器。 請注意,對非 Azure 數據的支援尚未在最新版本中明確測試。 如果您遇到任何問題, 請建立問題


關於 v0.6 中的匯出

FinOps 中樞會使用成本管理導出來取得成本數據。 成本管理會控制 msexports 容器中匯出數據的資料夾結構。 一般路徑看起來如下:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

從 0.4 起,FinOps 中樞不會依賴檔案路徑。 中樞會利用指令清單檔案來識別範圍、數據集、月份等。中樞路徑的唯一重要部分是容器,必須是 msexports

警告

  • 請勿將數據導出至 擷取 容器。 導出的 CSV 必須 發佈至 msexports 容器,才能由中樞引擎處理。
  • 若要匯入自定義資料,請將 FOCUS 對齊的 parquet 檔案儲存在 匯入 容器中,以便 FinOps 工具組的 Power BI 報表如預期運作。

匯出組態檔會隨著 API 版本變更。 以下是 API 版本的 2023-07-01-preview範例:

{
  "exportConfig": {
    "exportName": "<export-name>",
    "resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
    "dataVersion": "<dataset-version>",
    "apiVersion": "<api-version>",
    "type": "<dataset-type>",
    "timeFrame": "OneTime|TheLastMonth|MonthToDate",
    "granularity": "Daily"
  },
  "deliveryConfig": {
    "partitionData": true,
    "dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
    "fileFormat": "Csv",
    "containerUri": "<storage-resource-id>",
    "rootFolderPath": "<path>"
  },
  "runInfo": {
    "executionType": "Scheduled",
    "submittedTime": "2024-02-03T18:33:03.1032074Z",
    "runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
    "startDate": "2024-01-01T00:00:00",
    "endDate": "2024-01-31T00:00:00"
  },
  "blobs": [
    {
      "blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.<file-type>",
      "byteCount": ###
    }
  ]
}

FinOps 中樞使用下列屬性:

  • exportConfig.resourceId 以識別範圍。
  • exportConfig.type 以識別數據集類型。
  • exportConfig.dataVersion 以識別數據集版本。
  • runInfo.startDate 以識別導出的月份。

FinOps 中樞支援下列數據集類型、版本和 API 版本:

  • FocusCost: 1.01.0-preview(v1)
  • 價格表:2023-05-01
  • 預訂詳情:2023-03-01
  • ReservationRecommendations:2023-05-01
  • 交易預訂:2023-05-01
  • API 版本: 2023-07-01-preview

FinOps 中樞 v0.4-0.5

下列資訊說明如何在 FinOps 中樞 v0.4 和 v0.5 中處理數據。

v0.4-0.5 中的範圍設定

  1. config_SettingsUpdated觸發程式會在更新settings.json檔案時執行。
  2. config_ConfigureExports管線會為任何新加入的範圍建立新的匯出。

v0.4-0.5 中的數據擷取

針對受控範圍:

  1. config_DailySchedule和config_MonthlySchedule觸發程式會在其各自的排程上執行,以啟動數據擷取。
  2. config_ExportData管道會取得適用於正在執行排程的匯出資料。
  3. config_RunExports管線會執行每個選取的導出。
  4. 成本管理會將原始成本詳細數據匯出至 msexports 容器。 如需詳細資訊,請參閱 關於 v04-05 中的導出。

匯出完成後,針對受管控和不受管控的範圍:

  1. 檔案新增至記憶體時,msexports_ExecuteETL 管線會啟動擷取-轉換載入 (ETL) 程式。
  2. msexports_ETL_ingestion 管線會將數據轉換成標準架構,並將原始數據以 parquet 格式儲存至 匯入 容器。 如需詳細資訊,請參閱 關於 v04-05 中的資料匯入
  3. Power BI 會從 匯入 容器讀取成本數據。

關於 v0.4-0.5 中的匯入

FinOps 中樞依賴導入容器中的特定資料夾路徑:

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion 是數據管線儲存數據的容器。
  • {dataset} 是匯出的數據集類型。
  • {month} 是匯出數據格式化為 yyyyMM的年份和月份。
  • {scope-id} 必須是數據所來自範圍的完整資源標識碼。

如果您需要使用中樞來監視非 Azure 數據,請將數據 轉換成 FOCUS ,並將其放入 擷取 容器。 此過程未在最新版本中明確測試。 如果您遇到任何問題, 請建立問題

關於 v0.4-0.5 版本中的匯出功能

FinOps 中樞會使用成本管理導出來取得成本數據。 成本管理會控制 msexports 容器中匯出數據的資料夾結構。 一般路徑看起來如下:

{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}

從 0.4 起,FinOps 中樞不會依賴檔案路徑。 中樞會利用指令清單檔來識別範圍、數據集、月份等等。 中樞路徑的唯一重要部分是容器,必須是 msexports

注意

請勿將數據導出至 擷取 容器。 導出的 CSV 必須 發佈至 msexports 容器,才能由中樞引擎處理。

若要匯入自定義資料,請將 FOCUS 對齊的 parquet 檔案儲存在 匯入 容器中,以便 FinOps 工具組的 Power BI 報表如預期運作。

匯出組態檔會隨著 API 版本變更。 以下是 API 版本的 2023-07-01-preview範例:

{
  "exportConfig": {
    "exportName": "<export-name>",
    "resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
    "dataVersion": "<dataset-version>",
    "apiVersion": "<api-version>",
    "type": "<dataset-type>",
    "timeFrame": "OneTime|TheLastMonth|MonthToDate",
    "granularity": "Daily"
  },
  "deliveryConfig": {
    "partitionData": true,
    "dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
    "fileFormat": "Csv",
    "containerUri": "<storage-resource-id>",
    "rootFolderPath": "<path>"
  },
  "runInfo": {
    "executionType": "Scheduled",
    "submittedTime": "2024-02-03T18:33:03.1032074Z",
    "runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
    "startDate": "2024-01-01T00:00:00",
    "endDate": "2024-01-31T00:00:00"
  },
  "blobs": [
    {
      "blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
      "byteCount": ###
    }
  ]
}

FinOps 中樞使用下列屬性:

  • exportConfig.resourceId 以識別範圍。
  • exportConfig.type 以識別數據集類型。
  • exportConfig.dataVersion 以識別數據集版本。
  • runInfo.startDate 以識別導出的月份。

FinOps 中樞支援下列數據集類型、版本和 API 版本:

  • FocusCost: 1.01.0-preview(v1)
  • 價格表:2023-05-01
  • 預訂詳情:2023-03-01
  • ReservationRecommendations:2023-05-01
  • 交易預訂:2023-05-01
  • API 版本: 2023-07-01-preview

FinOps 中樞 v0.2-0.3

下列步驟概述使用 FinOps 中樞 0.2-0.3 版導出和處理成本數據的程式:

  1. 成本管理會將原始成本詳細數據匯出至 msexports 容器。
  2. 檔案新增至記憶體時,msexports_ExecuteETL 管線會啟動擷取-轉換載入 (ETL) 程式。
  3. msexports_ETL_ingestion管線會在引入容器中以 parquet 格式儲存匯出的數據。
  4. Power BI 會從 匯入 容器讀取成本數據。

FinOps 中樞 0.2-0.3 會使用匯出路徑來判斷導出的範圍和月份。 這個點很重要,因為路徑的更新可能會中斷數據管線。 若要避免此問題,建議您更新至 FinOps 中樞 0.4。 預期的路徑應當仿照:

msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
  • msexports 是匯出上指定的容器。
  • {scope-id} 是匯出上指定的資料夾路徑。

    中樞 0.3 和更早版本會使用此來識別數據的來源範圍。 我們建議使用範圍標識碼,但可以使用任何值。 範例範圍識別碼包括:

    範圍類型 範例值
    訂用帳戶 /subscriptions/###
    資源群組 /subscriptions/###/resourceGroups/###
    計費帳戶 /providers/Microsoft.Billing/billingAccounts/###
    帳單資訊檔案 /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
  • {export-name} 是導出的名稱。

    中樞會忽略此資料夾。

  • {date-range} 是導出的日期範圍數據。

    Hubs 0.3 和更早的版本會使用這個來識別月份。 此資料夾格式為 yyyyMMdd-yyyyMMdd。 Hubs 0.4 改用清單描述檔。

  • {export-time} 是匯出執行時的時間戳。

    集線器會忽略這個。 此資料夾格式為 yyyyMMddHHmm

  • {guid} 是唯一的 GUID,且不一定存在。

    集線器會忽略這個。 成本管理不一定會包含此資料夾。 是否包含該項目取決於用來建立匯出的 API 版本。

  • {file} 是清單或匯出的資料。

    0.3 版和更早版本會忽略指令清單檔案,並只監視 *.csv 檔案。 在未來版本中,中樞會監視清單檔。


FinOps 中樞 v0.1

下列步驟概述使用 FinOps 中樞 0.1 版匯出和處理成本資料的程式:

  1. 成本管理會將原始成本詳細數據匯出至 msexports 容器。
  2. msexports_transform管線會將原始數據以 parquet 格式儲存至擷取容器。
  3. Power BI 會從 匯入 容器讀取成本數據。

提供意見反應

請寫下您的快速評價,讓我們知道我們的表現如何。 我們會使用這些評論來改善及擴充 FinOps 工具和資源。

如果您要尋找特定專案,請投票給現有專案或建立新想法。 與其他人分享想法,以獲得更多的選票。 我們專注於擁有最多選票的想法。