Udostępnij za pośrednictwem


Jak dane są przetwarzane w centrach FinOps

Centra FinOps wykonują wiele działań przetwarzania danych, aby wyczyścić, znormalizować i zoptymalizować dane. W poniższych sekcjach pokazano, jak dane przepływają z usługi Cost Management do wystąpienia centrum.


Konfiguracja zakresu

Zakres to poziom w hierarchii zasobów i kont w chmurze, który zapewnia dostęp do danych dotyczących kosztów, użycia i emisji dwutlenku węgla. W przypadku centrów FinOps zwykle zalecamy używanie kont rozliczeniowych Umowa Enterprise (EA) lub profilów rozliczeniowych Umowa z Klientem Microsoft (MCA), jednak każdy zakres chmury jest wystarczający do podstawowej analizy. Głównym problemem jest to, czy są potrzebne dane dotyczące cen i rezerwacji, ponieważ usługa Cost Management uwidacznia tylko dane dla kont rozliczeniowych umowy EA i profilów rozliczeniowych UMOWY MCA.

Centra FinOps obsługują konfigurowanie zakresów przez ręczne konfigurowanie eksportów usługi Cost Management lub udzielanie dostępu do centrów FinOps w celu zarządzania zakresami w Twoim imieniu. Zakresy zarządzane są konfigurowane w pliku konfiguracji/settings.json w magazynie centrum. Informacje opisują, co się stanie po dodaniu nowego zakresu zarządzanego do tego pliku. Zakresy niezarządzane, w których eksporty usługi Cost Management są konfigurowane ręcznie, nie wymagają innej konfiguracji.

  1. Wyzwalacz config_SettingsUpdated jest uruchamiany po zaktualizowaniu pliku settings.json .
  2. Potok config_ConfigureExports tworzy nowe eksporty dla wszystkich dodanych nowych zakresów.

Pozyskiwanie danych

Pozyskiwanie danych można podzielić na dwie części:

  1. Eksportuje dane wypychane do magazynu.
  2. Centra przetwarzają i pozyskiwają dane.

W przypadku zakresów zarządzanych centra wykonują następujące czynności:

  1. Wyzwalacze config_DailySchedule i config_MonthlySchedule są uruchamiane zgodnie z ich harmonogramami, aby rozpocząć pozyskiwanie danych.
  2. Potok config_StartExportProcess pobiera odpowiednie eksporty dla uruchomionego harmonogramu.
  3. Potok config_RunExportJobs wykonuje każdy z wybranych eksportów.
  4. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports . Dowiedz się więcej.

Po uruchomieniu eksportów, niezależnie od tego, czy jest to zarządzane, czy niezarządzane, koncentratory wykonują następujące czynności:

  1. Potok msexports_ExecuteETL rozpoczyna proces extract-transform-load (ETL), gdy pliki są dodawane do magazynu.
  2. Potok msexports_ETL_ingestion przekształca dane w format parquet i przenosi je do kontenera pozyskiwania przy użyciu skalowalnej struktury plików. Dowiedz się więcej.
  3. Usługa Power BI lub inne narzędzia odczytują dane z kontenera pozyskiwania.

Informacje o pozyskiwaniu

Centra FinOps opierają się na określonej ścieżce folderu w kontenerze pozyskiwania:

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion to kontener, w którym potok danych zapisuje dane.
  • {dataset} to wyeksportowany typ zestawu danych.
  • {month} to rok i miesiąc wyeksportowanych danych sformatowanych jako yyyyMM.
  • {scope-id} oczekuje się, że będzie w pełni kwalifikowanym identyfikatorem zasobu zakresu, z których pochodzą dane.

Jeśli musisz używać centrów do monitorowania danych spoza platformy Azure, przekonwertuj dane na fokus i upuść je do kontenera pozyskiwania. Pamiętaj, że ten proces nie został jawnie przetestowany w najnowszej wersji. Jeśli wystąpią jakiekolwiek problemy, utwórz problem.


Informacje o eksportach

Centra FinOps używają eksportów usługi Cost Management w celu uzyskania danych kosztów. Usługa Cost Management kontroluje strukturę folderów dla wyeksportowanych danych w kontenerze msexports . Typowa ścieżka wygląda następująco:

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

Od wersji 0.4 centra FinOps nie korzystają ze ścieżek plików. Koncentratory wykorzystują plik manifestu do identyfikowania zakresu, zestawu danych, miesiąca itp. Jedyną ważną częścią ścieżki dla centrów jest kontener, który musi być msexports.

Ostrzeżenie

  • Nie eksportuj danych do kontenera pozyskiwania. Wyeksportowane woluminy CSV muszą zostać opublikowane w kontenerze msexports , który ma zostać przetworzony przez aparat koncentratorów.
  • Aby pozyskać dane niestandardowe, zapisz pliki parquet wyrównane do fokusu w kontenerze pozyskiwania dla raportów usługi Power BI zestawu narzędzi FinOps, aby działały zgodnie z oczekiwaniami.

Eksportowanie manifestów może ulec zmianie przy użyciu wersji interfejsu API. Oto przykład z wersją 2023-07-01-previewinterfejsu API:

{
  "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": ###
    }
  ]
}

Centra FinOps używają następujących właściwości:

  • exportConfig.resourceId aby zidentyfikować zakres.
  • exportConfig.type aby zidentyfikować typ zestawu danych.
  • exportConfig.dataVersion aby zidentyfikować wersję zestawu danych.
  • runInfo.startDate w celu zidentyfikowania wyeksportowanego miesiąca.

Centra FinOps obsługują następujące typy zestawów danych, wersje i wersje interfejsu API:

  • FocusCost: 1.0, 1.0-preview(v1)
  • PriceSheet: 2023-05-01
  • ReservationDetails: 2023-03-01
  • ReservationRecommendations: 2023-05-01
  • Transakcje rezerwacji: 2023-05-01
  • Wersje interfejsu API: 2023-07-01-preview

Koncentratory FinOps w wersji 0.4-0.5

Poniższe informacje opisują sposób przetwarzania danych w centrach FinOps w wersji 0.4-0.5.

Konfiguracja zakresu w wersji 0.4-0.5

  1. Wyzwalacz config_SettingsUpdated jest uruchamiany po zaktualizowaniu pliku settings.json .
  2. Potok config_ConfigureExports tworzy nowe eksporty dla wszystkich dodanych nowych zakresów.

Pozyskiwanie danych w wersji 0.4-0.5

W przypadku zakresów zarządzanych:

  1. Wyzwalacze config_DailySchedule i config_MonthlySchedule są uruchamiane zgodnie z ich harmonogramami, aby rozpocząć pozyskiwanie danych.
  2. Potok config_ExportData pobiera odpowiednie eksporty dla uruchomionego harmonogramu.
  3. Potok config_RunExports wykonuje każdy z wybranych eksportów.
  4. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports . Aby uzyskać więcej informacji, zobacz About export in v04-05 (Informacje o eksportach w wersji 04-05).

Po zakończeniu eksportowania dla zakresów zarządzanych i niezarządzanych:

  1. Potok msexports_ExecuteETL rozpoczyna proces extract-transform-load (ETL), gdy pliki są dodawane do magazynu.
  2. Potok msexports_ETL_ingestion przekształca dane w standardowy schemat i zapisuje nieprzetworzone dane w formacie parquet w kontenerze pozyskiwania. Aby uzyskać więcej informacji, zobacz About ingestion in v04-05 (Informacje o pozyskiwaniu w wersji 04-05).
  3. Usługa Power BI odczytuje dane kosztów z kontenera pozyskiwania.

Informacje o pozyskiwaniu w wersji 0.4-0.5

Centra FinOps opierają się na określonej ścieżce folderu w kontenerze pozyskiwania:

ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
  • ingestion to kontener, w którym potok danych zapisuje dane.
  • {dataset} to wyeksportowany typ zestawu danych.
  • {month} to rok i miesiąc wyeksportowanych danych sformatowanych jako yyyyMM.
  • {scope-id} oczekuje się, że będzie w pełni kwalifikowanym identyfikatorem zasobu zakresu, z których pochodzą dane.

Jeśli musisz używać centrów do monitorowania danych spoza platformy Azure, przekonwertuj dane na fokus i upuść je do kontenera pozyskiwania. Ten proces nie został jawnie przetestowany w najnowszej wersji. Jeśli wystąpią jakiekolwiek problemy, utwórz problem.

Informacje o eksportach w wersji 0.4-0.5

Centra FinOps używają eksportów usługi Cost Management w celu uzyskania danych kosztów. Usługa Cost Management kontroluje strukturę folderów dla wyeksportowanych danych w kontenerze msexports . Typowa ścieżka wygląda następująco:

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

Od wersji 0.4 centra FinOps nie korzystają ze ścieżek plików. Centra wykorzystują plik manifestu do identyfikowania zakresu, zestawu danych, miesiąca itd. Jedyną ważną częścią ścieżki dla centrów jest kontener, który musi być msexports.

Uwaga

Nie eksportuj danych do kontenera pozyskiwania. Wyeksportowane woluminy CSV muszą zostać opublikowane w kontenerze msexports , który ma zostać przetworzony przez aparat koncentratorów.

Aby pozyskać dane niestandardowe, zapisz pliki parquet wyrównane do fokusu w kontenerze pozyskiwania dla raportów usługi Power BI zestawu narzędzi FinOps, aby działały zgodnie z oczekiwaniami.

Eksportowanie manifestów może ulec zmianie przy użyciu wersji interfejsu API. Oto przykład z wersją 2023-07-01-previewinterfejsu API:

{
  "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": ###
    }
  ]
}

Centra FinOps używają następujących właściwości:

  • exportConfig.resourceId aby zidentyfikować zakres.
  • exportConfig.type aby zidentyfikować typ zestawu danych.
  • exportConfig.dataVersion aby zidentyfikować wersję zestawu danych.
  • runInfo.startDate w celu zidentyfikowania wyeksportowanego miesiąca.

Centra FinOps obsługują następujące typy zestawów danych, wersje i wersje interfejsu API:

  • FocusCost: 1.0, 1.0-preview(v1)
  • PriceSheet: 2023-05-01
  • ReservationDetails: 2023-03-01
  • ReservationRecommendations: 2023-05-01
  • Transakcje rezerwacji: 2023-05-01
  • Wersje interfejsu API: 2023-07-01-preview

Koncentratory FinOps w wersji 0.2-0.3

Poniższe kroki przedstawiają proces eksportowania i przetwarzania danych kosztów przy użyciu centrów FinOps w wersji 0.2-0.3:

  1. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports . Aby uzyskać więcej informacji, zobacz About export (Informacje o eksportach).
  2. Potok msexports_ExecuteETL rozpoczyna proces extract-transform-load (ETL), gdy pliki są dodawane do magazynu.
  3. Potok msexports_ETL_ingestion zapisuje wyeksportowane dane w formacie parquet w kontenerze pozyskiwania. Aby uzyskać więcej informacji, zobacz About export (Informacje o eksportach).
  4. Usługa Power BI odczytuje dane kosztów z kontenera pozyskiwania.

Koncentratory FinOps 0.2-0.3 używają ścieżki eksportu, aby określić wyeksportowany zakres i miesiąc. Ten punkt jest ważny, ponieważ aktualizacje ścieżki mogą przerywać potoki danych. Aby uniknąć tego problemu, zalecamy aktualizację do centrów FinOps w wersji 0.4. Oczekiwana ścieżka powinna naśladować:

msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
  • msexports jest kontenerem określonym w eksporcie.
  • {scope-id} to ścieżka folderu określona w eksporcie.

    Usługa Hubs 0.3 i starsze używają jej do identyfikowania zakresu, z którego pochodzą dane. Zalecamy użycie identyfikatora zakresu, ale można użyć dowolnej wartości. Przykładowe identyfikatory zakresów obejmują:

    Typ zakresu Przykładowa wartość
    Subskrypcja /subscriptions/###
    Grupa zasobów /subscriptions/###/resourceGroups/###
    Konto billingowe /providers/Microsoft.Billing/billingAccounts/###
    Profil rozliczeniowy /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
  • {export-name} to nazwa eksportu.

    Centra ignorują ten folder.

  • {date-range} to eksportowane dane zakresu dat.

    Usługa Hubs 0.3 i starsze używają jej do identyfikowania miesiąca. Format dla tego folderu to yyyyMMdd-yyyyMMdd. Zamiast tego usługa Hubs 0.4 używa manifestu.

  • {export-time} to sygnatura czasowa uruchomienia eksportu.

    Centra ignorują to. Format dla tego folderu to yyyyMMddHHmm.

  • {guid} jest unikatowym identyfikatorem GUID i nie zawsze jest obecny.

    Centra ignorują to. Usługa Cost Management nie zawsze zawiera ten folder. Niezależnie od tego, czy jest on uwzględniony, zależy od wersji interfejsu API użytej do utworzenia eksportu.

  • {file} to manifest lub wyeksportowane dane.

    Wersja 0.3 i starsze ignorują pliki manifestu i monitorują tylko pliki *.csv . W przyszłej wersji koncentratory będą monitorować manifest.


Koncentratory FinOps w wersji 0.1

W poniższych krokach opisano proces eksportowania i przetwarzania danych kosztów przy użyciu centrów FinOps w wersji 0.1:

  1. Usługa Cost Management eksportuje nieprzetworzone szczegóły kosztów do kontenera msexports .
  2. Potok msexports_transform zapisuje nieprzetworzone dane w formacie parquet w kontenerze pozyskiwania.
  3. Usługa Power BI odczytuje dane kosztów z kontenera pozyskiwania.