diff --git a/.claude/commands/announce.md b/.claude/commands/announce.md index 3845d9cc7..ce005319d 100644 --- a/.claude/commands/announce.md +++ b/.claude/commands/announce.md @@ -84,6 +84,7 @@ Present the proposed outline via AskUserQuestion with options to approve, reorde 2. Determine the slug. For release announcements, use `v{N}` (e.g., `v14`). Otherwise, use a short kebab-cased topic (e.g., `azure-openai-costs`). 3. Write the draft to `announce/{year}/{yyyy-MM}_{slug}.md` using `Write`. 4. **Tone:** active voice, benefit-led, friendly but not breathless. Match the voice of recent releases in `announce/`. + - Apply the content standards in [Coding-guidelines.md](../../docs-wiki/Coding-guidelines.md#-content-strings-and-microcopy): stay positive, spell out references on first use per section (like "FinOps hubs" and "FinOps toolkit 15", no "v"), and only abbreviate secondary references (preview and social posts included). 5. **Microsoft style:** sentence casing for headings (not Title Case), no end punctuation on short headings, follow [Coding-guidelines.md](../../docs-wiki/Coding-guidelines.md) content rules. 6. **Length:** release announcements run ~6–10 minute reads. Featured sections are 2–4 short paragraphs each. Don't pad. 7. **Links:** prefer `aka.ms` short links when they exist (check the changelog for examples). Use full Learn URLs for deep documentation. diff --git a/announce/2026/2026-10_v15.md b/announce/2026/2026-10_v15.md new file mode 100644 index 000000000..f692c0acd --- /dev/null +++ b/announce/2026/2026-10_v15.md @@ -0,0 +1,195 @@ +# What's new in FinOps toolkit 15 – October 2026 + +Most of us already keep an AI assistant open all day. It writes, summarizes, and answers questions, so why shouldn't it help you understand and optimize your cloud costs, too? FinOps toolkit 15 makes that happen with a new agent plugin that brings FinOps expertise and your cost data into the AI tools you already use. You can also run FinOps hubs on your own machine, add an opt-in NAT Gateway to private FinOps hubs, and automate reservation and savings plan work with new datasets and PowerShell commands. Power BI reports, workbooks, alerts, Azure Optimization Engine (AOE), and the PowerShell module also got improvements and fixes. Read on for details. + +## New to the FinOps toolkit? + +The FinOps toolkit is an open-source collection of tools and resources helping organizations learn, adopt, and implement FinOps in the Microsoft Cloud. The foundation includes the [Implementing FinOps guide](https://aka.ms/finops/guide) for getting started with native Azure portal tools or custom FinOps solutions. Learn more at the [FinOps toolkit documentation](https://aka.ms/ftk/docs). + +## Leverage AI to scale your FinOps impact + +Picture the staff your manager never gave you: a team of AI agents that know FinOps, can query your cost data, and never tire of follow-up questions. You direct them to find which Azure services drove last month's spend, dig into why, plan the fix, and turn that plan into a proposal your engineering team can act on. Then they build the report your leadership asks for, all grounded in your own cost data. That's the idea behind the new [FinOps toolkit agent plugin](https://microsoft.github.io/finops-toolkit/agent-plugin): AI agents that do the work, not just answer questions. + +The plugin includes five agents: CFO, FinOps practitioner, FinOps hubs database query, FinOps hubs deployment and troubleshooting, and Azure capacity manager. The CFO, FinOps practitioner, and Azure capacity manager work with or without a FinOps hub. They offer FinOps guidance, help with Azure quota and capacity, and answer basic cost questions, like what you spent last month or which services cost the most, using Microsoft Cost Management and the Azure access you already have. The database query agent works against a FinOps hub, so connect one and the agent can take on much bigger questions, like month-over-month trends, forecasts, anomaly detection, commitment discount utilization and waste, tag coverage, and AI spend by application. A FinOps hubs KQL skill gives the agent the schema and a catalog of ready-made queries, so your questions become queries against the real Costs, Prices, Recommendations, and Transactions datasets instead of guesses. + +Built-in commands handle routine tasks like connecting to a FinOps hub, checking its health, and running month-over-month and year-to-date cost reports. The [plugin documentation](https://learn.microsoft.com/cloud-computing/finops/toolkit/agent-plugin/finops-toolkit-agent-plugin-overview) covers each command, along with the sign-in and permissions you need to connect to a FinOps hub. + +The plugin also includes the Azure MCP server, scoped to Data Explorer and read-only, so your agents can query your FinOps hub without changing anything in your environment. To take your agents further across Azure, you can add the full [Azure MCP server](https://learn.microsoft.com/azure/developer/azure-mcp-server/overview) yourself. We kept the plugin's server scoped to avoid bloating your agent's context. + +The plugin uses the [Agent Plugins](https://agent-plugins.org) open standard and works across AI platforms that support the standard, such as GitHub Copilot, ChatGPT, and Claude. Refer to [compatible clients](https://agent-plugins.org/compatible-clients) for a full list of currently supported tools and platforms. Only the install steps vary by platform: + +- **GitHub Copilot CLI:** Run `copilot plugin install microsoft/finops-toolkit`. +- **ChatGPT:** Ask a workspace admin to import the `microsoft/finops-toolkit` GitHub marketplace, then open the **Plugins** tab, select the plugin, and select the plus button to install it. +- **Codex CLI:** Run `codex plugin marketplace add microsoft/finops-toolkit`, then run `codex`, enter `/plugins`, and install the plugin. +- **Claude Code:** Run `/plugin marketplace add microsoft/finops-toolkit`, then `/plugin install microsoft-finops-toolkit@finops-toolkit`. +- **Claude Cowork:** Select **Customize** > **Plugins** > **Add** > **Add marketplace**, enter `microsoft/finops-toolkit`, then add the plugin. + +Let us know where you'd like to see this go. We're also looking into a FinOps toolkit MCP server to take this even further. + +## Run a FinOps hub on your own machine + +Not every question needs a deployed FinOps hub. Maybe you just want to prototype FinOps hubs before engaging engineering and deploying Azure resources. Maybe you want to explore the data model, test a query against a large dataset, or work somewhere you can't reach Azure. The new [Run FinOps hubs locally](https://learn.microsoft.com/cloud-computing/finops/toolkit/hubs/run-hubs-locally) guide walks through running a FinOps hub in the Kusto emulator, a free container, so what you learn locally carries over to a deployed hub. + +You need Docker with at least 16 GB of memory available to the container, PowerShell 7, and FOCUS cost exports as Parquet files on disk. The guide is written so you or your AI assistant can run each step. The new [Initialize-FinOpsHubLocal](https://learn.microsoft.com/cloud-computing/finops/toolkit/powershell/hubs/initialize-finopshublocal) command sets up the local hub in a running emulator with one command and loads all the tables and datasets, just like a normal FinOps hubs instance. + +A local hub is an additional option alongside a deployed hub, not a replacement for one, and the two have different trade-offs. You run and manage the container yourself instead of relying on a managed service like Azure Data Explorer or Microsoft Fabric, so a local hub has no scheduled ingestion and no service level agreement (SLA). That makes a local hub a great fit for exploring, validating, and supporting consulting work. A deployed hub in Azure gives you scheduled ingestion, an SLA, and data you can share across your organization. Your cost exports and databases are stored in folders on your machine, so they're still there when you restart the container. + +## Private networking for FinOps hubs + +Many organizations can't leave their cloud data reachable over the public internet. If yours is one of them, FinOps hubs 15 gives you more control with an opt-in NAT Gateway for private mode and explicit network modes. Pick the mode that fits your environment: + +- **Private** uses private endpoints and an opt-in NAT Gateway that gives the FinOps hub explicit outbound access. Choose this mode when an Azure Policy requires subnets to have default outbound access disabled. The NAT Gateway adds charges, so enable it when you need that outbound access. +- **VNet** uses private endpoints with default outbound access and no NAT Gateway. Choose this mode when your subscriptions allow default outbound access and you'd rather skip the NAT Gateway charges. +- **Public** is the default. + +In the deployment UI, set **Access** to **Private** on the **Advanced** tab, then select **Deploy NAT Gateway for controlled outbound access** to use private mode. In PowerShell, run `Deploy-FinOpsHub` with `-NetworkMode` set to `private`, `vnet`, or `public`. + +When you upgrade, pass the same network options to keep your network setup, either the same **Access** setting in the deployment UI or the same `-NetworkMode` in PowerShell. Private mode needs FinOps hubs 15 or later. If your scripts use `-DisablePublicAccess`, that parameter still works and maps to `vnet`, so move to `-NetworkMode` when you're ready. + +We also made the ownership model clearer. The FinOps toolkit manages the hub virtual network, and customer-managed private endpoints are the preferred way to give people and tools private access to a hub. Virtual network peering still works as a secondary option. Both are covered in the [private networking](https://learn.microsoft.com/cloud-computing/finops/toolkit/hubs/private-networking) documentation. + +## FinOps hubs are faster, more reliable, and more accurate + +FinOps hubs 15 brings in a ton of quality improvements, from performance and reliability to data quality. Now's a great time to upgrade, if you're running on an older version. Here are some of the highlights: + +**More efficient ingestion.** Lookups that enrich each row are quicker, and text comparisons use the engine's index instead of scanning every row, so large datasets ingest with less effort. Data Factory also uses less memory when it filters out empty files. + +**Faster queries.** Hub queries, including the query catalog, run faster on large datasets because they use the engine's term index instead of scanning every row. + +**Smoother deployments and upgrades:** + +- **Upgrades preserve your data.** Redeploying or upgrading keeps your data retention settings unless you specify a new value. +- **Managed exports run out of the box.** FinOps hubs now assign Data Factory the Azure role it needs, so managed exports work right after deployment. +- **More regions.** FinOps hubs now deploy in more regions, including Sweden Central, and managed exports are supported in Japan. + +**More accurate data:** + +- **Consistent savings.** The Summary page in the Data Explorer dashboard now excludes commitment purchases the same way the Rate optimization page does, so savings and effective savings rate (ESR) match across both. Commitment discount savings also compare against the Production price when a reservation price has Dev/Test variants. +- **A focused change history for contracted cost.** FinOps hubs record the changes made to each row during ingestion in the `x_SourceValues` column. Contracted cost is now updated only when the value needs to change, so `x_SourceValues` shows only meaningful changes. An existing contracted cost is also kept when the unit price is missing. +- **More complete recommendations.** The SQL VMs without Azure Hybrid Benefit recommendation now matches each SQL VM by its resource ID, so it includes every eligible VM, including VMs with uppercase names or names shared with other VMs. + +Ready to upgrade? See [Create and update FinOps hubs](https://learn.microsoft.com/cloud-computing/finops/toolkit/hubs/deploy). + +## Better data for reservations and savings plans + +Getting the most from reservations and savings plans starts with knowing which meters qualify for a commitment discount and which SKUs flex together. FinOps toolkit 15 improves both with a refreshed commitment discount eligibility dataset, a new instance size flexibility dataset, and corrected eligibility columns in FinOps hubs price data. + +If you're using the [commitment discount eligibility](https://learn.microsoft.com/cloud-computing/finops/toolkit/open-data#commitment-discount-eligibility) dataset to find commitment discount candidates, the dataset refreshes weekly with the latest meters, and retired meters drop off. Each release includes a snapshot from the time of the release. + +If you're building commitment discount eligibility into queries, you can also use the `x_CommitmentDiscountSpendEligibility` and `x_CommitmentDiscountUsageEligibility` columns in the FinOps hubs Prices dataset. These columns tell you which SKUs your commitments apply to. A bug had swapped their values, and FinOps hubs 15 corrects them. `x_CommitmentDiscountSpendEligibility` indicates which SKUs savings plans are eligible for, and `x_CommitmentDiscountUsageEligibility` indicates which SKUs reservations are eligible for. If you have historical Prices data, [upgrade to FinOps hubs 15](https://learn.microsoft.com/cloud-computing/finops/toolkit/hubs/upgrade) and reingest that data to make sure all of it has the correct values. + +Reservations rely on instance size flexibility (ISF) data to group SKUs and compare sizes. The new [Instance size flexibility](https://learn.microsoft.com/cloud-computing/finops/toolkit/open-data#instance-size-flexibility) dataset in open data maps each ARM SKU to its flexibility group and ratio, is sourced from the Azure Reservations Catalogs API, and covers every Azure region. Power BI reports and Azure Optimization Engine used to read ISF data from files hosted outside the toolkit, which Microsoft is retiring. The new dataset ships with the toolkit and refreshes weekly. If you're using Power BI reports or Azure Optimization Engine, you'll want to upgrade those as well to ensure you're leveraging the new ISF dataset. + +If you're building commitment discount automation via scripts, you may also be interested in the new [Get-FinOpsInstanceSizeFlexibility](https://learn.microsoft.com/cloud-computing/finops/toolkit/powershell/data/get-finopsinstancesizeflexibility) and [Get-FinOpsCommitmentDiscountEligibility](https://learn.microsoft.com/cloud-computing/finops/toolkit/powershell/data/get-finopscommitmentdiscounteligibility) commands in the FinOps toolkit PowerShell module. These give you programmatic access to the same data, in a more queryable manner that you can integrate cleanly into existing PowerShell or other scripts. + +## Find help in the FinOps toolkit ecosystem + +The FinOps toolkit is free and open source, and a growing ecosystem helps you get more out of the toolkit. The new [FinOps toolkit ecosystem page](https://microsoft.github.io/finops-toolkit/ecosystem) lists independent tools and organizations that build on or support the toolkit. While I am biased, there are two I want to call out: a path for official support for the FinOps toolkit and a richer experience for navigating your data in FinOps hubs for free. + +While Microsoft Support doesn't provide full support for the FinOps toolkit, [Allyte](https://allyte.com) has introduced new plans to fill that gap. The FinOps toolkit office hours, which Allyte runs, are a great place to start. But if you need more, Allyte offers direct access to experts, regular coaching sessions, and advisory for Microsoft FinOps in general, all from the people closest to the toolkit, when and where you need it. + +When I started the FinOps toolkit, I always had a vision of building a native portal experience that makes it easy to understand and optimize costs. Today, FinOps hubs give you that core platform – open, scalable, and extensible – but you're often hit by limitations of reports and dashboards that are never as interactive as you might need them to be. [FinOpsHubs.com](https://finopshubs.com) is an initial step in that direction. And we're happy to offer it to the community **for free**. Your data stays under your control, and you get a richer way to navigate that data in a free, scalable analytics experience designed to evolve around your needs. No data to move. No special access. Just sign in and get answers. And, as the former product manager for Cost analysis in the Azure portal, you'll find it familiar with additions that help you do more than you've been able to in the past. And of course, this is just the start. We're eager to build this out and help you achieve more through AI backed by intelligent tooling that connects people and streamlines processes. We're looking forward to hearing your feedback and seeing where this goes! + +Of course, these are just two of the resources mentioned on the ecosystem page. These organizations are independent of Microsoft. Know a tool or organization that belongs on the page? [Suggest a listing](https://github.com/microsoft/finops-toolkit/issues/new?template=propose-ecosystem-listing.yaml). + +## Other new and noteworthy updates + +**In the [Implementing FinOps guide](https://aka.ms/finops/guide):** + +- Updated guidance to use current FinOps Framework capability names, like Usage optimization and Governance, policy, and risk. Power BI reports and workbooks use the same names. +- Updated the data dictionary descriptions of several cost and billing columns to match FOCUS 1.2. + +**In [FinOps hubs](https://aka.ms/finops/hubs):** + +- Updated the hub database guide to explain how columns are organized, added 27 missing columns, and corrected the `Costs()` column reference. +- Updated the backfill instructions to use `config_StartBackfillProcess`, which backfills every month in your retention window in one run. Microsoft Customer Agreement (MCA) billing accounts and profiles can backfill with Cost Management exports or `Start-FinOpsCostExport` instead. +- Updated the dashboard links for Governance, policy, and risk and for FinOps tools and services to go directly to the Microsoft Learn pages. +- Improved deployments with Data Explorer on private networks, including when you approve private endpoint connections. +- Improved first-time ingestion for new scopes, datasets, and months, including reservation recommendation exports. +- FOCUS 1.0 cost data is now labeled as FOCUS 1.0 in `x_SourceVersion`, and FOCUS 1.0 rows get 1.0-specific fixes like the savings plan purchase charge frequency correction. + +**In [Power BI reports](https://aka.ms/ftk/pbi):** + +- Changed Azure Resource Graph queries to run per subscription batch to avoid payload size errors in the Governance and Workload optimization reports. +- Changed the default **Number of Months** in storage reports from 1 to 3 to show more cost history. +- Storage reports now read gzip-compressed CSV exports (`.csv.gz`). This came up in the [October 28 office hours](https://aka.ms/ftk/office-hours). +- Advisor recommendation tables return complete results. +- Storage reports refresh cleanly for FOCUS 1.2 exports and for exports that use earlier FOCUS versions. +- The Reservations tab in the Rate optimization report now shows data for MCA accounts. +- Report templates now open with empty storage and cluster settings, ready for your own data source. + +**In [FinOps workbooks](https://aka.ms/ftk/workbooks):** + +- The savings plan workbook now shows every recommendation. +- The Azure Hybrid Benefit workbook "VM Latest Change Last 7 days" tile now returns results, and SQL VM queries include VMs with uppercase names. + +**In [FinOps alerts](https://aka.ms/ftk/alerts):** + +- Idle application gateway and idle public IP queries now return complete results. + +**In [Azure Optimization Engine](https://aka.ms/ftk/aoe):** + +- Added an [Azure Optimization Engine reference](https://learn.microsoft.com/cloud-computing/finops/toolkit/optimization-engine/reference) for runbooks, schedules, variables, and tables. +- Log Analytics ingestion now uses a Data Collection Rule and Ingestion API, the supported path after the Data Collection API deprecation in September 2026. To upgrade an existing deployment, rerun the deployment script with the same options, or add `-DoPartialUpgrade` if you customized components. See [Upgrading AOE](https://learn.microsoft.com/cloud-computing/finops/toolkit/optimization-engine/setup-options#upgrading-aoe). +- Reservations stay in the reservation workbooks when their SKU is no longer sold. +- Azure RBAC assignment exports now skip the Azure Classic administrators endpoint, which was deprecated May 1, 2026. +- The Reservations Usage workbook works with the current consumption table schema. + +**In the [PowerShell module](https://aka.ms/ftk/ps):** + +- [Deploy-FinOpsHub](https://learn.microsoft.com/cloud-computing/finops/toolkit/powershell/hubs/deploy-finopshub) now works with single-part and `v`-prefixed `-Version` values, like `13` and `v14`, and with concurrent deployments. +- [Get-FinOpsCostExport](https://learn.microsoft.com/cloud-computing/finops/toolkit/powershell/cost/get-finopscostexport) `-RunHistory` returns the complete run history. +- [Start-FinOpsCostExport](https://learn.microsoft.com/cloud-computing/finops/toolkit/powershell/cost/start-finopscostexport) exports the correct period in positive UTC offsets. +- The module now requires `Az.Accounts` 2.17.0 or later, so the `Get-AzAccessToken -AsSecureString` parameter is always available. Run `Update-Module Az.Accounts` if you're on an older version. + +For the complete list, see the [changelog](https://aka.ms/ftk/changes#v15). + +## What's next + +Here's a peek at what we're currently working on: + +- FinOps Explorer, an interactive, cross-platform terminal UI for FinOps scanning and exploration. +- An Azure SRE Agent template for FinOps and capacity management. +- FOCUS 1.5 support across FinOps hubs, Power BI reports, agent plugins, and documentation. +- A FinOps toolkit MCP server, which we're looking into. +- Quota, capacity, and savings plan recommendations in FinOps hubs, along with dashboards for AI billing, tokenomics, and capacity. +- Security hardening for FinOps hubs, including opt-in Key Vault role-based access control and the option to disable storage Shared Key access. +- AI-assisted triage and repository automation with GitHub Agentic Workflows. + +We already started the FinOps toolkit 16 release cycle with a new FinOps Explorer and Azure SRE Agent tools. We're also targeting FOCUS 1.5 for FinOps toolkit 17. Expect to hear more by the end of the year. + +The roadmap is driven by what you tell us you need. [Create an issue](https://aka.ms/ftk/ideas) or [start a discussion](https://aka.ms/ftk/discuss) and let us know what you'd like to see next, including what you want from a FinOps toolkit MCP server. + +## Preview snippet + +> FinOps toolkit 15 brings FinOps expertise and your cost data to the AI tools you already use with a new agent plugin that gives you a team of AI agents to direct, adds a guide to run FinOps hubs locally, adds an opt-in NAT Gateway for private FinOps hubs, and delivers new reservation and commitment discount data. + +## Social media + +**LinkedIn:** + +> FinOps toolkit 15 is out! #FinOpsToolkit +> +> Direct a team of AI agents that understand FinOps and your cost data, the staff your manager never gave you, with a new agent plugin. Run a #FinOpsHubs instance on your own machine, and add an opt-in NAT Gateway to private FinOps hubs. You also get new reservation and commitment discount data, plus improvements across Power BI reports, workbooks, alerts, Azure Optimization Engine, and PowerShell. +> +> Check it out and let us know what you'd like to see next! +> +> {{POST_URL}} + +**Twitter/X:** + +> FinOps toolkit 15 is out! #FinOpsToolkit +> +> - AI agents you direct, in a new agent plugin +> - Run #FinOpsHubs locally +> - Opt-in NAT Gateway for private FinOps hubs +> - New reservation and commitment discount data +> - Fixes across the toolkit +> +> What do you want next? +> +> {{POST_URL}} + +**Internal:** + +> FinOps toolkit 15 is live with an agent plugin that gives you AI agents to direct, FinOps hubs you can run locally, an opt-in NAT Gateway for private FinOps hubs, new reservation and commitment discount data, and improvements across the toolkit. {{POST_URL}} diff --git a/docs-mslearn/toolkit/agent-plugin/finops-toolkit-agent-plugin-overview.md b/docs-mslearn/toolkit/agent-plugin/finops-toolkit-agent-plugin-overview.md index 709ddbc51..43ac9dca0 100644 --- a/docs-mslearn/toolkit/agent-plugin/finops-toolkit-agent-plugin-overview.md +++ b/docs-mslearn/toolkit/agent-plugin/finops-toolkit-agent-plugin-overview.md @@ -3,7 +3,7 @@ title: FinOps toolkit agent plugin overview description: The FinOps toolkit agent plugin brings AI-powered cloud financial management to Claude Code and GitHub Copilot CLI. author: MSBrett ms.author: brettwil -ms.date: 10/28/2026 +ms.date: 10/29/2026 ms.topic: concept-article ms.service: finops ms.subservice: finops-toolkit @@ -21,7 +21,8 @@ Install the plugin from the FinOps toolkit repository: ```bash # Claude Code -claude plugin add microsoft/finops-toolkit +claude plugin marketplace add microsoft/finops-toolkit +claude plugin install microsoft-finops-toolkit@finops-toolkit # GitHub Copilot CLI copilot plugin install microsoft/finops-toolkit diff --git a/docs-wiki/Coding-guidelines.md b/docs-wiki/Coding-guidelines.md index 07ce72c65..b140b47bc 100644 --- a/docs-wiki/Coding-guidelines.md +++ b/docs-wiki/Coding-guidelines.md @@ -42,6 +42,9 @@ We adhere to the [Microsoft style guide](https://docs.microsoft.com/style-guide/ - Remember the last comma – Always use a comma before "and" and "or" in a list of 3 or more items. - Don't be spacey - Revise weak writing +- Stay positive – Lead with what works, the right path, and what's better in the new version. Don't dwell on what was broken, missing, or unsupported. +- Spell out references – Spell out product names and versions on first use in each section, including titles, previews, and social posts, and only abbreviate secondary references in that section. For example, use "FinOps hubs" first and "hub" later. Never use "hubs" alone to mean FinOps hubs since other products use the term. +- Format versions – Write "FinOps toolkit 15" and "FinOps hubs 15", without a "v", since Microsoft doesn't usually add one to spelled-out versions. Use "v15" only on its own. [Learn more](https://docs.microsoft.com/style-guide/welcome) diff --git a/docs/agent-plugin.md b/docs/agent-plugin.md index b596054a3..e355032a6 100644 --- a/docs/agent-plugin.md +++ b/docs/agent-plugin.md @@ -42,7 +42,8 @@ The FinOps toolkit agent plugin pairs role-specific agents, ready-to-run command ```bash # Claude Code -claude plugin add microsoft/finops-toolkit +claude plugin marketplace add microsoft/finops-toolkit +claude plugin install microsoft-finops-toolkit@finops-toolkit # GitHub Copilot CLI copilot plugin install microsoft/finops-toolkit