Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs-mslearn/toolkit/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: FinOps toolkit changelog
description: Review the latest features and enhancements in the FinOps toolkit, including updates to FinOps hubs, Power BI reports, and more.
author: MSBrett
ms.author: brettwil
ms.date: 09/11/2026
ms.date: 10/05/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
Expand Down Expand Up @@ -56,6 +56,8 @@ The following section lists features and enhancements that are currently in deve

### [Power BI reports](power-bi/reports.md)

- **Added**
- Added subscription name to the Compute disks table on the Unattached disks page in the Workload optimization report ([#2201](https://github.com/microsoft/finops-toolkit/issues/2201)).
- **Changed**
- Switched the InstanceSizeFlexibility table in the storage and KQL shared datasets from the retired `ccmstorageprod` AutofitComboMeterData.csv to the FinOps toolkit [Instance size flexibility](open-data.md#instance-size-flexibility) open data file, joined to reservation recommendations on the unique ARM SKU name ([#2090](https://github.com/microsoft/finops-toolkit/issues/2090)).

Expand Down
2 changes: 1 addition & 1 deletion src/power-bi/kql/WorkloadOptimization.Report/report.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
"z": 0.00
},
{
"config": "{\"name\":\"06c73231a78088a58da3\",\"layouts\":[{\"id\":0,\"position\":{\"x\":216,\"y\":392,\"z\":5000,\"width\":1048,\"height\":320,\"tabOrder\":3000}}],\"singleVisual\":{\"visualType\":\"tableEx\",\"projections\":{\"Values\":[{\"queryRef\":\"Disks (2).name\"},{\"queryRef\":\"Disks (2).resourceGroup\"},{\"queryRef\":\"Disks (2).location\"},{\"queryRef\":\"Disks (2).skuTier\"},{\"queryRef\":\"Disks (2).Redundancy\"},{\"queryRef\":\"Disks (2).diskState\"},{\"queryRef\":\"Disks (2).LastOwnershipUpdateTime\"},{\"queryRef\":\"Sum(Disks (2).diskSizeGB)\"},{\"queryRef\":\"Disks (2).diskType\"},{\"queryRef\":\"Costs.ChargePeriod\"},{\"queryRef\":\"Sum(Costs.EffectiveCost)\"},{\"queryRef\":\"Sum(Costs.BilledCost)\"}]},\"prototypeQuery\":{\"Version\":2,\"From\":[{\"Name\":\"c\",\"Entity\":\"Costs\",\"Type\":0},{\"Name\":\"d1\",\"Entity\":\"Disks\",\"Type\":0}],\"Select\":[{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"BilledCost\"}},\"Function\":0},\"Name\":\"Sum(Costs.BilledCost)\",\"NativeReferenceName\":\"BilledCost\"},{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"EffectiveCost\"}},\"Function\":0},\"Name\":\"Sum(Costs.EffectiveCost)\",\"NativeReferenceName\":\"EffectiveCost\"},{\"Measure\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"ChargePeriod\"},\"Name\":\"Costs.ChargePeriod\",\"NativeReferenceName\":\"ChargePeriod\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"name\"},\"Name\":\"Disks (2).name\",\"NativeReferenceName\":\"Disk name\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"resourceGroup\"},\"Name\":\"Disks (2).resourceGroup\",\"NativeReferenceName\":\"Resource group\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"location\"},\"Name\":\"Disks (2).location\",\"NativeReferenceName\":\"Region\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"skuTier\"},\"Name\":\"Disks (2).skuTier\",\"NativeReferenceName\":\"Tier\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"Redundancy\"},\"Name\":\"Disks (2).Redundancy\",\"NativeReferenceName\":\"Redundancy\"},{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"diskSizeGB\"}},\"Function\":0},\"Name\":\"Sum(Disks (2).diskSizeGB)\",\"NativeReferenceName\":\"Disk size GB1\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"diskType\"},\"Name\":\"Disks (2).diskType\",\"NativeReferenceName\":\"Disk type1\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"diskState\"},\"Name\":\"Disks (2).diskState\",\"NativeReferenceName\":\"Disk state\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"LastOwnershipUpdateTime\"},\"Name\":\"Disks (2).LastOwnershipUpdateTime\",\"NativeReferenceName\":\"Last state update\"}],\"OrderBy\":[{\"Direction\":2,\"Expression\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"BilledCost\"}},\"Function\":0}}}]},\"columnProperties\":{\"Disks (2).name\":{\"displayName\":\"Disk name\"},\"Disks (2).resourceGroup\":{\"displayName\":\"Resource group\"},\"Disks (2).location\":{\"displayName\":\"Region\"},\"Disks (2).skuTier\":{\"displayName\":\"Tier\"},\"Sum(Disks (2).diskSizeGB)\":{\"displayName\":\"Disk size GB\"},\"Disks (2).diskType\":{\"displayName\":\"Disk type\"},\"Disks (2).diskState\":{\"displayName\":\"Disk state\"},\"Disks (2).LastOwnershipUpdateTime\":{\"displayName\":\"Last state update\"}},\"drillFilterOtherVisuals\":true,\"objects\":{\"total\":[{\"properties\":{\"totals\":{\"expr\":{\"Literal\":{\"Value\":\"true\"}}}}}],\"grid\":[{\"properties\":{\"gridVertical\":{\"expr\":{\"Literal\":{\"Value\":\"false\"}}}}}],\"values\":[{\"properties\":{\"icon\":{\"kind\":\"Icon\",\"layout\":{\"expr\":{\"Literal\":{\"Value\":\"'Before'\"}}},\"verticalAlignment\":{\"expr\":{\"Literal\":{\"Value\":\"'Middle'\"}}},\"value\":{\"expr\":{\"Conditional\":{\"Cases\":[{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'ActiveSAS'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolHigh'\"}}},{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'Attached'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolHigh'\"}}},{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'Reserved'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolMedium'\"}}},{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'Unattached'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolLow'\"}}}]}}}}},\"selector\":{\"data\":[{\"dataViewWildcard\":{\"matchingOption\":1}}],\"metadata\":\"Disks (2).name\"}}]},\"vcObjects\":{\"title\":[{\"properties\":{\"show\":{\"expr\":{\"Literal\":{\"Value\":\"true\"}}},\"text\":{\"expr\":{\"Literal\":{\"Value\":\"'Compute disks'\"}}},\"fontSize\":{\"expr\":{\"Literal\":{\"Value\":\"12D\"}}}}}]}}}",
"config": "{\"name\":\"06c73231a78088a58da3\",\"layouts\":[{\"id\":0,\"position\":{\"x\":216,\"y\":392,\"z\":5000,\"width\":1048,\"height\":320,\"tabOrder\":3000}}],\"singleVisual\":{\"visualType\":\"tableEx\",\"projections\":{\"Values\":[{\"queryRef\":\"Disks (2).name\"},{\"queryRef\":\"Disks (2).resourceGroup\"},{\"queryRef\":\"Subscriptions.name\"},{\"queryRef\":\"Disks (2).location\"},{\"queryRef\":\"Disks (2).skuTier\"},{\"queryRef\":\"Disks (2).Redundancy\"},{\"queryRef\":\"Disks (2).diskState\"},{\"queryRef\":\"Disks (2).LastOwnershipUpdateTime\"},{\"queryRef\":\"Sum(Disks (2).diskSizeGB)\"},{\"queryRef\":\"Disks (2).diskType\"},{\"queryRef\":\"Costs.ChargePeriod\"},{\"queryRef\":\"Sum(Costs.EffectiveCost)\"},{\"queryRef\":\"Sum(Costs.BilledCost)\"}]},\"prototypeQuery\":{\"Version\":2,\"From\":[{\"Name\":\"c\",\"Entity\":\"Costs\",\"Type\":0},{\"Name\":\"d1\",\"Entity\":\"Disks\",\"Type\":0},{\"Name\":\"s\",\"Entity\":\"Subscriptions\",\"Type\":0}],\"Select\":[{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"BilledCost\"}},\"Function\":0},\"Name\":\"Sum(Costs.BilledCost)\",\"NativeReferenceName\":\"BilledCost\"},{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"EffectiveCost\"}},\"Function\":0},\"Name\":\"Sum(Costs.EffectiveCost)\",\"NativeReferenceName\":\"EffectiveCost\"},{\"Measure\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"ChargePeriod\"},\"Name\":\"Costs.ChargePeriod\",\"NativeReferenceName\":\"ChargePeriod\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"name\"},\"Name\":\"Disks (2).name\",\"NativeReferenceName\":\"Disk name\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"resourceGroup\"},\"Name\":\"Disks (2).resourceGroup\",\"NativeReferenceName\":\"Resource group\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"s\"}},\"Property\":\"name\"},\"Name\":\"Subscriptions.name\",\"NativeReferenceName\":\"Subscription\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"location\"},\"Name\":\"Disks (2).location\",\"NativeReferenceName\":\"Region\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"skuTier\"},\"Name\":\"Disks (2).skuTier\",\"NativeReferenceName\":\"Tier\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"Redundancy\"},\"Name\":\"Disks (2).Redundancy\",\"NativeReferenceName\":\"Redundancy\"},{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"diskSizeGB\"}},\"Function\":0},\"Name\":\"Sum(Disks (2).diskSizeGB)\",\"NativeReferenceName\":\"Disk size GB1\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"diskType\"},\"Name\":\"Disks (2).diskType\",\"NativeReferenceName\":\"Disk type1\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"diskState\"},\"Name\":\"Disks (2).diskState\",\"NativeReferenceName\":\"Disk state\"},{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"LastOwnershipUpdateTime\"},\"Name\":\"Disks (2).LastOwnershipUpdateTime\",\"NativeReferenceName\":\"Last state update\"}],\"OrderBy\":[{\"Direction\":2,\"Expression\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"c\"}},\"Property\":\"BilledCost\"}},\"Function\":0}}}]},\"columnProperties\":{\"Disks (2).name\":{\"displayName\":\"Disk name\"},\"Disks (2).resourceGroup\":{\"displayName\":\"Resource group\"},\"Disks (2).location\":{\"displayName\":\"Region\"},\"Disks (2).skuTier\":{\"displayName\":\"Tier\"},\"Sum(Disks (2).diskSizeGB)\":{\"displayName\":\"Disk size GB\"},\"Disks (2).diskType\":{\"displayName\":\"Disk type\"},\"Disks (2).diskState\":{\"displayName\":\"Disk state\"},\"Disks (2).LastOwnershipUpdateTime\":{\"displayName\":\"Last state update\"},\"Subscriptions.name\":{\"displayName\":\"Subscription\"}},\"drillFilterOtherVisuals\":true,\"objects\":{\"total\":[{\"properties\":{\"totals\":{\"expr\":{\"Literal\":{\"Value\":\"true\"}}}}}],\"grid\":[{\"properties\":{\"gridVertical\":{\"expr\":{\"Literal\":{\"Value\":\"false\"}}}}}],\"values\":[{\"properties\":{\"icon\":{\"kind\":\"Icon\",\"layout\":{\"expr\":{\"Literal\":{\"Value\":\"'Before'\"}}},\"verticalAlignment\":{\"expr\":{\"Literal\":{\"Value\":\"'Middle'\"}}},\"value\":{\"expr\":{\"Conditional\":{\"Cases\":[{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'ActiveSAS'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolHigh'\"}}},{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'Attached'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolHigh'\"}}},{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'Reserved'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolMedium'\"}}},{\"Condition\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Aggregation\":{\"Expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"diskState\"}},\"Function\":3}},\"Right\":{\"Literal\":{\"Value\":\"'Unattached'\"}}},\"Annotations\":{\"PowerBI.SQExprEvaluationKind\":1,\"PowerBI.SQExprTextOperatorOption\":2}},\"Value\":{\"Literal\":{\"Value\":\"'CircleSymbolLow'\"}}}]}}}}},\"selector\":{\"data\":[{\"dataViewWildcard\":{\"matchingOption\":1}}],\"metadata\":\"Disks (2).name\"}}]},\"vcObjects\":{\"title\":[{\"properties\":{\"show\":{\"expr\":{\"Literal\":{\"Value\":\"true\"}}},\"text\":{\"expr\":{\"Literal\":{\"Value\":\"'Compute disks'\"}}},\"fontSize\":{\"expr\":{\"Literal\":{\"Value\":\"12D\"}}}}}]}}}",
"filters": "[{\"expression\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Entity\":\"Disks\"}},\"Property\":\"name\"}},\"filter\":{\"Version\":2,\"From\":[{\"Name\":\"d1\",\"Entity\":\"Disks\",\"Type\":0}],\"Where\":[{\"Condition\":{\"And\":{\"Left\":{\"Not\":{\"Expression\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"name\"}},\"Right\":{\"Literal\":{\"Value\":\"''\"}}}}}},\"Right\":{\"Not\":{\"Expression\":{\"Comparison\":{\"ComparisonKind\":0,\"Left\":{\"Column\":{\"Expression\":{\"SourceRef\":{\"Source\":\"d1\"}},\"Property\":\"name\"}},\"Right\":{\"Literal\":{\"Value\":\"null\"}}}}}}}}}]},\"type\":\"Advanced\",\"howCreated\":0,\"isHiddenInViewMode\":false}]",
"height": 320.00,
"width": 1048.00,
Expand Down
Loading