FinOps toolkit changelog Explore the latest and greatest features and enhancements from the FinOps toolkit.

Download the latest release See changes

On this page

🔄️ Unreleased

🏦 FinOps hubs

➕ Added:

  1. Auto-backfill – Backfill historical data from Microsoft Cost Management.
  2. Retention – Configure how long you want to keep Cost Management exports and normalized data in storage.
  3. ETL pipelile – Add support for parquet files created by Cost Management exports.

📊 Power BI reports

➕ Added:

  • General
    1. Populate missing prices.

🦾 Bicep modules

➕ Added:

  1. Cost Management export modules for subscriptions and resource groups.


🚚 v0.7

Released November 2024

📗 FinOps guide

✏️ Changed:

  1. Added Enterprise App Patterns links resources to the architecting for the cloud section.
  2. Update cost and unit of measuring handling in the FOCUS conversion instructions.

📊 Power BI reports

➕ Added:

  • General
    1. Added partial support for OneLake URLs.
      • This is not fully tested. This is based on feedback about OneLake file paths being different. Additional changes may be needed to fully support Microsoft Fabric.
    2. Fix EffectiveCost for savings plan purchases to work around a bug in exported data.
    3. Added KQL-based version of the Cost summary, Data ingestion, and Rate optimization reports that connect to FinOps hubs with Azure Data Explorer.

✏️ Changed:

  • General
    1. Consolidated the Hub Storage URL and Export Storage URL parameters into a single Storage URL.
      • This means all datasets will either need to be raw exports outside of FinOps hubs or be processed through hubs. This release no longer supports some data from hubs and some from raw exports.
      • If you have existing exports that are not running through hubs data pipelines, simply change the exports to point to the hub msexports container.
      • This change was made to simplify the setup process and avoid errors in Power BI service configuration (e.g., incremental refresh).
    2. Renamed the following columns:
      • x_DatasetChanges is now x_SourceChanges
      • x_DatasetType is now x_SourceType
      • x_DatasetVersion is now x_SourceVersion
      • x_AccountType is now x_BillingAccountAgreement
    3. Updated supported spend estimates in the Power BI documentation.

🏦 FinOps hubs

Breaking change

➕ Added:

  1. Option to ingest data into an Azure Data Explorer cluster.
  2. Set missing reservation list and contracted prices/cost columns for EA and MCA accounts (Data Explorer only).
    • Requires the price sheet export to be configured.
  3. Support for FOCUS 1.0r2 exports.
    • The 1.0r2 dataset only differs in date formatting. There are no functional differences compared to 1.0.
    • The 1.0r2 dataset is only needed when ingesting data into a system that requires date/time values to include seconds (for example, “2024-01-01T00:00:00Z” where the last “00” is seconds).
  4. Support for private endpoints via an optional template parameter.
    • Added private endpoints for storage account, Azure Data Explorer & Keyvault.
    • Added managed virtual network & storage endpoint for Azure Data Factory Runtime.
    • All data processing now happens within a virtual network.
    • Added param to disable external access to Azure Data Lake and Azure Data Explorer.
    • Added param to specify subnet range of virtual network - minimum size = /26
  5. Support for storage account infrastructure encryption.
  6. Published a schema file for the hub settings.json file.

✏️ Changed:

  1. Changed dataset names in the ingestion container to facilitate Azure Data Explorer ingestion.

    This change requires removing previously ingested data for the current month to avoid data duplication. You do not need to re-export historical data for storage-based Power BI reports; however, historical data DOES need to be re-exported to ingest into Azure Data Explorer.

    • For FOCUS cost data, use “Costs”.
    • For price sheet data, use “Prices”.
    • For reservation details, use “CommitmentDiscountUsage”.
    • For reservation recommendations, use “Recommendations”.
    • For reservation transactions, use “Transactions”.
  2. Renamed the msexports_FileAdded trigger to msexports_ManifestAdded.

🛠️ Fixed:

  1. Fix EffectiveCost for savings plan purchases to work around a bug in exported data (Data Explorer only).
    • The same fix was applied to Power BI reports for those not using Data Explorer. The underlying data has not changed however.

📒 FinOps workbooks

➕ Added:

  • Optimization workbook
    1. On the Storage tab, included the RSVaultBackup tag in the list of non-idle disks.

🛠️ Fixed:

  • Optimization workbook
    1. On the Commitment discounts tab, fixed RI ROWS Limited.
    2. On the Compute tab, fixed incorrect VM processor in processors query.

🗑️ Removed:

  • Optimization workbook
    1. On the Database tab, removed the idle SQL databases query.
      • This query will be re-evaluated and added again in a future release.

🔍 Optimization engine

🛠️ Fixed:

  1. Exports ingestion issues in cases where exports come with empty lines (#998)
  2. Missing columns in EA savings plans exports (#1026)

🌐 Open data

➕ Added:

  • Resource types
    1. Added 50 new Microsoft.AWSConnector resource types.
    2. Added 8 new Microsoft.Compute resource types.
    3. Added 3 new Microsoft.ContainerInstance resource types.
    4. Added 3 new Microsoft.DatabaseFleetManager resource types.
    5. Added 4 new Microsoft.Fabric resource types.
    6. Added 5 new Microsoft.OpenLogisticsPlatform resource types.
    7. Added 3 new Microsoft.Sovereign resource types.
    8. Added 14 other new resource types: arizeai.observabilityeval/organizations, lambdatest.hyperexecute/organizations, microsoft.azurestackhci/edgedevices/jobs, microsoft.clouddeviceplatform/delegatedidentities, microsoft.compute/capacityreservationgroupscomputehub, microsoft.compute/galleries/imagescomputehub, microsoft.compute/hostgroupscomputehub, microsoft.hybridcompute/machinessoftwareassurance, microsoft.machinelearning/workspaces, microsoft.resources/deletedresources, microsoft.security/defenderforstoragesettings/malwarescans, microsoft.weightsandbiases/instances, neon.postgres/organizations, pinecone.vectordb/organizations.
  • Services
    1. Added 3 resource types to existing services: microsoft.hardwaresecuritymodules/cloudhsmclusters, microsoft.healthdataaiservices/deidservices, microsoft.insights/datacollectionrules.

✏️ Changed:

  • Resource types
    1. Updated 17 new Microsoft.ComputeHub resource types.
    2. Updated 9 other resource type: microsoft.appsecurity/policies, microsoft.compute/virtualmachines/providers/guestconfigurationassignments, microsoft.dbforpostgresql/flexibleservers, microsoft.deviceregistry/billingcontainers, microsoft.durabletask/namespaces, microsoft.durabletask/namespaces/taskhubs, microsoft.edge/configurations, microsoft.hybridcompute/machines/providers/guestconfigurationassignments, microsoft.securitycopilot/capacities.


🪛 v0.6 Update 1

Released October 5, 2024

This release is a minor patch to update documentation and fix Rate optimization and Data ingestion Power BI files. These files were updated in the existing 0.6 release. We are documenting this as a new patch release for transparency. If you downloaded these files between October 2-4, 2024, please update to the latest version.

📊 Power BI reports

➕ Added:

  1. Documented the need to configure both Hub Storage URL and Export Storage URL when publishing reports to the Power BI service (#1033).

🛠️ Fixed:

  1. Updated the Data ingestion report to account for storage path changes (#1043).
  2. Updated the Rate optimization report to remove the sensitivity level (#1041).

🏦 FinOps hubs

➕ Added:

  1. Added compatibility guide to identify when changes are compatible with older Power BI reports.

✏️ Changed:

  1. Updated the upgrade guide to account for changes in 0.5 and 0.6.

🛠️ Fixed:

  1. Fixed the reservation details mapping file.


🚚 v0.6

Released October 2, 2024

📗 FinOps guide

➕ Added:

  1. Started a FinOps best practices library using Azure Resource Graph (ARG) queries from the Cost optimization workbook.

📊 Power BI reports

➕ Added:

✏️ Changed:

  • General
    1. Renamed Prices ChargePeriodStart/*End to x_EffectivePeriodStart/*End.
    2. Removed auto-created date tables.

🛠️ Fixed:

  • General
    1. Improved import performance by using parquet metadata to filter files by date (if configured).
    2. Improved performance of column updates in CostDetails and Prices queries.
    3. In the Prices query, fixed bug where SkuID was not merged into x_SkuId.

🏦 FinOps hubs

➕ Added:

  1. Support for Cost Management parquet and GZip CSV exports.
  2. Support for ingesting price, reservation recommendation, reservation detail, and reservation transaction datasets via Cost Management exports.
  3. Compatibility guide to explain what versions of hubs and Power BI reports work together.
  4. New UnsupportedExportFileType error when the exported file type is not supported.

✏️ Changed:

  1. Renamed the following pipelines to be clearer about their intent:
    • config_BackfillData to config_StartBackfillProcess.
    • config_ExportData to config_StartExportProcess.
    • config_RunBackfill to config_RunBackfillJob.
    • config_RunExports to config_RunExportJobs.
  2. Changed the storage ingestion path from “{scope}/{yyyyMM}/{dataset}” to “{dataset}/{yyyy}/{MM}/{dataset}”

🛠️ Fixed:

  1. Updated the config_RunBackfillJob and config_StartExportProcess pipelines to handle when there’s a single scope defined in config instead of an array.
  2. Corrected the reservation details version in the schema file name in storage.

🗑️ Removed

  1. Removed the temporary Event Grid resource from the template.

📒 Azure Monitor workbooks

➕ Added:

  1. Created an option to deploy all general-purpose FinOps toolkit workbooks together.
    • Does not include workbooks specific to Optimization Engine.

🔍 Optimization engine

➕ Added:

  1. Troubleshooting documentation page with the most common deployment and runtime issues and respective solutions or troubleshooting steps.

✏️ Changed:

  1. Replaced storage account key-based authentication with Entra ID authentication for improved security.

🛠️ Fixed:

  1. Added expiring savings plans and reservations to usage workbooks (#1014).

🚫 Deprecated:

  1. With the deprecation of the legacy Log Analytics agent in August 31, the Setup-LogAnalyticsWorkspaces script is no longer being maintained and will be removed in a future update.

🖥️ PowerShell

✏️ Changed:

  1. Added a -ServiceSubcategory filter option to the Get-FinOpsService command.

🌐 Open data

➕ Added:

  • Resource types
    1. Added 13 new Microsoft.Billing resource types.
    2. Added 17 new Microsoft.ComputeHub resource types.
    3. Added 2 new Microsoft.DeviceOnboarding resource types.
    4. Added 8 new Microsoft.Edge resource types.
    5. Added 8 other new resource types: “microsoft.agricultureplatform/agriservices”, “microsoft.azurefleet/fleetscomputehub”, “microsoft.cloudtest/buildcaches”, “microsoft.contoso/employees/desks”, “microsoft.databasefleetmanager/fleets”, “microsoft.resources/databoundaries”, “microsoft.subscription/changetenantrequest”, “microsoft.sustainabilityservices/calculations”.
  • Services
    1. Added a new ServiceSubcategory column to support FOCUS 1.1 ServiceSubcategory mapping.
    2. Added the following resource types to existing services: “microsoft.apimanagement/gateways”, “microsoft.sql/longtermretentionmanagedinstances”, “microsoft.sql/longtermretentionservers”, “microsoft.verifiedid/authorities”.

✏️ Changed:

  • Resource types
    1. Updated 2 Microsoft.DurableTask resource types.
    2. Updated 4 Microsoft.SignalRService resource types.
    3. Updated 4 Microsoft.TimeSeriesInsights resource types.
    4. Updated 4 other resource type: “microsoft.network/dnsresolvers”, “microsoft.search/searchservices”, “microsoft.storagepool/diskpools/iscsitargets”, “oracle.database/oraclesubscriptions”.

Download v0.6 Full changelog


🪛 v0.5 Update 1

Released September 7, 2024

This release is a minor patch to Power BI files. These files were updated in the existing 0.5 release. We are documenting this as a new patch release for transparency.

📊 Power BI reports

🛠️ Fixed:

  1. Corrected a bug where ADLS data sources could not be refreshed from the Power BI service (#964).

    This updated all PBIX/PBIT files downloaded between September 1-6, 2024. If you are using one of these files and plan to publish it to the Power BI service, please update to the latest version of the PBIX or PBIT files.


🚚 v0.5

Released September 1, 2024

📗 FinOps guide

➕ Added:

  1. Documented how to compare FOCUS and actual/amortized data to learn and validate FOCUS data.

📊 Power BI reports

✏️ Changed:

  • General
    1. Updated ListCost, ListUnitPrice, ContractedCost, and ContractedUnitPrice when not provided in Cost Management exports.
      • Contracted cost/price are set to effective cost/price when not available.
      • List cost/price are set to contracted cost/price when not available.
      • This means savings can be calculated, but will not be complete.
      • Refer to the DQ page for details about missing or updated data.
    2. Added support for pointing Power BI reports to directly to Cost Management exports (without FinOps hubs).
    3. Added new tables for Prices, ReservationDetails, ReservationRecommendations, and ReservationTransactions (works with exports only; does not work with hubs).
  • Cost summary
    1. Added a table to the DQ page to identify rows for which a unique ID cannot be identified.
    2. Added a table to the DQ page to identify rows where billing currency and pricing currency are different.
  • Rate optimization
    1. Commitment savings no longer filters out rows with missing list/contracted cost.
      • Since ListCost and ContractedCost are set to a fallback value when not included in Cost Management data, we can now calculate partial savings.
      • Calculated savings is still incomplete since we do not have accurate list/contracted cost values.
    2. Merged shared and single reservation recommendations into a single Reservation recommendations page.

🛠️ Fixed:

  • General
    1. Fixed a bug in Cost Management exports where committed usage is showing as “Standard” pricing category.

🏦 FinOps hubs

➕ Added:

  1. Added an optional skipEventGridRegistration template parameter to support skipping Event Grid RP registration.
  2. Added an Event Grid section to the hubs create form.

✏️ Changed:

  1. Changed the Event Grid location selection logic to only identify fallback regions rather than supported regions.
  2. Expanded cost estimate documentation to call out Power BI pricing and include a link to the Pricing Calculator.

🛠️ Fixed:

  1. Updated the config_ConfigureExports pipeline to handle when scopes in settings.json is not an object.
  2. Fixed a bug where scopes added via the Add-FinOpsHubScope command are not added correctly due to missing brackets.

📒 Azure Monitor workbooks

➕ Added:

  • Optimization workbook:
    1. New compute query to identify VMs per processor architecture type
    2. New database query to identify SQL Pool instances with 0 databases
    3. New storage query to identify Powered Off VMs with Premium Disks

✏️ Changed:

  • Optimization workbook:
    1. Redesign of the Rate Optimization tab for easier identification of the break-even point for reservations
    2. Fixed the AHB VMSS query to count the total cores consumed per the entire scale set
    3. Improved storage idle disks query to ignore disks used by AKS pods
    4. Updated Storage not v2 query to exclude blockBlobStorage accounts from the list
    5. Added export option for the list of idle backups to streamline data extraction
  • Governance workbook:
    1. Removed the management group filter to simplify filtering by subscription.

🔍 Optimization engine

➕ Added:

  1. Register-MultitenantAutomationSchedules PowerShell script helper to add a different Azure tenant to the scope of AOE.
  2. ZRS disks included in the scope of the Premium SSD disk has been underutilized recommendation (besides LRS).
  3. Option to scope consumption exports to MCA Billing Profile.

✏️ Changed:

  1. Improved SQL Database security, replacing SQL authentication by Entra ID authentication-only.

🛠️ Fixed:

  1. Premium SSD disk has been underutilized recommendation was not showing results due to a meter name change in Cost Management (#831).
  2. Consumption exports for Pay-As-You-Go MCA subscriptions were missing cost data (#828)

🖥️ PowerShell

➕ Added:

  1. Added support for FOCUS, pricesheet, and reservation dataset filters in Get-FinOpsCostExport.
  2. Added a -DatasetVersion filter in Get-FinOpsCostExport.

✏️ Changed:

  1. Update Get-AzAccessToken calls to use -AsSecureString (#946).

🛠️ Fixed:

  1. Fixed New-FinOpsCostExport to address breaking change in Cost Management when storage paths start with “/”.
  2. Fixed a bug where scopes added via the Add-FinOpsHubScope command are not added correctly due to missing brackets.

🌐 Open data

➕ Added:

  • Pricing units
    1. Added handling for the following new UnitOfMeasure values: “1 /Minute”, “10 PiB/Hour”, “100000 /Month”, “Text”.
  • Regions
    1. Added the following new region values: “asiapacific”, “australia”, azure “stack”, “eastsu2”, “gbs”, germany west “central”, “japan”, sweden “central”, “unitedstates”, us dod “central”, us dod “east”, us gov “iowa”, us gov “virginia”, “us2”, “usa”, “usv”.
  • Resource types
    1. Added the following new resource types: “microsoft.app/logicapps”, “microsoft.app/logicapps/workflows”, “microsoft.azurebusinesscontinuity/deletedunifiedprotecteditems”, “microsoft.azurebusinesscontinuity/unifiedprotecteditems”, “microsoft.azurecis/publishconfigvalues”, “microsoft.compositesolutions/compositesolutiondefinitions”, “microsoft.compositesolutions/compositesolutions”, “microsoft.compute/capacityreservationgroups/capacityreservations”, “microsoft.compute/virtualmachinescalesets/virtualmachines”, “microsoft.datareplication/replicationvaults/alertsettings”, “microsoft.datareplication/replicationvaults/events”, “microsoft.datareplication/replicationvaults/jobs”, “microsoft.datareplication/replicationvaults/jobs/operations”, “microsoft.datareplication/replicationvaults/operations”, “microsoft.datareplication/replicationvaults/protecteditems”, “microsoft.datareplication/replicationvaults/protecteditems/operations”, “microsoft.datareplication/replicationvaults/protecteditems/recoverypoints”, “microsoft.datareplication/replicationvaults/replicationextensions”, “microsoft.datareplication/replicationvaults/replicationextensions/operations”, “microsoft.datareplication/replicationvaults/replicationpolicies”, “microsoft.datareplication/replicationvaults/replicationpolicies/operations”, “microsoft.deviceregistry/billingcontainers”, “microsoft.deviceregistry/discoveredassetendpointprofiles”, “microsoft.deviceregistry/discoveredassets”, “microsoft.deviceregistry/schemaregistries”, “microsoft.deviceregistry/schemaregistries/schemas”, “microsoft.deviceregistry/schemaregistries/schemas/schemaversions”, “microsoft.eventgrid/systemtopics/eventsubscriptions”, “microsoft.hardware/orders”, “microsoft.hybridcompute/machines/microsoft.awsconnector/ec2instances”, “microsoft.hybridonboarding/extensionmanagers”, “microsoft.iotoperations/instances”, “microsoft.iotoperations/instances/brokers”, “microsoft.iotoperations/instances/brokers/authentications”, “microsoft.iotoperations/instances/brokers/authorizations”, “microsoft.iotoperations/instances/brokers/listeners”, “microsoft.iotoperations/instances/dataflowendpoints”, “microsoft.iotoperations/instances/dataflowprofiles”, “microsoft.iotoperations/instances/dataflowprofiles/dataflows”, “microsoft.messagingconnectors/connectors”, “microsoft.mobilepacketcore/networkfunctions”, “microsoft.saashub/cloudservices/hidden”, “microsoft.secretsynccontroller/azurekeyvaultsecretproviderclasses”, “microsoft.secretsynccontroller/secretsyncs”, “microsoft.storagepool/diskpools/iscsitargets”, “microsoft.usagebilling/accounts/dataexports”, “microsoft.usagebilling/accounts/metricexports”, “microsoft.windowsesu/multipleactivationkeys”.
  • Services
    1. Added the following consumed services: “API Center”, “API Management”, “Bastion Scale Units”, “Microsoft.Community”, “Microsoft.DataReplication.Admin”, “Microsoft.DevOpsInfrastructure”, “Microsoft.Dynamics365FraudProtection”, “Microsoft.HybridContainerService”, “Microsoft.NetworkFunction”, “Microsoft.RecommendationsService”, “Microsoft.ServiceNetworking”, “Virtual Network”.
    2. Added the following resource types to existing services: “Microsoft.AgFoodPlatform/farmBeats”, “Microsoft.App/sessionPools”, “Microsoft.AzureActiveDirectory/ciamDirectories”, “Microsoft.AzureArcData/sqlServerEsuLicenses”, “Microsoft.Graph/accounts”, “Microsoft.MachineLearningServices/registries”, “Microsoft.Orbital/groundStations”, “PlayFabBillingService/partyVoice”.

✏️ Changed:

  • Pricing units
    1. Changed DistinctUnits for the “10000s” UnitOfMeasure from “Units” to “Transactions”.
  • Resource types
    1. Updated the following resource types: “microsoft.apimanagement/gateways”, “microsoft.azurearcdata/sqlserveresulicenses”, “microsoft.azurestackhci/edgenodepools”, “microsoft.azurestackhci/galleryimages”, “microsoft.azurestackhci/logicalnetworks”, “microsoft.azurestackhci/marketplacegalleryimages”, “microsoft.azurestackhci/networkinterfaces”, “microsoft.azurestackhci/storagecontainers”, “microsoft.cache/redisenterprise”, “microsoft.cache/redisenterprise/databases”, “microsoft.databricks/accessconnectors”, “microsoft.datareplication/replicationvaults”, “microsoft.devhub/iacprofiles”, “microsoft.edge/sites”, “microsoft.eventhub/namespaces”, “microsoft.hybridcompute/gateways”, “microsoft.impact/connectors”, “microsoft.iotoperationsorchestrator/instances”, “microsoft.iotoperationsorchestrator/solutions”, “microsoft.iotoperationsorchestrator/targets”, “microsoft.kubernetesruntime/loadbalancers”, “microsoft.manufacturingplatform/manufacturingdataservices”, “microsoft.network/dnsforwardingrulesets”, “microsoft.network/dnsresolvers”, “microsoft.network/dnszones”, “microsoft.powerbidedicated/capacities”, “microsoft.programmableconnectivity/gateways”, “microsoft.programmableconnectivity/operatorapiconnections”, “microsoft.programmableconnectivity/operatorapiplans”, “microsoft.resources/subscriptions/resourcegroups”, “microsoft.security/pricings”, “microsoft.sovereign/transparencylogs”, “microsoft.storagepool/diskpools”.
    2. Updated multiple resource types for the following resource providers: “microsoft.awsconnector”.
    3. Changed the following resource providers to be GA: “microsoft.modsimworkbench”.
  • Services
    1. Moved Microsoft Genomics from the “AI and Machine Learning” service category to “Analytics”.
    2. Changed Microsoft Genomics from the “SaaS” service model to “PaaS”.
    3. Replace “Azure Active Directory” service name references with “Microsoft Entra”.
    4. Move Azure Cache for Redis from the “Storage” service category to “Databases”.
    5. Move Event Hubs from the “Integration” service category to “Analytics”.
    6. Rename the Microsoft.HybridCompute consumed service service name from “Azure Resource Manager” to “Azure Arc”.
    7. Move Microsoft Defender for Endpoint from the “Multicloud” service category to “Security”.
    8. Move StorSimple from the “Multicloud” service category to “Storage”.

🗑️ Removed

  • Resource types
    1. Removed internal “microsoft.cognitiveservices/browse*” resource types.

Download v0.5 Full changelog


🚚 v0.4

Released July 12, 2024

📗 FinOps guide

➕ Added:

  1. Documented the FOCUS export dataset to align to the FOCUS metadata specification.

✏️ Changed:

  1. Updated FinOps Framework guidance to account for the 2024 updates.
  2. Updated FOCUS guidance to FOCUS 1.0.

🏦 FinOps hubs

➕ Added:

  1. Ingest FOCUS 1.0 data in FinOps hubs.
  2. Grant access to FinOps hubs to create and manage exports for you.
  3. Connect to a hub instance in another Entra ID tenant.
  4. Step-by-step troubleshooting guide and expanded set of common errors for validating FinOps hubs and Power BI setup.

🛠️ Fixed:

  1. Fixed an issue where some dates are showing as off by 1 based on local time zone.
    • If you see dates that are off, upgrade to 0.4 and re-export those months. The fix is in ingestion.
    • You can re-export data in FOCUS 1.0 or FOCUS 1.0 preview. We recommend FOCUS 1.0 for slightly faster refresh times in Power BI.

📊 Power BI reports

➕ Added:

  • General:
    1. x_IncrementalRefreshDate column to facilitate configuring incremental refresh in Power BI.
    2. Step-by-step troubleshooting guide and expanded set of common errors for validating Power BI setup.
  • Cost summary:
    1. Resource count and cost per resource in the Inventory page.
  • Data ingestion:
    1. Ingestion errors page to help identify FinOps hub data ingestion issues.

✏️ Changed:

  • General:
    1. Changed the Tags column to default to {} when empty to facilitate tag expansion (#691).
    2. Simplified formatting for the BillingPeriod and ChargePeriod measures in Power BI.
    3. Improved error handling for derived savings columns in the CostDetails query.
    4. Simplified queries and improved error handling in the START HERE query for report setup steps.
    5. Changed internal storage for reports to use Tabular Model Definition Language (TMDL).
      • This change makes it easier to review changes to the data model in Power BI.
      • Reports will still be released as PBIX files so this change should not impact end users.
      • Visualizations are not being switched to Power BI Enhanced Report (PBIR) format yet due to functional limitations that would impact end users (as of June 2024).
  • Cost summary:
    1. Changed the Cost summary Purchases page and Rate optimization Purchases page to use PricingQuantity instead of Usage/ConsumedQuantity and added the PricingUnit column.
    2. Updated the DQ page to identify empty ChargeDescription rows.
    3. Updated the DQ page to identify potentially missing rounding adjustments.
  • Rate optimization:
    1. Renamed the “Commitment discounts” report to “Rate optimization” to align to the FinOps Framework 2024 updates.
  • Data ingestion:
    1. Optimized Data ingestion report queries to reduce memory footprint and load faster.

      We are investigating an issue where we are missing rounding adjustments since May 2024. We do not yet know the cause of this issue.

🛠️ Fixed:

📒 Azure Monitor workbooks

➕ Added:

  • Optimization workbook:
    1. Added reservation recommendations with the break-even point to identify when savings would be achieved.
    2. Identify idle ExpressRoute circuits to streamline costs.
    3. Gain insights into the routing preferences for public IP addresses to optimize network performance.
    4. Explore commitment discount savings to get a clear overview of rate optimization opportunities.
    5. Quickly view public IP addresses with DDoS protection enabled and compare if it would be cheaper to enable DDoS to the vNet instead.
    6. Identify Azure Hybrid Benefit usage for SQL Database elastic pools to maximize cost efficiency.
  • Governance workbook:
    1. Added managed disk usage monitoring.

✏️ Changed:

  • Optimization workbook:
    1. Redesigned the Sustainability tab to clarify recommendations.
    2. Ignore dynamic IPs in the public IP addresses list to ensure more accurate results.
    3. Ignore free tier web apps to provide a clearer picture of your top services.
  • Governance workbook:
    1. Overview has been revised to align with the latest governance principles of the cloud adoption framework.

🔍 Optimization engine

➕ Added:

  1. Added Azure Optimization Engine (AOE), an extensible solution for custom optimization recommendations.

🖥️ PowerShell

➕ Added:

  1. Added progress tracking to Start-FinOpsCostExport for multi-month exports.
  2. Added a 60-second delay when Cost Management returns throttling (429) errors in Start-FinOpsCostExport.

✏️ Changed:

  1. Updated New-FinOpsCostExport to default to FOCUS 1.0.

🗑️ Removed:

  1. Removed support for Windows PowerShell.

    We discovered errors with Windows PowerShell due to incompatibilities in Windows PowerShell and PowerShell 7. Due to our limited capacity, we decided to only support PowerShell 7 going forward.

  2. Removed ConvertTo-FinOpsSchema and Invoke-FinOpsSchemaTransform commands which were deprecated in 0.2 (January 2024).

🌐 Open data

➕ Added:

  1. Added a new FOCUS 1.0 dataset example.
  2. Added dataset metadata for FOCUS 1.0 and FOCUS 1.0-preview.

✏️ Changed:

  1. Updated all open data files to include the latest data.
  2. Changed the primary columns in the Regions and Services open data files to be lowercase.
  3. Updated all sample exports to use the same date range as the FOCUS 1.0 dataset.

Download v0.4 Full changelog


🚚 v0.3

Released March 28, 2024

📗 FinOps guide

➕ Added:

  1. Moved Azure FinOps documentation about how to implement and adopt FinOps into the toolkit.

✏️ Changed:

  1. Rearranged documentation site to better organize content.

🏦 FinOps hubs

➕ Added:

  1. Started archiving template versions so they can be referenced easily via URL microsoft.github.io/finops-toolkit/deploy/finops-hub-{version}.json.

🛠️ Fixed:

  1. Fixed “missing period” error Data Factory Studio.
  2. Fixed bug where msexports_FileAdded trigger was not getting started.
  3. Fixed deploy to Azure buttons to point to the latest release.

✏️ Changed:

  1. Return a single boolean value from the Remove-FinOpsHub command.

📊 Power BI reports

➕ Added:

  1. Added ResourceParentId, ResourceParentName, and ResourceParentType columns to support the usage of the user-defined cm-resource-parent tag.
  2. Added ToolkitVersion and ToolkitTool columns to help quantify the cost of FinOps toolkit solutions.
  3. Added a DQ page to the Commitment discounts report for data quality validations. This page can be useful in identifying data gaps in Cost Management.
  4. Added x_NegotiatedUnitPriceSavings column to show the price reduction from negotiated discounts compared to the public, list price.
  5. Added x_IsFree column to indicate when a row represents a free charge (based on Cost Management data). This is used in data quality checks.
  6. Added Tags and TagsAsJson columns to both the Usage details and Usage details amortized tables in the CostManagementTemplateApp report (#625).

🛠️ Fixed:

  1. Fixed numerous errors causing the Cost Management connector report to not load for MCA accounts.
  2. Fixed incorrect filter in the Commitment discounts report (#585).
  3. Fixed data issue where Cost Management uses “1Year”, “3Years”, and “5Years” for the x_SkuTerm. Values should be 12, 36, and 60 (#594).
  4. Changed the data type for the x_Month column to be a date.
  5. Changed x_SkuTerm to be a whole number and to not summarize by default.
  6. Changed x_BillingExchangeRate to not summarize by default.
  7. Corrected references to x_InvoiceIssuerId and InvoiceIssuerName columns in the Cost Management connector report (#639).
  8. Corrected the datatype for the x_Month column.

✏️ Changed:

  1. Changed “Other” ChargeSubcategory for usage to “On-Demand” to be consistent with Cost Management exports
  2. Renamed savings columns for consistency:
    • x_OnDemandUnitPriceSavings is now x_CommitmentUnitPriceSavings. This shows the commitment discount price reduction compared to the negotiated prices for the account.
    • x_ListUnitPriceSavings is now x_DiscountUnitPriceSavings. This shows the price reduction from all discounts compared to the public, list price.
    • x_NegotiatedSavings is now x_NegotiatedCostSavings. This shows the cost savings from negotiated discounts only (excluding commitment discounts).
    • x_CommitmentSavings is now x_CommitmentCostSavings. This shows the cost savings from commitment discounts compared to on-demand prices for the account (including negotiated discounts).
    • x_DiscountSavings is now x_DiscountCostSavings. This shows the cost savings from all negotiated and commitment discounts.
  3. Changed the PricingQuantity and UsageQuantity columns to use 3 decimal places.
  4. Changed all cost columns to use 2 decimal places.
  5. Changed all unit price columns to not summarize by default and use 3 decimal places.
  6. Changed the x_PricingBlockSize column to a whole number and not summarize by default.
  7. Renamed the Coverage pages in the Commitment discounts report to Recommendations.

🖥️ PowerShell

➕ Added:

  1. Get-FinOpsService includes new -Environment and -ServiceModel filters and properties in the response (#585).

✏️ Changed:

  1. Start-FinOpsCostExport includes a new -Backfill option to backfill multiple months.
  2. Start-FinOpsCostExport includes a new -StartDate and -EndDate options to run the export for a given date range. This can include multiple months.

🛠️ Fixed:

  1. Fixed ParameterBindingException error in New-FinOpsCostExport.
  2. Updated the FOCUS dataset version that was changed in Cost Management exports in New-FinOpsCostExport.
  3. Changed the default -EndDate in New-FinOpsCostExport to be the end of the month due to a breaking change in Cost Management exports.
  4. Fixed internal command used in Deploy-FinOpsHub that may have caused it to fail for some versions of the Az PowerShell module.

🌐 Open data

➕ Added:

  1. Added ServiceModel and Environment columns to the services data (#585).
  2. New and updated resource types and icons.

Download v0.3 Full changelog


🚚 v0.2

Released January 22, 2024

🏦 FinOps hubs

Breaking change

🛠️ Fixed:

  1. Fixed error in some China regions where deployment scripts were not supported (#259).

✏️ Changed:

  1. Switch from amortized cost exports to FOCUS cost exports.

    This change requires re-ingesting historical data and is not backwards compatible. The unified schema used in this release is aligned with the future plans for Microsoft Cost Management exports. Note the next release will update the schema to align to the FinOps Open Cost and Usage Specification (FOCUS).

  2. Updated ingestion container month folders from yyyyMMdd-yyyyMMdd to yyyyMM.
  3. Renamed msexports_extract pipeline to msexports_ExecuteETL.
  4. Renamed msexports_transform pipeline to msexports_ETL_ingestion.

📊 Power BI reports

➕ Added:

  1. Cost Management connector report to support the Cost Management connector.

✏️ Changed:

  1. Updated Cost summary and Commitment discounts reports to FOCUS 1.0 preview.
  2. Updated Cost summary and Commitment discounts reports to only use FinOps hubs.
  3. Removed unused custom visualizations.
  4. Organized setup instructions in Cost summary to match other reports.
  5. Updated troubleshooting documentation.

🛠️ Fixed:

  1. Removed sensitivity labels.
  2. Fixed dynamic data source error when the Power BI service refreshes data.
    • Error message: “You can’t schedule refresh for this semantic model because the following data sources currently don’t support refresh…”
  3. Fixed error in ChargeId column when ResourceId is empty.
  4. Removed the ChargeId column due to it bloating the data size.
    • The field is commented out. If interested, you can enable uncomment it in the ftk_NormalizeSchema function. Just be aware that it duplicates a lot of columns to ensure uniqueness which bloats the data size significantly.
  5. Fixed null error when Billing Account ID is empty (#473).
  6. Added missing commitment discount refunds to the actual cost data (#447).

📒 Azure Monitor workbooks

➕ Added:

  • Optimization workbook:
    1. Storage: Identify Idle Backups: Review protected items’ backup activity to spot items not backed up in the last 90 days.
    2. Storage: Review Replication Settings: Evaluate and improve your backup strategy by identifying resources with default geo-redundant storage (GRS) replication.
    3. Networking: Azure Firewall Premium Features: Identify Azure Firewalls with Premium SKU and ensure associated policies leverage premium-only features.
    4. Networking: Firewall Optimization: Streamline Azure Firewall usage by centralizing instances in the hub virtual network or Virtual WAN secure hub.

✏️ Changed:

  • Optimization workbook:
    1. Top 10 services: Improved Monitoring tabs: Enhance your monitoring experience with updated Azure Advisor recommendations for Log Analytics.

🛠️ Fixed:

🖥️ PowerShell

➕ Added:

  1. New-FinOpsCostExport to create and update Cost Management exports.
  2. Start-FinOpsCostExport to run a Cost Management export immediately.
  3. Get-FinOpsCostExport now has a -RunHistory option to include the run history of each export.

✏️ Changed:

  1. Updated the default API version for export commands to 2023-07-01-preview to leverage new datasets and features.
    • Specify 2023-08-01 explicitly for the previous API version.

🛠️ Fixed:

  1. Fixed typo in Deploy-FinOpsHub causing it to fail.

🚫 Deprecated:

  1. ConvertTo-FinOpsSchema and Invoke-FinOpsSchemaTransform are no longer being maintained and will be removed in a future update.
    • With native support for FOCUS 1.0 preview in Cost Management, we are deprecating both commands, which only support FOCUS 0.5.
    • If you would like to see the PowerShell commands updated to 1.0 preview, please let us know in discussions or via a GitHub issue.

🌐 Open data

➕ Added:

  1. Resource types to map Azure resource types to friendly display names.
  2. Get-FinOpsResourceType PowerShell command to support resource type to display name mapping.
  3. Sample exports for each of the datasets that can be exported from Cost Management.

📗 FinOps guide

➕ Added:

  1. FinOps Open Cost and Usage Specification (FOCUS) details.

Download v0.2 Full changelog


🛠️ v0.1.1

Released October 26, 2023

🖥️ PowerShell

➕ Added:

  1. New PowerShell commands to convert data to FOCUS 0.5:
    1. ConvertTo-FinOpsSchema
    2. Invoke-FinOpsSchemaTransform
  2. New PowerShell commands to get and delete Cost Management exports:
    1. Get-FinOpsCostExport
    2. Remove-FinOpsCostExport

🌐 Open data

➕ Added:

  1. New PowerShell commands to integrate open data to support data cleansing:
    1. Get-FinOpsPricingUnit
    2. Get-FinOpsRegion
    3. Get-FinOpsService

🏦 FinOps hubs

➕ Added:

  1. New PowerShell commands to manage FinOps hubs 0.1:
    1. Get-FinOpsHub
    2. Initialize-FinOpsHubDeployment
    3. Register-FinOpsHubProviders
    4. Remove-FinOpsHub

Download v0.1.1 Full changelog


🚚 v0.1

Released October 22, 2023

🖥️ PowerShell

➕ Added:

  1. FinOpsToolkit module released in the PowerShell Gallery.
  2. Get-FinOpsToolkitVersion to get toolkit versions.

🏦 FinOps hubs

➕ Added:

  1. Deploy-FinOpsHub to deploy or update a hub instance.
  2. Get-FinOpsHub to get details about a hub instance.
  3. Support for Microsoft Customer Agreement (MCA) accounts and Cloud Solution Provider (CSP) subscriptions in Power BI reports.

🛠️ Fixed:

  1. Storage redundancy dropdown default not set correctly in the create form.
  2. Tags specified in the create form were causing the deployment to fail (#331).

📊 Power BI reports

➕ Added:

  1. Commitments, Savings, Chargeback, Purchases, and Prices pages in the Commitment discounts report.
  2. Prices page in the Cost summary report.
  3. FOCUS sample report – See your data in the FinOps Open Cost and Usage Specification (FOCUS) schema.
  4. Cost Management template app (EA only) – The original Cost Management template app as a customizable PBIX file.

✏️ Changed:

  1. Expanded the FinOps hubs Cost summary and Commitment discounts Power BI reports to support the Cost Management connector.

📒 Azure Monitor workbooks

➕ Added:

  1. Governance workbook to centralize governance.

✏️ Changed:

  1. Optimization workbook updated to cover more scenarios.

🌐 Open data

➕ Added:

  1. Pricing units to map all pricing units (UnitOfMeasure values) to distinct units with a scaling factor.
  2. Regions to map historical resource location values in Microsoft Cost Management to standard Azure regions.
  3. Services to map all resource types to FOCUS service names and categories.

Download v0.1 Full changelog


🌱 v0.0.1

Released May 27, 2023

🏦 FinOps hubs

➕ Added:

  1. FinOps hub template to deploy a storage account and Data Factory instance.
  2. Cost summary report for various out-of-the-box cost breakdowns.
  3. Commitment discounts report for commitment-based discount reports.

🦾 Bicep modules

➕ Added:

  1. Scheduled action modules submitted to the Bicep Registry.

📒 Azure Monitor workbooks

➕ Added:

  1. Cost optimization workbook to centralize cost optimization.

Download v0.0.1 Full changelog



This site uses Just the Docs, a documentation theme for Jekyll.