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}_raw
i 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_0
tabell 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_IngestionTime
för att ange när raden senast uppdaterades. - Lägg till
x_SourceChanges
för att identifiera när data i en rad ändras av hubbar. - Uppdatera
ProviderName
ochPublisherName
när de inte har angetts. - Lägg till
x_SourceName
,x_SourceProvider
,x_SourceType
ochx_SourceVersion
för att identifiera den ursprungliga inmatade datamängden. - Fyll i saknade värden för
ListCost
,ListUnitPrice
,ContractedCost
ochContractedUnitPrice
baserat 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
ContractedCost
när det har angetts felaktigt på grund av ett problem i Cost Management. - Skriv
ResourceName
ochx_ResourceGroupName
med gemener för att åtgärda konsekvensproblem med versalisering som bryter gruppering och filtrering. - Lägg till
x_BillingAccountAgreement
baserat på kontotypen.
- Justera kolumnnamnen för FOCUS 1.0-preview till FOCUS 1.0.
- v0.8+:
- Åtgärda alla
ResourceType
värden som använder interna resurstyps-ID:er (till exempel microsoft.compute/virtualmachines).
- Åtgärda alla
- v0.9+:
- Använd gemener för
BillingAccountId
för att säkerställa att prisjämförelsen matchar alla rader. - Skriv med små bokstäver
CommitmentDiscountId
för att undvika dubbletter av rader när data aggregeras. - Lägg till nya
x_SourceChanges
kontroller förListCostLessThanContractedCost
ochContractedCostLessThanEffectiveCost
.
- Använd gemener för
- v0.10+:
- Åtgärda
x_EffectiveUnitPrice
när den beräknas och det finns ett avrundningsfel jämfört medx_BilledUnitPrice
ellerContractedUnitPrice
. - Beräkna PricingQuantity och ConsumedQuantity när det finns kostnad men ingen kvantitet.
- Ange
ContractedCost
tillEffectiveCost
när det inte har angetts. - Ange
ListCost
tillContractedCost
när det inte har angetts. - Ta bort "-2" i
x_InvoiceSectionId
kolumnen. - Ta bort "Ej tilldelad" i
x_InvoiceSectionName
kolumnen. - Korrigeras
x_EffectiveUnitPrice
när den beräknas och har ett avrundningsfel. - Lägg till nya
x_SourceChanges
kontroller förMissingConsumedQuantity
,MissingPricingQuantity
ochXEffectiveUnitPriceRoundingError
.
- Åtgärda
- v0.11+:
- Ändra
BillingPeriodStart
ochBillingPeriodEnd
till 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_SkuTerm
ISO-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
ContractedUnitPrice
för användning av sparplan med motsvarigheten på begäran. - Ange
ListUnitPrice
för användning av sparplan inställd på motsvarande på begäran. - Lägg till
SkuPriceIdv2
som ett mer exaktSkuPriceId
värde än vad som för närvarande finns i kostnadsinformationen. - Lägg till
x_IngestionTime
för att ange när raden senast uppdaterades. - Lägg till
x_CommitmentDiscountSpendEligibility
ochx_CommitmentDiscountUsageEligibility
. - Expandera
x_PricingUnitDescription
tillPricingUnit
ochx_PricingBlockSize
. - Lägg till
x_BillingAccountAgreement
baserat på kontotypen. - Ändra
x_EffectivePeriodEnd
till ett exklusivt slutdatum. - Lägg till
x_EffectiveUnitPriceDiscount
,x_ContractedUnitPriceDiscount
ochx_TotalUnitPriceDiscount
för att sammanfatta tillgängliga rabatter per SKU. - Lägg till
x_EffectiveUnitPriceDiscountPercent
,x_ContractedUnitPriceDiscountPercent
ochx_TotalUnitPriceDiscountPercent
för att sammanfatta procentandelen av rabatten per SKU. - Lägg till
x_SourceName
,x_SourceProvider
,x_SourceType
ochx_SourceVersion
för att identifiera den ursprungliga inmatade datamängden.
- Justera kolumnnamnen till FOCUS 1.0.
- v0.9+:
- Använd gemener
BillingAccountId
fö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_SourceType
ochx_SourceVersion
fö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_SourceType
ochx_SourceVersion
fö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
ResourceType
kolumn med resurstypens visningsnamn. - Lägg till kolumnerna
ServiceName
,ServiceCategory
ochx_ServiceModel
. - Ersätt "NA" med null i
x_CommitmentDiscountNormalizedGroup
. - Lägg till
x_CommitmentDiscountQuantity
baserat 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.resourceId
för att identifiera omfånget. -
exportConfig.type
för att identifiera datamängdstypen. -
exportConfig.dataVersion
för att identifiera datamängdsversionen. -
runInfo.startDate
fö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.resourceId
för att identifiera omfånget. -
exportConfig.type
för att identifiera datamängdstypen. -
exportConfig.dataVersion
för att identifiera datamängdsversionen. -
runInfo.startDate
fö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.