Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
FinOps-hubbar utför många databearbetningsaktiviteter för att rensa, normalisera och optimera data. Följande avsnitt visar hur data flödar från Cost Management till en hubbinstans.
Omfångskonfiguration
Ett omfång är en nivå inom molnresurs- och kontohierarkin som ger åtkomst till kostnader, användning och koldioxiddata. För FinOps-hubbar rekommenderar vi vanligtvis att du använder faktureringskonton för företagsavtal (EA) eller faktureringsprofiler för Microsoft-kundavtal (MCA), men alla molnomfattningar räcker för grundläggande analys. Det viktigaste är om pris- och reservationsdata behövs, eftersom Cost Management endast exponerar data för EA-faktureringskonton och MCA-faktureringsprofiler.
FinOps Hubs har stöd för att konfigurera omfång genom att manuellt konfigurera Cost Management-exporter eller genom att ge FinOps Hubs åtkomst för att hantera omfång åt dig. Hanterade omfång konfigureras i filen config/settings.json i hubblagringen. Informationen beskriver vad som händer när ett nytt hanterat omfång läggs till i den här filen. Ohanterade omfång, där Cost Management-exporter konfigureras manuellt, kräver inte någon annan konfiguration.
- Utlösaren config_SettingsUpdated körs när settings.json-filen uppdateras.
- Den config_ConfigureExports pipelinen skapar nya exporter för alla nya omfång som har lagts till.
Datainsamling
Följande diagram visar datainmatningsprocessen från slutpunkt till slutpunkt i FinOps-hubbar:
- (Valfritt) Om du använder hanterade exporter:
- Config_DailySchedule och config_MonthlySchedule körs enligt sina respektive scheman för att starta datainmatning.
- Den config_StartExportProcess pipelinen hämtar tillämpliga exporter för det schema som körs.
- Den config_RunExportJobs pipelinen kör var och en av de valda exporterna.
- Cost Management exporterar information om råa kostnader till containern msexports . Läs mer.
- Den msexports_ExecuteETL pipeline köar extract-transform-load (ETL)-pipeline när filer läggs till i msexports behållare.
- Den msexports_ETL_ingestion-pipelin omvandlar data till parquet-format och flyttar dem till inmatningscontainern med hjälp av en skalbar filstruktur. Läs mer.
- (Valfritt) Om du använder Azure Data Explorer:
- Den ingestion_ExecuteETL pipeline köar upp Datautforskarens inmatningspipeline när manifest.json-filer läggs till i inmatnings container.
- Om du matar in anpassade datauppsättningar utanför Cost Management-exporter skapar du en tom manifest.json fil i målinmatningsmappen när alla andra filer är klara (lägg inte till den här filen när filerna fortfarande laddas upp). Den manifest.json filen parsas inte och kan vara tom. Det enda syftet är att ange att alla filer för det här inmatningsjobbet läggs till.
- Den ingestion_ETL_dataExplorer-pipelinen läser in data till tabellen
{dataset}_rawi Datautforskaren.- Datauppsättningens namn är den första mappen i inmatningsbehållare.
- Alla rådatatabeller finns i databasen Inmatning i Datautforskaren.
- När data matas in i rådatatabeller i Datautforskaren kopierar en uppdateringsprincip data till motsvarande
{dataset}_final_v1_0tabell med hjälp av funktionen{dataset}_transform_v1_0()för att normalisera alla data så att de justeras till FOCUS 1.0. - Efter inmatning utför ingestion_ETL_dataExplorer-pipeline en viss rensning, inklusive att ta bort data i den sista tabellen som har passerat datalagringsperioden.
- Från och med 0.7 tillämpar Data Explorer datakvarhållning i rådatatabeller medan datakvarhållning i sluttabeller tillämpas av datainmatningspipelinen. Om datainmatningen stoppas rensas inte historiska data.
- Datakvarhållning kan konfigureras under malldistributionen eller manuellt i config/settings.json-fil i lagringen.
- Den ingestion_ExecuteETL pipeline köar upp Datautforskarens inmatningspipeline när manifest.json-filer läggs till i inmatnings container.
- Rapporter och andra verktyg som Power BI läser data från Data Explorer eller inmatningsbehållare.
- Data i Datautforskaren kan läsas från databasen Hub.
- Använd funktionen
{dataset}()för att använda det senaste schemat.- Den här funktionen är användbar för snabb utforskning, men kan innebära störande ändringar när FinOps-hubb-instansen uppdateras.
- Använd funktionen
{dataset}_v1_0()för att använda schemat FOCUS 1.0.- Versionsscheman för funktioner bör inte ändras över tid, men värden kan ändras om datakällan ändrar dessa värden.
- Undvik att använda databasinmatning för sökfrågor. Även om det inte uttryckligen är förbjudet bör inmatning databas betraktas som ett internt område för mellanlagring och dataförberedelse.
- Använd funktionen
- Data i lagring kan läsas från
ingestion/<dataset>/<year>/<month>/<scope-path>.- Data ska läsas rekursivt från datamängdsmappen och eventuellt inkludera mer efter behov för specificitet.
- Filer i varje datauppsättningsmapp kan ha olika scheman baserat på datakällan och kontotypen. Var beredd på att transformera data vid inmatning i andra system, till exempel Microsoft Fabric.
- Läsning från lagring rekommenderas inte på grund av prestandaskäl. Datautforskaren rekommenderas när du rapporterar om mer än en miljon dollar i kostnader.
- Data i Datautforskaren kan läsas från databasen Hub.
Om datautforskarens dataimport
När data matas in i Datautforskaren tillämpar {dataset}_transform_v1_0()-funktionerna transformeringsregler i inmatning databas. Varje datauppsättning har en annan uppsättning transformeringsregler som beskrivs i följande avsnitt.
En lista över begärda ändringar, idéer som övervägs och öppna frågor om underliggande Cost Management-datamängder finns i problem #1111. Lämna kommentarer om problemet om du hittar möjligheter att ta itu med eventuella problem eller att uttrycka ditt stöd för något av de specifika problemen.
Transformering av kostnadsdata
Datauppsättningar som stöds:
- Microsoft FocusCost:
1.0r2,1.0,1.0-preview(v1)
Följande datauppsättningar har redovisats i designen, men stöds inte internt. Om du vill mata in dessa datauppsättningar skapar du en datapipeline (eller extern process) som skickar parquet-filer till ingestion/Costs/yyyy/mm/{scope-path}-mappen i lagringsutrymmet.
{scope-path} kan vara valfri unik sökväg, till exempel aws/123 eller gcp/projects/foo. Det enda kravet är att se till att varje omfång finns i en separat mapp. När du har kopierat externt innehåll skapar du även en manifest.json fil för att utlösa inmatning i Data Explorer.
- Amazon Web Services (AWS) FOCUS 1.0
- Google Cloud Platform (GCP) FOCUS 1.0
- Oracle Cloud Infrastructure (OCI) FOCUS 1.0
Förvandlar:
- v0.7+:
- Justera kolumnnamnen för FOCUS 1.0-preview till FOCUS 1.0.
- Inkluderar konvertering av FÖRHANDSVERSION AV FOCUS 1.0 till 1.0.
- Lägg till
x_IngestionTimeför att ange när raden senast uppdaterades. - Lägg till
x_SourceChangesför att identifiera när data i en rad ändras av hubbar. - Uppdatera
ProviderNameochPublisherNamenär de inte har angetts. - Lägg till
x_SourceName,x_SourceProvider,x_SourceTypeochx_SourceVersionför att identifiera den ursprungliga inmatade datamängden. - Fyll i saknade värden för
ListCost,ListUnitPrice,ContractedCostochContractedUnitPricebaserat på prisdokumentet.- Den här processen kräver att priserna exporteras före kostnaden. Priserna saknas för den första dagen i månaden om kostnaderna matas in innan priserna är tillgängliga för månaden.
- Åtgärda
ContractedCostnär det har angetts felaktigt på grund av ett problem i Cost Management. - Skriv
ResourceNameochx_ResourceGroupNamemed gemener för att åtgärda konsekvensproblem med versalisering som bryter gruppering och filtrering. - Lägg till
x_BillingAccountAgreementbaserat på kontotypen.
- Justera kolumnnamnen för FOCUS 1.0-preview till FOCUS 1.0.
- v0.8+:
- Åtgärda alla
ResourceTypevärden som använder interna resurstyps-ID:er (till exempel microsoft.compute/virtualmachines).
- Åtgärda alla
- v0.9+:
- Använd gemener för
BillingAccountIdför att säkerställa att prisjämförelsen matchar alla rader. - Skriv med små bokstäver
CommitmentDiscountIdför att undvika dubbletter av rader när data aggregeras. - Lägg till nya
x_SourceChangeskontroller förListCostLessThanContractedCostochContractedCostLessThanEffectiveCost.
- Använd gemener för
- v0.10+:
- Åtgärda
x_EffectiveUnitPricenär den beräknas och det finns ett avrundningsfel jämfört medx_BilledUnitPriceellerContractedUnitPrice. - Beräkna PricingQuantity och ConsumedQuantity när det finns kostnad men ingen kvantitet.
- Ange
ContractedCosttillEffectiveCostnär det inte har angetts. - Ange
ListCosttillContractedCostnär det inte har angetts. - Ta bort "-2" i
x_InvoiceSectionIdkolumnen. - Ta bort "Ej tilldelad" i
x_InvoiceSectionNamekolumnen. - Korrigeras
x_EffectiveUnitPricenär den beräknas och har ett avrundningsfel. - Lägg till nya
x_SourceChangeskontroller förMissingConsumedQuantity,MissingPricingQuantityochXEffectiveUnitPriceRoundingError.
- Åtgärda
- v0.11+:
- Ändra
BillingPeriodStartochBillingPeriodEndtill att vara den första dagen i månaden.
- Ändra
Transformering av prisdata
Datauppsättningar som stöds:
- Microsoft PriceSheet:
2023-05-01(EA och MCA)
Förvandlar:
- v0.7+
- Justera kolumnnamnen till FOCUS 1.0.
- Inkluderar att säkerställa konsekvens för EA- och MCA-kolumnnamn.
- Ändrar inte de underliggande värdena, vilket kan skilja sig mellan EA och MCA.
- Konvertera
x_SkuTermISO-varaktighet till det specifika antalet månader för att matcha kostnadsinformationen.- Vi väntar på att FOCUS ska bestämma hur varaktigheter ska definieras innan det här värdet ändras till ISO eller något annat format.
- Ersätt
ContractedUnitPriceför användning av sparplan med motsvarigheten på begäran. - Ange
ListUnitPriceför användning av sparplan inställd på motsvarande på begäran. - Lägg till
SkuPriceIdv2som ett mer exaktSkuPriceIdvärde än vad som för närvarande finns i kostnadsinformationen. - Lägg till
x_IngestionTimeför att ange när raden senast uppdaterades. - Lägg till
x_CommitmentDiscountSpendEligibilityochx_CommitmentDiscountUsageEligibility. - Expandera
x_PricingUnitDescriptiontillPricingUnitochx_PricingBlockSize. - Lägg till
x_BillingAccountAgreementbaserat på kontotypen. - Ändra
x_EffectivePeriodEndtill ett exklusivt slutdatum. - Lägg till
x_EffectiveUnitPriceDiscount,x_ContractedUnitPriceDiscountochx_TotalUnitPriceDiscountför att sammanfatta tillgängliga rabatter per SKU. - Lägg till
x_EffectiveUnitPriceDiscountPercent,x_ContractedUnitPriceDiscountPercentochx_TotalUnitPriceDiscountPercentför att sammanfatta procentandelen av rabatten per SKU. - Lägg till
x_SourceName,x_SourceProvider,x_SourceTypeochx_SourceVersionför att identifiera den ursprungliga inmatade datamängden.
- Justera kolumnnamnen till FOCUS 1.0.
- v0.9+:
- Använd gemener
BillingAccountIdför att säkerställa att kostnadssambandet matchar alla rader.
- Använd gemener
Transformering av rekommendationsdata
Datauppsättningar som stöds:
- Microsoft ReservationRecommendations:
2023-05-01(EA och MCA)
Förvandlar:
- Justera kolumnnamnen till FOCUS 1.0.
- Inkluderar att säkerställa konsekvens för EA- och MCA-kolumnnamn.
- Ändrar inte de underliggande värdena, vilket kan skilja sig mellan EA och MCA.
- Lägg till
x_SourceName,x_SourceProvider,x_SourceTypeochx_SourceVersionför att identifiera den ursprungliga inmatade datamängden.
Transformering av transaktionsdata
Datauppsättningar som stöds:
- Microsoft ReservationTransactions :
2023-05-01(EA och MCA)
Förvandlar:
- Justera kolumnnamnen till FOCUS 1.0.
- Inkluderar att säkerställa konsekvens för EA- och MCA-kolumnnamn.
- Ändrar inte de underliggande värdena, vilket kan skilja sig mellan EA och MCA.
- Lägg till
x_SourceName,x_SourceProvider,x_SourceTypeochx_SourceVersionför att identifiera den ursprungliga inmatade datamängden.
Transformation av användningsdata för åtaganderabatt
Datauppsättningar som stöds:
- **
Microsoft Bokningsdetaljer:
2023-03-01(EA och MCA)
Förvandlar:
- Justera kolumnnamnen till FOCUS 1.0.
- Inkluderar att säkerställa konsekvens för EA- och MCA-kolumnnamn.
- Ändrar inte de underliggande värdena, vilket kan skilja sig mellan EA och MCA.
- Lägg till
ResourceTypekolumn med resurstypens visningsnamn. - Lägg till kolumnerna
ServiceName,ServiceCategoryochx_ServiceModel. - Ersätt "NA" med null i
x_CommitmentDiscountNormalizedGroup. - Lägg till
x_CommitmentDiscountQuantitybaserat på FOCUS 1.1.
Om inmatningscontainern
FinOps-hubbar förlitar sig på en specifik mappsökväg och filnamnsformat i inmatning lagringscontainer:
ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
-
ingestionär containern där datapipelinen sparar data. -
{dataset}är den exporterade datamängdstypen. Om du importerar data till Azure Data Explorer måste -ingestering-databasen ha en matchande, skiftlägeskänslig "_raw"-tabell (som exempel "Costs_raw"). FinOps-hubbar stöder följande datauppsättningar i den här versionen:- CommitmentDiscountUsage – Export av kostnadshanteringsreservationsinformation.
- Kostnader – FOCUS-kostnads- och användningsdata.
- Priser – Export av Kostnadshanteringsprisdokument.
- Rekommendationer – Export av rekommendationer för kostnadshanteringsreservationer.
- Transaktioner – Export av Cost Management-reservationstransaktioner.
- Om du vill mata in anpassade datauppsättningar skapar du en matchande
{dataset}_raw-tabell och parquet-inmatningskarta i Ingestion-databasen.
-
{date-folder-path}kan vara en eller flera mappar som anger hur många inmatade datauppsättningar som ska behållas. Exempel:-
all(eller någon platshållare) för att inte spåra historik för datasetet. Varje inmatning ersätter tidigare data. Stöds inte i lagringsbaserade Power BI-rapporter. -
{yyyy}som ett fyrsiffrigt år för den exporterade datamängden för att endast behålla den senaste inmatningen per år. Stöds inte i lagringsbaserade Power BI-rapporter. -
{yyyy}/{mm}som ett fyrsiffrigt år och en tvåsiffrig månad för den exporterade datamängden för att behålla den senaste inmatningen per månad. -
{yyyy}/{mm}/{dd}som ett fyrsiffrigt år, en tvåsiffrig månad och en tvåsiffrig dag för den exporterade datamängden för att behålla den senaste inmatningen per dag. Stöds inte i lagringsbaserade Power BI-rapporter.
-
-
{scope-id-path}är det fullständigt kvalificerade resurs-ID:t för det omfång som data kommer från. Om du matar in icke-Azure-data rekommenderar vi att du använder en logisk hierarki baserat på dataomfånget (till exempelaws/{account-id},gcp/{project-name},oci/{component-id}/{component-id}). -
{ingestion-id}är ett unikt ID för den inmatade datamängden. Det här ID:t kan vara ett GUID, en tidsstämpel eller valfritt värde så länge det är konsekvent i alla filer för den inmatade datamängden. Det här värdet används för att ta bort tidigare inmatade data i samma mappsökväg. -
{original-file-name}är avsett att vara det ursprungliga filnamnet eller annan identifierare som anger var data i filen har sitt ursprung. Det här värdet är endast i felsökningssyfte.
Den fullständiga mappsökvägen och inmatnings-ID:t används båda för att säkerställa att data inte dupliceras i lagring eller i Azure Data Explorer. Det ursprungliga filnamnet läggs till i Azure Data Explorer-omfattningar i felsökningssyfte, men spåras eller används inte på annat sätt av FinOps-hubbar.
Om du behöver använda hubbar för att övervaka icke-Azure-data konverterar du data till FOCUS- och släpper dem i inmatning container med hjälp av den här vägledningen. Observera att stöd för icke-Azure-data inte uttryckligen har testats i den senaste versionen. Om du får problem, rapporterar du ett problem.
Om exporten
FinOps-hubbar använder Cost Management-exporter för att hämta kostnadsdata. Cost Management styr mappstrukturen för exporterade data i msexports lagringscontainer. En typisk sökväg ser ut så här:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
FinOps-hubbar använder manifestfilen för att identifiera omfång, datauppsättning, månad osv. Den enda viktiga delen av sökvägen för hubbar är containern, som måste vara msexports.
Exportera inte data till inmatningscontainern . Exporterade CSV:er måste publiceras till containern msexports som ska bearbetas av hubbarmotorn.
Om du vill mata in anpassade data sparar du parquet-filer i inmatningscontainern så att FinOps toolkit Power BI-rapporterna fungerar som förväntat. När alla parquet-filer har lagts till lägger du till en tom manifest.json fil för att utlösa inmatning.
Om du vill mata in CSV-filen från Cost Management-exporter sparar du filer i en specifik mapp i containern msexports . När alla filer har lagts till lägger du till en manifest.json fil baserat på mallen nedan. Gör följande ändringar för att säkerställa lyckad inmatning:
- Ändra
<export-name>till ett unikt värde inom omfånget för den datauppsättning som du matar in.- Detta används endast för rekommendationer för att särskilja de många olika typer av rekommendationer som matas in som inte kan identifieras enbart från exportmanifestet. För reservationsrekommendationer bör du helst inkludera tjänsten, omfånget (enkel/delad) och återställningsperioden.
- Ändra
<dataset>och<version>till exporttypen och versionen för Cost Management. Se listan nedan för datauppsättningar som stöds. - Ändra
<scope>till Azure-resurs-ID för det omfång som data kom från. - Ändra
<guid>till ett unikt GUID. - Ändra
<yyyy-MM>till datamängdens år och månad. - Ändra
<path-to-file>till den fullständiga mappsökvägen under containern (inkludera inte "msexports"). - Ändra
<file-name>till namnet på den första filen som laddats upp till lagring. - Om du har fler än en CSV-fil kopierar du blobobjektet för varje fil som du laddade upp och uppdaterar filnamnet.
{
"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-hubbar stöder följande datauppsättningstyper, versioner och API-versioner:
- FocusCost:
1.0r2,1.0,1.0-preview(v1) - Prisdokument:
2023-05-01 - Reserveringsdetaljer:
2023-03-01 - Bokningsrekommendationer:
2023-05-01 - Reservationstransaktioner:
2023-05-01 - API-versioner:
2023-07-01-preview
FinOps Hubs v0.6
I följande avsnitt förklaras dataprocessen i FinOps Hubs 0.6.
Omfångskonfiguration i v0.6
Följande steg inträffar när ett nytt hanterat omfång läggs till i en hubbinstans. Ohanterade omfång (där Cost Management-exporter konfigureras manuellt) kräver ingen konfiguration i hubbar.
- Utlösaren config_SettingsUpdated körs när settings.json-filen uppdateras.
- Den config_ConfigureExports pipelinen skapar nya exporter för alla nya omfång som har lagts till.
Datainmatning för v0.6
Datainmatning kan delas upp i två delar:
- Exporter överför data till lagring.
- Hubbar bearbetar och matar in data.
För hanterade omfång utför hubbar följande steg:
- Config_DailySchedule och config_MonthlySchedule körs enligt sina respektive scheman för att starta datainmatning.
- Den config_StartExportProcess pipelinen hämtar tillämpliga exporter för det schema som körs.
- Den config_RunExportJobs pipelinen kör var och en av de valda exporterna.
- Cost Management exporterar information om råa kostnader till containern msexports . Läs mer.
- Den msexports_ExecuteETL pipeline köar extract-transform-load (ETL)-pipeline när filer läggs till i msexports behållare.
- Den msexports_ETL_ingestion-pipelin omvandlar data till parquet-format och flyttar dem till inmatningscontainern med hjälp av en skalbar filstruktur. Läs mer.
- Power BI eller andra verktyg läser data från inmatningscontainern .
När exporter körs, oavsett om de är hanterade eller ohanterade, genomför hubbar följande steg:
- Den msexports_ExecuteETL pipelinen startar ETL-processen (extract-transform-load) när filer läggs till i lagringen.
- Den msexports_ETL_ingestion-pipelin omvandlar data till parquet-format och flyttar dem till inmatningscontainern med hjälp av en skalbar filstruktur. Läs mer.
- Power BI eller andra verktyg läser data från inmatningscontainern .
Om inmatning i v0.6
FinOps-hubbar förlitar sig på en specifik mappsökväg och filnamnsformat i inmatning container:
ingestion/{dataset}/{date-folder-path}/{scope-id-path}/{ingestion-id}__{original-file-name}.parquet
-
ingestionär containern där datapipelinen sparar data. -
{dataset}är den exporterade datamängdstypen. -
{date-folder-path}kan vara en eller flera mappar som anger hur många inmatade datauppsättningar som ska behållas. Exempel:-
all(eller någon platshållare) för att inte spåra historik för datasetet. Varje inmatning ersätter tidigare data. Stöds inte i lagringsbaserade Power BI-rapporter. -
{yyyy}som ett fyrsiffrigt år för den exporterade datamängden för att endast behålla den senaste inmatningen per år. Stöds inte i lagringsbaserade Power BI-rapporter. -
{yyyy}/{mm}som ett fyrsiffrigt år och en tvåsiffrig månad för den exporterade datamängden för att behålla den senaste inmatningen per månad. -
{yyyy}/{mm}/{dd}som ett fyrsiffrigt år, en tvåsiffrig månad och en tvåsiffrig dag för den exporterade datamängden för att behålla den senaste inmatningen per dag. Stöds inte i lagringsbaserade Power BI-rapporter.
-
-
{scope-id-path}är det fullständigt kvalificerade resurs-ID:t för det omfång som data kommer från. Om du matar in icke-Azure-data rekommenderar vi att du använder en logisk hierarki baserat på dataomfånget (till exempel "aws/{account-id}", "gcp/{project-name}", "oci/{component-id}/{component-id}"). -
{ingestion-id}är ett unikt ID för den inmatade datamängden. Det här ID:t kan vara ett GUID, en tidsstämpel eller valfritt värde så länge det är konsekvent i alla filer för den inmatade datamängden. Det här värdet används för att ta bort tidigare inmatade data i samma mappsökväg. -
{original-file-name}är avsett att vara det ursprungliga filnamnet eller annan identifierare som anger var data i filen har sitt ursprung. Det här värdet är endast i felsökningssyfte.
Den fullständiga mappsökvägen och inmatnings-ID:t används båda för att säkerställa att data inte dupliceras i lagring eller i Azure Data Explorer. Det ursprungliga filnamnet läggs till i Azure Data Explorer-omfattningar i felsökningssyfte, men spåras eller används inte på annat sätt av FinOps-hubbar.
Om du behöver använda hubbar för att övervaka icke-Azure-data konverterar du data till FOCUS- och släpper dem i inmatning container med hjälp av den här vägledningen. Observera att stöd för icke-Azure-data inte uttryckligen har testats i den senaste versionen. Om du får problem, rapporterar du ett problem.
Om export i version 0.6
FinOps-hubbar använder Cost Management-exporter för att hämta kostnadsdata. Cost Management styr mappstrukturen för exporterade data i containern msexports . En typisk sökväg ser ut så här:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
Från och med 0.4 förlitar sig FinOps-hubbar inte på filsökvägar. Hubbar använder manifestfilen för att identifiera omfång, datauppsättning, månad osv. Den enda viktiga delen av sökvägen för hubbar är containern, som måste vara msexports.
Varning
- Exportera inte data till inmatningscontainern . Exporterade CSV:er måste publiceras till containern msexports som ska bearbetas av hubbarmotorn.
- Om du vill mata in anpassade data sparar du FOCUS-anpassade parquet-filer i inmatningscontainern så att FinOps toolkit Power BI-rapporterna fungerar som förväntat.
Exportmanifest kan ändras med API-versioner. Här är ett exempel med API-version 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-hubbar använder följande egenskaper:
-
exportConfig.resourceIdför att identifiera omfånget. -
exportConfig.typeför att identifiera datamängdstypen. -
exportConfig.dataVersionför att identifiera datamängdsversionen. -
runInfo.startDateför att identifiera den exporterade månaden.
FinOps-hubbar stöder följande datauppsättningstyper, versioner och API-versioner:
- FocusCost:
1.0,1.0-preview(v1) - Prisdokument:
2023-05-01 - Reserveringsdetaljer:
2023-03-01 - Bokningsrekommendationer:
2023-05-01 - Reservationstransaktioner:
2023-05-01 - API-versioner:
2023-07-01-preview
FinOps Hubs v0.4-0.5
Följande information beskriver hur data bearbetas i FinOps Hubs v0.4 och v0.5.
Omfångskonfiguration i v0.4-0.5
- Utlösaren config_SettingsUpdated körs när settings.json-filen uppdateras.
- Den config_ConfigureExports pipelinen skapar nya exporter för alla nya omfång som har lagts till.
Datainmatning för v0.4-0.5
För hanterade omfång:
- Config_DailySchedule och config_MonthlySchedule körs enligt sina respektive scheman för att starta datainmatning.
- Den config_ExportData pipelinen hämtar tillämpliga exporter för det schema som körs.
- Den config_RunExports pipelinen kör var och en av de valda exporterna.
- Cost Management exporterar information om råa kostnader till containern msexports . Mer information finns i Om exporter i v04-05.
När exporten har slutförts för både hanterade och ohanterade omfång:
- Den msexports_ExecuteETL pipelinen startar ETL-processen (extract-transform-load) när filer läggs till i lagringen.
- Den msexports_ETL_ingestion pipeline omvandlar data till ett standardschema och sparar rådata i parquet-formatet till ingestioncontainern. För mer information, se Om inmatning i v04-05.
- Power BI läser kostnadsdata från inmatningscontainern .
Om inmatning i v0.4-0.5
FinOps-hubbar förlitar sig på en specifik mappsökväg i inmatningscontainern :
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
-
ingestionär containern där datapipelinen sparar data. -
{dataset}är den exporterade datamängdstypen. -
{month}är året och månaden för exporterade data formaterade somyyyyMM. -
{scope-id}förväntas vara det fullständigt kvalificerade resurs-ID:t för det omfång som data kommer från.
Om du behöver använda hubbar för att övervaka data som inte är Azure konverterar du data till FOCUS och släpper dem i inmatningscontainern . Den här processen testades inte uttryckligen i den senaste versionen. Om du får problem, rapporterar du ett problem.
Om exporterna i v0.4-0.5
FinOps-hubbar använder Cost Management-exporter för att hämta kostnadsdata. Cost Management styr mappstrukturen för exporterade data i containern msexports . En typisk sökväg ser ut så här:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
Från och med 0.4 förlitar sig FinOps-hubbar inte på filsökvägar. Hubbar använder manifestfilen för att identifiera omfång, datauppsättning, månad och så vidare. Den enda viktiga delen av sökvägen för hubbar är containern, som måste vara msexports.
Anteckning
Exportera inte data till inmatningscontainern . Exporterade CSV:er måste publiceras till containern msexports som ska bearbetas av hubbarmotorn.
Om du vill mata in anpassade data sparar du FOCUS-anpassade parquet-filer i inmatningscontainern så att FinOps toolkit Power BI-rapporterna fungerar som förväntat.
Exportmanifest kan ändras med API-versioner. Här är ett exempel med API-version 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-hubbar använder följande egenskaper:
-
exportConfig.resourceIdför att identifiera omfånget. -
exportConfig.typeför att identifiera datamängdstypen. -
exportConfig.dataVersionför att identifiera datamängdsversionen. -
runInfo.startDateför att identifiera den exporterade månaden.
FinOps-hubbar stöder följande datauppsättningstyper, versioner och API-versioner:
- FocusCost:
1.0,1.0-preview(v1) - Prisdokument:
2023-05-01 - Reserveringsdetaljer:
2023-03-01 - Bokningsrekommendationer:
2023-05-01 - Reservationstransaktioner:
2023-05-01 - API-versioner:
2023-07-01-preview
FinOps Hubs v0.2-0.3
Följande steg beskriver processen för att exportera och bearbeta kostnadsdata med hjälp av FinOps Hubs-versionerna 0.2-0.3:
- Cost Management exporterar information om råa kostnader till containern msexports .
- Den msexports_ExecuteETL pipelinen startar ETL-processen (extract-transform-load) när filer läggs till i lagringen.
- Den msexports_ETL_ingestion pipelinen sparar exporterade data i parquet-format i inmatningscontainern .
- Power BI läser kostnadsdata från inmatningscontainern .
FinOps Hubs 0.2-0.3 använder exportsökvägen för att fastställa det exporterade omfånget och månaden. Den här punkten är viktig eftersom uppdateringar av sökvägen kan bryta datapipelinesystemet. För att undvika det här problemet rekommenderar vi att du uppdaterar till FinOps Hubs 0.4. Den förväntade sökvägen bör efterlikna:
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
-
msexportsär containern som anges vid exporten. -
{scope-id}är mappsökvägen som anges vid exporten.Hubbar version 0.3 och tidigare använder detta för att identifiera vilket omfång som datan kommer ifrån. Vi rekommenderar att du använder omfångs-ID:t, men alla värden kan användas. Exempel på omfattnings-ID:n är:
Omfattningstyp Exempelvärde Prenumeration /subscriptions/###Resursgrupp /subscriptions/###/resourceGroups/###Faktureringskonto /providers/Microsoft.Billing/billingAccounts/###Faktureringsprofil /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/### -
{export-name}är namnet på exporten.Hubbar ignorerar den här mappen.
-
{date-range}är datumintervalldata som exporteras.Hubbar 0.3 och tidigare använder detta för att identifiera månaden. Formatet för den här mappen är
yyyyMMdd-yyyyMMdd. Hubs 0.4 använder manifestet i stället. -
{export-time}är en tidsstämpel för när exporten kördes.Hubbar ignorerar detta. Formatet för den här mappen är
yyyyMMddHHmm. -
{guid}är ett unikt GUID och finns inte alltid.Hubbar ignorerar detta. Cost Management inkluderar inte alltid den här mappen. Om den ingår eller inte beror på vilken API-version som används för att skapa exporten.
-
{file}är antingen ett manifest eller exporterade data.Version 0.3 och tidigare ignorerar manifestfiler och övervakar endast *.csv filer. I en framtida version övervakar hubbar manifestet.
FinOps Hubs v0.1
Följande steg beskriver processen för att exportera och bearbeta kostnadsdata med FinOps Hubs version 0.1:
- Cost Management exporterar information om råa kostnader till containern msexports .
- Den msexports_transform pipelinen sparar rådata i parquet-format till inmatningscontainern .
- Power BI läser kostnadsdata från inmatningscontainern .
Lämna feedback
Låt oss veta hur det går med en snabb granskning. Vi använder dessa granskningar för att förbättra och utöka FinOps-verktyg och -resurser.
Om du letar efter något specifikt kan du rösta på en befintlig eller skapa en ny idé. Dela idéer med andra för att få fler röster. Vi fokuserar på idéer med flest röster.