次の方法で共有


FinOps ハブでのデータの処理方法

FinOps ハブは、多くのデータ処理アクティビティを実行して、データのクリーンアップ、正規化、最適化を行います。 次のセクションでは、Cost Management からハブ インスタンスにデータがどのように流れるかを示します。


スコープの設定

スコープは、コスト、使用状況、炭素データへのアクセスを提供するクラウド リソースとアカウント階層内のレベルです。 FinOps ハブの場合は、通常、マイクロソフトエンタープライズ契約 (EA) 課金アカウントまたは Microsoft 顧客契約 (MCA) 課金プロファイルを使用することをお勧めしますが、基本的な分析にはクラウド スコープで十分です。 Cost Management では EA 課金アカウントと MCA 課金プロファイルのデータのみが公開されるため、価格と予約のデータが必要かどうかが主な懸念事項です。

FinOps ハブでは、Cost Management のエクスポートを手動で構成するか、FinOps ハブに代わってスコープを管理するためのアクセス権を付与することで、スコープの構成がサポートされます。 マネージド スコープは、ハブ ストレージの config/settings.json ファイルで構成されます。 この情報では、新しいマネージド スコープがこのファイルに追加された場合の動作について説明します。 コスト管理のエクスポートが手動で構成されているアンマネージド スコープでは、他のセットアップは必要ありません。

スコープのセットアップ プロセスを示す図。

  1. settings.json ファイルが更新されると、config_SettingsUpdated トリガーが実行されます。
  2. config_ConfigureExports パイプラインは、追加された新しいスコープに対して新しいエクスポートを作成します。

データ インジェスト

次の図は、FinOps ハブ内のエンド ツー エンドのデータ インジェスト プロセスを示しています。

データ インジェスト プロセスを示す図。

  1. (省略可能)マネージド エクスポートを使用する場合:
    1. config_DailyScheduleトリガーとconfig_MonthlySchedule トリガーは、それぞれのスケジュールで実行され、データ インジェストが開始されます。
    2. config_StartExportProcess パイプラインは、実行中のスケジュールに該当するエクスポートを取得します。
    3. config_RunExportJobs パイプラインは、選択した各エクスポートを実行します。
  2. Cost Management は、生のコストの詳細を msexports コンテナーにエクスポートします。 詳細情報。
  3. msexports_ExecuteETL パイプラインは、msexports コンテナーにファイルが追加されるときに、抽出-変換-読み込み (ETL) パイプラインをキューに入れます。
  4. msexports_ETL_ingestion パイプラインは、データを Parquet 形式に変換し、スケーラブルなファイル構造を使用して ingestion コンテナーに移動します。 詳細情報。
  5. (省略可能)Azure Data Explorer を使用している場合:
    1. ingestion_ExecuteETL パイプラインは、manifest.jsonファイルがインジェスト コンテナーに追加されるときに、データ エクスプローラーのインジェスト パイプラインをキューに入れます。
      • Cost Management エクスポートの外部でカスタム データセットを取り込む場合は、他のすべてのファイルの準備ができたら、ターゲット インジェスト フォルダーに空の manifest.json ファイルを作成します (ファイルがまだアップロードされている場合は、このファイルを追加しないでください)。 manifest.json ファイルは解析されず、空にすることができます。 唯一の目的は、このインジェスト ジョブのすべてのファイルが追加されることを示することです。
    2. ingestion_ETL_dataExplorer パイプラインは、データ エクスプローラーの{dataset}_raw テーブルにデータを取り込みます。
      • データセット名は、 インジェスト コンテナー内の最初のフォルダーです。
      • すべての生テーブルは、データ エクスプローラーの インジェスト データベースにあります。
    3. データがデータ エクスプローラーの生テーブルに取り込まれると、更新ポリシーによって、{dataset}_final_v1_0関数を使用して対応する{dataset}_transform_v1_0() テーブルにデータがコピーされ、すべてのデータが FOCUS 1.0 に合わせて正規化されます。
    4. インジェスト後、 ingestion_ETL_dataExplorer パイプラインは、データ保持期間を過ぎた最終テーブルのデータの削除など、クリーンアップを実行します。
      • 0.7 の時点で、データ エクスプローラーは生テーブルのデータ保持を適用しますが、最終的なテーブルのデータ保持はインジェスト パイプラインによって適用されます。 データ インジェストが停止した場合、履歴データは消去されません。
      • データリテンション期間は、テンプレートのデプロイ中に構成することも、ストレージ内の config/settings.json ファイルで手動で構成することもできます。
  6. レポートやその他のツール (Power BI など) は、データ エクスプローラーまたは インジェスト コンテナーからデータを読み取ります。
    • データ エクスプローラーのデータは、 ハブ データベースから読み取ることができます。
      • 最新のスキーマを使用するには、 {dataset}() 関数を使用します。
        • この関数は迅速な探索に役立ちますが、FinOps ハブ インスタンスが更新されると破壊的変更が発生する可能性があります。
      • {dataset}_v1_0()関数を使用して、FOCUS 1.0 スキーマを使用します。
        • バージョン管理された関数スキーマは時間の経過と同時に変更しないでくださいが、データ ソースがそれらの値を変更すると、値が変更される可能性があります。
      • クエリにはインジェスト データベースを使用しないでください。 明示的には禁止されていませんが、 インジェスト データベースはステージングとデータ準備の内部領域と見なす必要があります。
    • ストレージ内のデータは、 ingestion/<dataset>/<year>/<month>/<scope-path>から読み取ることができます。
      • データはデータセット フォルダーから再帰的に読み取る必要があり、必要に応じて、特定性のために必要に応じてさらにデータを含める必要があります。
      • 各データセット フォルダー内のファイルは、データ ソースとアカウントの種類に基づいて異なるスキーマを持つことができます。 Microsoft Fabric などの他のシステムに取り込む場合は、データを変換する準備をします。
      • パフォーマンス上の理由から、ストレージからの読み取りは推奨されません。 100 万ドルを超えるコストでレポートする場合は、データ エクスプローラーをお勧めします。

データエクスプローラーの取り込みについて

データがデータ エクスプローラーに取り込まれると、 {dataset}_transform_v1_0() 関数によって インジェスト データベースに変換ルールが適用されます。 各データセットには、次のセクションで説明する変換規則の異なるセットがあります。

要求された変更、検討中のアイデア、基になる Cost Management データセットに関する未解決の質問の一覧については、 問題 #1111 を参照してください。 懸念事項に対処したり、特定の問題に対するサポートを表明したりする機会がある場合は、その問題に関するコメントを残してください。

コストデータの変換

サポートされているデータセット:

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

次のデータセットは設計で考慮されていましたが、ネイティブでサポートされていません。 これらのデータセットを取り込むには、Parquet ファイルをストレージ内の ingestion/Costs/yyyy/mm/{scope-path} フォルダーにプッシュするデータ パイプライン (または外部プロセス) を作成します。 {scope-path}には、aws/123gcp/projects/fooなど、任意の一意のパスを指定できます。 唯一の要件は、各スコープが個別のフォルダーにあることを確認することです。 外部コンテンツをコピーした後、データエクスプローラーに取り込むための manifest.json ファイルも作成します。

  • アマゾン ウェブ サービス (AWS) FOCUS 1.0
  • Google Cloud Platform (GCP) FOCUS 1.0
  • Oracle Cloud Infrastructure (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_SourceType、およびx_SourceVersionを追加して、取り込まれた元のデータセットを識別します。
    • 価格シートに基づいて、不足している ListCostListUnitPriceContractedCostContractedUnitPrice の値を設定します。
      • このプロセスでは、コストの前に価格をエクスポートする必要があります。 月の最初の日に料金が取り込まれると、その月の pries が利用可能になる前に価格が不足しています。
    • Cost Management のバグが原因で正しく設定されていない場合の ContractedCost を修正しました。
    • ResourceNamex_ResourceGroupName を小文字にして、グループ化とフィルター処理を妨げる大文字と小文字の整合性の問題に対処します。
    • アカウントの種類に基づいて x_BillingAccountAgreement を追加します。
  • v0.8 以降:
    • 内部リソースの種類 ID (microsoft.compute/virtualmachines など) を使用する ResourceType 値を修正します。
  • v0.9 以降:
    • 小文字にしたBillingAccountIdを使用して、価格結合がすべての行と一致することを保証します。
    • データを集計するときに重複する行を回避するための小文字の CommitmentDiscountId
    • x_SourceChangesListCostLessThanContractedCostの新しいContractedCostLessThanEffectiveCostチェックを追加します。
  • v0.10 以降:
    • x_EffectiveUnitPriceが計算され、x_BilledUnitPriceまたはContractedUnitPriceと比較して丸めエラーが発生した場合に修正を行います。
    • コストはあるが数量がない場合は、PricingQuantity と ConsumedQuantity を計算します。
    • ContractedCostが設定されていない場合はEffectiveCostに設定します。
    • ListCostが設定されていない場合はContractedCostに設定します。
    • x_InvoiceSectionId列の "-2" を削除します。
    • x_InvoiceSectionName列の "未割り当て" を削除します。
    • x_EffectiveUnitPrice計算され、丸めエラーが発生したときに修正されました。
    • x_SourceChangesMissingConsumedQuantity、およびMissingPricingQuantityの新しいXEffectiveUnitPriceRoundingError チェックを追加します。
  • v0.11 以降:
    • BillingPeriodStartBillingPeriodEndを月の最初に変更します。

価格データの変換

サポートされているデータセット:

  • Microsoft PriceSheet: 2023-05-01 (EA および MCA)

変換:

  • v0.7 以降
    • 列名を FOCUS 1.0 に揃えます。
      • EA と MCA 列名の整合性の適用が含まれます。
      • 基になる値は変更されません。これは EA と MCA によって異なる場合があります。
    • ISO 期間の x_SkuTerm を月数に変換し、コストの詳細と一致させます。
      • この値を ISO または別の形式に変更する前に、FOCUS が期間を定義する方法を決定するのを待っています。
    • 節約プランの使用量をオンデマンドの同等なものに置き換える。
    • 節約プランの使用量をオンデマンドに相当するように設定します。
    • 現在のコストの詳細よりも正確なSkuPriceIdv2値としてSkuPriceIdを追加します。
    • 行が最後に更新された日時を示す x_IngestionTime を追加します。
    • x_CommitmentDiscountSpendEligibilityx_CommitmentDiscountUsageEligibility を追加します。
    • x_PricingUnitDescriptionPricingUnit および x_PricingBlockSize に展開します。
    • アカウントの種類に基づいて x_BillingAccountAgreement を追加します。
    • x_EffectivePeriodEndを排他的終了日に変更します。
    • x_EffectiveUnitPriceDiscountx_ContractedUnitPriceDiscount、およびx_TotalUnitPriceDiscountを追加して、SKU ごとの利用可能な割引を集計します。
    • x_EffectiveUnitPriceDiscountPercentx_ContractedUnitPriceDiscountPercentx_TotalUnitPriceDiscountPercentを追加して、SKU あたりの割引率を集計します。
    • x_SourceNamex_SourceProviderx_SourceType、およびx_SourceVersionを追加して、取り込まれた元のデータセットを識別します。
  • v0.9 以降:
    • BillingAccountId を小文字にして、コスト結合がすべての行と一致することを確認します。

推奨データ変換

サポートされているデータセット:

  • Microsoft ReservationRecommendations: 2023-05-01 (EA および MCA)

変換:

  1. 列名を FOCUS 1.0 に揃えます。
    • EA と MCA 列名の整合性の適用が含まれます。
    • 基になる値は変更されません。これは EA と MCA によって異なる場合があります。
  2. x_SourceNamex_SourceProviderx_SourceType、およびx_SourceVersionを追加して、取り込まれた元のデータセットを識別します。

トランザクションのデータ変換

サポートされているデータセット:

  • Microsoft ReservationTransactions: 2023-05-01 (EA および MCA)

変換:

  1. 列名を FOCUS 1.0 に揃えます。
    • EA と MCA 列名の整合性の適用が含まれます。
    • 基になる値は変更されません。これは EA と MCA によって異なる場合があります。
  2. x_SourceNamex_SourceProviderx_SourceType、およびx_SourceVersionを追加して、取り込まれた元のデータセットを識別します。

コミットメント割引の使用状況データ変換

サポートされているデータセット:

  • Microsoft 予約詳細: 2023-03-01 (EA および MCA)

変換:

  1. 列名を FOCUS 1.0 に揃えます。
    • EA と MCA 列名の整合性の適用が含まれます。
    • 基になる値は変更されません。これは EA と MCA によって異なる場合があります。
  2. リソースの種類の表示名 ResourceType 列を追加します。
  3. ServiceNameServiceCategory、およびx_ServiceModel列を追加します。
  4. x_CommitmentDiscountNormalizedGroupの場合、"NA"をnullに置き換えます。
  5. FOCUS 1.1 に基づいて x_CommitmentDiscountQuantity を追加します。

インジェスト コンテナーについて

FinOps ハブは、 インジェスト ストレージ コンテナー内の特定のフォルダー パスとファイル名の形式に依存します。

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion は、データ パイプラインがデータを保存するコンテナーです。
  • {dataset} はエクスポートされたデータセットの種類です。 Azure Data Explorer に取り込む場合、 インジェスト データベースには、大文字と小文字が区別される一致する "_raw" テーブル ("Costs_raw" など) が必要です。 FinOps ハブでは、このリリースで次のデータセットがサポートされています。
    • CommitmentDiscountUsage - Cost Management の予約の詳細のエクスポート。
    • コスト - FOCUS コストと使用状況データ。
    • 価格 - Cost Management 価格シートのエクスポート。
    • 推奨事項 - Cost Management の予約に関する推奨事項のエクスポート。
    • トランザクション - Cost Management 予約トランザクションのエクスポート。
    • カスタム データセットを取り込むには、一致する {dataset}_raw テーブルと Parquet インジェスト マッピングをインジェスト データベースに作成します。
  • {date-folder-path} には、保持する必要がある取り込まれたデータセットの数を示す 1 つ以上のフォルダーを指定できます。 例:
    • all(または任意のプレースホルダー)を使用して、データセットの履歴を追跡しないようにします。 すべてのインジェストによって、前のデータが置き換えられます。 ストレージ ベースの Power BI レポートではサポートされていません。
    • {yyyy} は、エクスポートされたデータセットの 4 桁の年として、1 年あたりの最新のインジェストのみを保持します。 ストレージ ベースの Power BI レポートではサポートされていません。
    • {yyyy}/{mm} をエクスポートしたデータセットの 4 桁の年と 2 桁の月として使用し、1 か月あたりの最新のインジェストを保持します。
    • {yyyy}/{mm}/{dd} 1 日あたり最新のインジェストを保持するために、エクスポートされたデータセットの 4 桁の年、2 桁の月、2 桁の日として。 ストレージ ベースの Power BI レポートではサポートされていません。
  • {scope-id-path} は、データのスコープの完全修飾リソース ID です。 Azure 以外のデータを取り込む場合は、データのスコープ ( aws/{account-id}gcp/{project-name}oci/{component-id}/{component-id}など) に基づいて論理階層を使用することをお勧めします。
  • {ingestion-id} は、取り込まれたデータセットの一意の ID です。 この ID は、取り込まれたデータセットのすべてのファイルで一貫性がある限り、GUID、タイムスタンプ、または任意の値にすることができます。 この値は、同じフォルダー パス内の以前に取り込まれたデータを削除するために使用されます。
  • {original-file-name} は、元のファイル名またはその他の識別子を使用して、ファイル内のデータの送信元を示します。 この値は、トラブルシューティングのみを目的としています。

完全なフォルダー パスとインジェスト ID はどちらも、ストレージまたは Azure Data Explorer でデータが重複しないようにするために使用されます。 元のファイル名はトラブルシューティングのために Azure Data Explorer エクステントに追加されますが、FinOps ハブでは追跡または使用されません。

ハブを使用して Azure 以外のデータを監視する必要がある場合は、このガイダンスを使用してデータを FOCUS に変換し、 インジェスト コンテナーにドロップします。 Azure 以外のデータのサポートは、最新リリースでは明示的にテストされていないことに注意してください。 問題が発生した場合は、問題 作成します


エクスポートについて

FinOps ハブでは、Cost Management のエクスポートを利用してコスト データを取得します。 Cost Management は、 msexports ストレージ コンテナー内のエクスポートされたデータのフォルダー構造を制御します。 一般的なパスは次のようになります。

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

FinOps ハブでは、マニフェスト ファイルを使用して、スコープ、データセット、月などを識別します。ハブのパスの唯一の重要な部分は、 msexports である必要があるコンテナーです。

ingestion コンテナーにデータをエクスポートしないでください。 エクスポートされた CSV must ハブ エンジンによって処理される msexports コンテナーに発行されます。

カスタムデータを取り込むには、FinOpsツールキットPower BIレポートが期待どおりに動作するように、Parquetファイルを取り込みコンテナーに保存します。 すべての Parquet ファイルが追加されたら、空の manifest.json ファイルを追加してインジェストをトリガーします。

Cost Management エクスポートから CSV ファイルを取り込むには、 msexports コンテナー内の特定のフォルダーにファイルを保存します。 すべてのファイルが追加されたら、次のテンプレートに基づいて manifest.json ファイルを追加します。 インジェストを成功させるために、次の変更を行います。

  1. <export-name>を、取り込むデータセットのスコープ内で一意の値に変更します。
    • これは、エクスポート マニフェストだけでは識別できないさまざまな種類の推奨事項が取り込まれるのを区別するための推奨事項にのみ使用されます。 予約に関する推奨事項については、サービス、スコープ (単一/共有)、ルックバック期間を含めるのが理想的です。
  2. <dataset><version>を Cost Management のエクスポートの種類とバージョンに変更します。 サポートされているデータセットについては、以下の一覧を参照してください。
  3. <scope>を、データの取得元のスコープの Azure リソース ID に変更します。
  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
  • 予約の推奨: 2023-05-01
  • 予約取引: 2023-05-01
  • API のバージョン: 2023-07-01-preview

FinOps hubs v0.6

次のセクションでは、FinOps Hubs 0.6 のデータ プロセスについて説明します。

v0.6 でのスコープの設定

次の手順は、新しいマネージド スコープがハブ インスタンスに追加されるときに発生します。 アンマネージド スコープ (Cost Management のエクスポートが手動で構成されている場合) では、ハブでのセットアップは必要ありません。

  1. settings.json ファイルが更新されると、config_SettingsUpdated トリガーが実行されます。
  2. config_ConfigureExports パイプラインは、追加された新しいスコープに対して新しいエクスポートを作成します。

v0.6 でのデータ インジェスト

データ インジェストは、次の 2 つの部分に分けることができます。

  1. ストレージにプッシュ データをエクスポートします。
  2. ハブはデータを処理して取り込みます。

マネージド スコープの場合、ハブは次の手順を実行します。

  1. config_DailyScheduleトリガーとconfig_MonthlySchedule トリガーは、それぞれのスケジュールで実行され、データ インジェストが開始されます。
  2. config_StartExportProcess パイプラインは、実行中のスケジュールに該当するエクスポートを取得します。
  3. config_RunExportJobs パイプラインは、選択した各エクスポートを実行します。
  4. Cost Management は、生のコストの詳細を msexports コンテナーにエクスポートします。 詳細情報。
  5. msexports_ExecuteETL パイプラインは、msexports コンテナーにファイルが追加されるときに、抽出-変換-読み込み (ETL) パイプラインをキューに入れます。
  6. msexports_ETL_ingestion パイプラインは、データを Parquet 形式に変換し、スケーラブルなファイル構造を使用して ingestion コンテナーに移動します。 詳細情報。
  7. Power BI またはその他のツールは、 ingestion コンテナーからデータを読み取ります。

エクスポートが実行されると、マネージドかアンマネージドかに関係なく、ハブは次の手順を実行します。

  1. msexports_ExecuteETL パイプラインは、ファイルがストレージに追加されると、抽出-変換-読み込み (ETL) プロセスを開始します。
  2. msexports_ETL_ingestion パイプラインは、データを Parquet 形式に変換し、スケーラブルなファイル構造を使用して ingestion コンテナーに移動します。 詳細情報。
  3. Power BI またはその他のツールは、 ingestion コンテナーからデータを読み取ります。

v0.6 でのインジェストについて

FinOps ハブは、 インジェスト コンテナー内の特定のフォルダー パスとファイル名の形式に依存します。

ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
  • ingestion は、データ パイプラインがデータを保存するコンテナーです。
  • {dataset} はエクスポートされたデータセットの種類です。
  • {date-folder-path} には、保持する必要がある取り込まれたデータセットの数を示す 1 つ以上のフォルダーを指定できます。 例:
    • all(または任意のプレースホルダー)を使用して、データセットの履歴を追跡しないようにします。 すべてのインジェストによって、前のデータが置き換えられます。 ストレージ ベースの Power BI レポートではサポートされていません。
    • {yyyy} は、エクスポートされたデータセットの 4 桁の年として、1 年あたりの最新のインジェストのみを保持します。 ストレージ ベースの Power BI レポートではサポートされていません。
    • {yyyy}/{mm} をエクスポートしたデータセットの 4 桁の年と 2 桁の月として使用し、1 か月あたりの最新のインジェストを保持します。
    • {yyyy}/{mm}/{dd} 1 日あたり最新のインジェストを保持するために、エクスポートされたデータセットの 4 桁の年、2 桁の月、2 桁の日として。 ストレージ ベースの Power BI レポートではサポートされていません。
  • {scope-id-path} は、データのスコープの完全修飾リソース ID です。 Azure 以外のデータを取り込む場合は、データのスコープ (例: "aws/{account-id}"、"gcp/{project-name}"、"oci/{component-id}/{component-id}") に基づいて論理階層を使用することをお勧めします。
  • {ingestion-id} は、取り込まれたデータセットの一意の ID です。 この ID は、取り込まれたデータセットのすべてのファイルで一貫性がある限り、GUID、タイムスタンプ、または任意の値にすることができます。 この値は、同じフォルダー パス内の以前に取り込まれたデータを削除するために使用されます。
  • {original-file-name} は、元のファイル名またはその他の識別子を使用して、ファイル内のデータの送信元を示します。 この値は、トラブルシューティングのみを目的としています。

完全なフォルダー パスとインジェスト ID はどちらも、ストレージまたは Azure Data Explorer でデータが重複しないようにするために使用されます。 元のファイル名はトラブルシューティングのために Azure Data Explorer エクステントに追加されますが、FinOps ハブでは追跡または使用されません。

ハブを使用して Azure 以外のデータを監視する必要がある場合は、このガイダンスを使用してデータを FOCUS に変換し、 インジェスト コンテナーにドロップします。 Azure 以外のデータのサポートは、最新リリースでは明示的にテストされていないことに注意してください。 問題が発生した場合は、問題 作成します


v0.6 でのエクスポートについて

FinOps ハブでは、Cost Management エクスポートを使用してコスト データを取得します。 Cost Management は、 msexports コンテナー内のエクスポートされたデータのフォルダー構造を制御します。 一般的なパスは次のようになります。

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

0.4 の時点では、FinOps ハブはファイル パスに依存しません。 ハブはマニフェスト ファイルを使用して、スコープ、データセット、月などを識別します。ハブのパスの唯一の重要な部分はコンテナーです。コンテナーは msexports である必要があります。

警告

  • ingestion コンテナーにデータをエクスポートしないでください。 エクスポートされた CSV must ハブ エンジンによって処理される msexports コンテナーに発行されます。
  • カスタム データを取り込むには、FinOps ツールキットの Power BI レポートが期待どおりに動作するように、focus で配置された parquet ファイルを ingestion コンテナーに保存します。

エクスポート マニフェストは、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
  • 予約の推奨: 2023-05-01
  • 予約取引: 2023-05-01
  • API のバージョン: 2023-07-01-preview

FinOps Hubs v0.4-0.5

次の情報では、FinOps ハブ v0.4 と v0.5 でのデータの処理方法について説明します。

v0.4-0.5 でのスコープの設定

  1. settings.json ファイルが更新されると、config_SettingsUpdated トリガーが実行されます。
  2. config_ConfigureExports パイプラインは、追加された新しいスコープに対して新しいエクスポートを作成します。

v0.4-0.5 でのデータ インジェスト

マネージド スコープの場合:

  1. config_DailyScheduleトリガーとconfig_MonthlySchedule トリガーは、それぞれのスケジュールで実行され、データ インジェストが開始されます。
  2. config_ExportData パイプラインは、実行中のスケジュールに適用可能なエクスポートを取得します。
  3. config_RunExports パイプラインは、選択した各エクスポートを実行します。
  4. Cost Management は、生のコストの詳細を msexports コンテナーにエクスポートします。 詳細については、「 v04-05 でのエクスポートについてを参照してください。

エクスポートが完了した後、マネージド スコープとアンマネージド スコープの両方について、次の操作を行います。

  1. msexports_ExecuteETL パイプラインは、ファイルがストレージに追加されると、抽出-変換-読み込み (ETL) プロセスを開始します。
  2. msexports_ETL_ingestion パイプラインは、データを標準スキーマに変換し、生データを parquet 形式で ingestion コンテナーに保存します。 詳細については、「 v04-05 での取り込みについてを参照してください。
  3. Power BI は、 ingestion コンテナーからコスト データを読み取ります。

v0.4-0.5 でのインジェストについて

FinOps ハブは、 ingestion コンテナー内の特定のフォルダー パスに依存します。

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion は、データ パイプラインがデータを保存するコンテナーです。
  • {dataset} はエクスポートされたデータセットの種類です。
  • {month} は、エクスポートされたデータの年と月を yyyyMM形式で指定します。
  • {scope-id} は、データのスコープの完全修飾リソース ID であることが期待されます。

ハブを使用して Azure 以外のデータを監視する必要がある場合は、データを FOCUS に変換し それを ingestion コンテナーにドロップします。 このプロセスは、最新リリースでは明示的にテストされていませんでした。 問題が発生した場合は、問題 作成します

v0.4-0.5 でのエクスポートについて

FinOps ハブでは、Cost Management エクスポートを使用してコスト データを取得します。 Cost Management は、 msexports コンテナー内のエクスポートされたデータのフォルダー構造を制御します。 一般的なパスは次のようになります。

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

0.4 の時点では、FinOps ハブはファイル パスに依存しません。 ハブはマニフェスト ファイルを使用して、スコープ、データセット、月などを識別します。 ハブのパスの唯一の重要な部分はコンテナーです。コンテナーは msexports である必要があります。

ingestion コンテナーにデータをエクスポートしないでください。 エクスポートされた CSV must ハブ エンジンによって処理される msexports コンテナーに発行されます。

カスタム データを取り込むには、FinOps ツールキットの Power BI レポートが期待どおりに動作するように、focus で配置された parquet ファイルを ingestion コンテナーに保存します。

エクスポート マニフェストは、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
  • 予約の推奨: 2023-05-01
  • 予約取引: 2023-05-01
  • API のバージョン: 2023-07-01-preview

FinOps Hubs v0.2-0.3

次の手順では、FinOps Hubs バージョン 0.2-0.3 を使用してコスト データをエクスポートおよび処理するプロセスについて説明します。

  1. Cost Management は、生のコストの詳細を msexports コンテナーにエクスポートします。
  2. msexports_ExecuteETL パイプラインは、ファイルがストレージに追加されると、抽出-変換-読み込み (ETL) プロセスを開始します。
  3. msexports_ETL_ingestion パイプラインは、エクスポートされたデータを parquet 形式で ingestion コンテナーに保存します。
  4. Power BI は、 ingestion コンテナーからコスト データを読み取ります。

FinOps Hubs 0.2-0.3 では、エクスポート パスを使用して、エクスポートされたスコープと月を決定します。 パスの更新によってデータ パイプラインが中断される可能性がある場合は、この点が重要です。 この問題を回避するには、FinOps Hubs 0.4 に更新することをお勧めします。 想定されるパスは次のようになります。

msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
  • msexports は、エクスポートで指定されたコンテナーです。
  • {scope-id} は、エクスポートで指定されたフォルダー パスです。

    Hubs 0.3 以前では、これを使用して、データの取得元のスコープを特定します。 スコープ ID を使用することをお勧めしますが、任意の値を使用できます。 スコープ ID の例を次に示します。

    [スコープの種類] 例値
    サブスクリプション /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 であり、常に存在するとは限りません。

    ハブはこれを無視します。 Cost Management には、常にこのフォルダーが含まれているとは限りません。 含まれているかどうかは、エクスポートの作成に使用される API バージョンによって異なります。

  • {file} はマニフェストまたはエクスポートされたデータです。

    バージョン 0.3 以前ではマニフェスト ファイルが無視され、 *.csv ファイルのみが監視されます。 今後のリリースでは、ハブによってマニフェストが監視されます。


FinOps hubs v0.1

次の手順では、FinOps Hubs バージョン 0.1 を使用してコスト データをエクスポートおよび処理するプロセスについて説明します。

  1. Cost Management は、生のコストの詳細を msexports コンテナーにエクスポートします。
  2. msexports_transform パイプラインは、生データを parquet 形式で ingestion コンテナーに保存します。
  3. Power BI は、 ingestion コンテナーからコスト データを読み取ります。

フィードバックを送る

クイック レビューを使用して、どのように取り組んでいるかをお知らせください。 これらのレビューを使用して、FinOps のツールとリソースを改善および拡張します。

特定の情報をお探しの場合は、既存のアイデアに投票するか、新しいアイデアを作成してください。 他のユーザーとアイデアを共有して、投票を増やしましょう。 投票数が最も多いアイデアに焦点を当てています。