Storage costs have a habit of creeping up quietly. You run a cost review, you see Azure Storage is a meaningful line item, and then you hit a wall — Azure Cost Management tells you how much you spent but gives you very little help figuring out why. You end up manually clicking through storage accounts, pulling together spreadsheets, or writing custom KQL queries just to answer basic questions.
That is the problem Azure Storage Discovery is trying to solve. This article looks at what it actually does, whether it is worth enabling, and what to watch out for before you deploy it.
The Problem It Solves
In most organisations, storage accounts multiply over time without much oversight. Different teams create them for different purposes, data accumulates, redundancy settings are left on defaults, and data that was once frequently accessed sits untouched for months. By the time anyone looks, the estate is large, spread across subscriptions, and difficult to reason about.
Azure Cost Management can tell you your storage spend is increasing. What it cannot easily tell you is:
- Which storage accounts are responsible for the growth
- Whether your egress charges are coming from expected data transfers or something unexpected
- Which accounts have data that is never accessed any more
- Whether your redundancy tier choices (GRS vs LRS vs ZRS) actually reflect the criticality of the data
These are real questions that come up in cost reviews, and without good tooling they take hours to answer. Storage Discovery is designed to answer them in minutes.
How It Actually Works
You deploy a Storage Discovery workspace resource into one of your resource groups. You tell it which subscriptions and resource groups to scan — these are called workspace roots. The service then reads your storage estate, computes metrics, and surfaces them as reports in the Azure portal. No agents to deploy, no pipelines to maintain, no queries to write.
The key thing to understand about the reports is that they are not just pretty charts. Every chart in Storage Discovery lets you click through to the actual list of storage accounts behind the data. From there you can jump directly to a storage account to change its configuration, or export the list as a CSV to drive bulk remediation work. That "insight to action" path is what makes it useful in practice — you are not just looking at data, you are being pointed at the specific things to fix.
The reports themselves cover capacity (how much data, how many blobs, how many accounts), activity (transactions, ingress, egress), errors, configuration patterns, security settings, and a consumption view that links activity to cost.
What to Watch Out For
It has its own cost — and the billing model matters
Storage Discovery is a paid service on the Standard plan. You are charged per storage account analysed and per blob object within those accounts. That sounds straightforward until you think about the scope model.
You define workspace roots at the subscription or resource group level — there is no way to include only specific storage accounts. So if you scope a workspace to a resource group that contains 200 storage accounts, all 200 are analysed and all 200 are billed. Before you deploy, do a quick count of storage accounts in your target resource groups. A resource group used as a dumping ground by many teams can make this service surprisingly expensive.
Every workspace is also billed independently. If you create multiple workspaces and the same storage account falls into the scope of more than one of them, you pay for it twice.
> Start small. Scope your first workspace to a single subscription or a handful of resource groups. Prove the value, understand the cost, then expand.
Scopes are not tags — they are roots
A common misconception is that you can use tags to scope which storage accounts are included. You can use tags to create sub-scopes within a workspace for reporting purposes (useful for slicing data by team or environment), but the workspace root itself is subscription or resource group. Everything in that root gets scanned and billed.
It takes time to populate
After creating a workspace, allow up to 24 hours for metrics to start appearing. The service also backfills 15 days of historical data automatically, which is helpful but means you will not immediately have the months of trend data needed for a comprehensive review.
The Free plan has a short memory
If you stay on the Free plan, data is only retained for 15 days. That is enough for a quick look, but not enough to identify trends or measure the impact of changes over time. The Standard plan retains 18 months of history. For any serious FinOps work you need the Standard plan.
Is It Worth It?
That depends on the size of your storage estate and how much visibility you currently have.
If you are running a small number of well-understood storage accounts with simple access patterns, you probably do not need it — you can get by with Azure Cost Management and the occasional manual review.
If you are managing a large estate, or if storage costs are material and opaque, Storage Discovery can pay for itself quickly. Finding a single over-redundant storage account with unnecessary GRS replication, or identifying a data pipeline with unexpected cross-region egress, can generate savings that comfortably exceed the service cost. The question is not really whether the insights are useful — they are. The question is whether your estate is large or complex enough to justify the tooling overhead.
A reasonable approach is to start with the Free plan scoped to your highest-spend subscriptions. If you find meaningful issues within the 15-day retention window, upgrade to Standard and expand the scope.
Practical Questions You Can Answer With Storage Discovery
Once your workspace is up and data has populated, these are the kinds of questions you can actually go and answer — and more importantly, what you would do with the answers.
Where is our storage spend growing and why?
Open the Capacity report and look at the trends chart. Switch the grouping to resource group or subscription to see which parts of the estate are growing. If one resource group is climbing steeply, click through to the top-items view — it will tell you which specific storage accounts inside it are responsible. From there you can jump directly to the account and check what is in it, whether lifecycle policies are configured, and whether the data has any access activity at all.
.png)
Are we paying for geo-redundancy we do not need?
The Configurations report surfaces redundancy type across your storage accounts. Look for accounts configured as GRS or GZRS (geo-redundant) and cross-reference against the Activity report — if the account has low transaction volume and low access frequency, it is a candidate to discuss with the owning team. Dropping from GRS to LRS on non-critical storage can cut storage costs roughly in half for that account. The conversation is easier when you can show the team the data rather than arguing from assumptions.
Why did our egress bill spike last month?
Go to the Activity report, select Egress from the metric picker, and set the time range to cover the period in question. The trends chart will show you exactly when the spike started. Switch the grouping to region to see if it is geographically concentrated. Then look at the top-10 egress view — it will rank the storage accounts by billable egress volume. Drill into the highest contributors to see the destination breakdown: are these cross-region transfers (data moving between Azure regions) or external egress (data leaving Azure entirely)?
A spike that is all external egress is worth investigating urgently — it could be a misconfigured pipeline, a reporting tool that is pulling data to a non-Azure destination, or in a worst case, unintended data exposure. A spike that is cross-region is usually an architecture issue where compute and storage ended up in different regions after a migration or redeployment.
Which storage accounts haven't been touched in months?
The Activity report shows transaction trends per storage account. Accounts with flat or zero transaction lines over an extended period are effectively idle — data is sitting there, accruing storage cost, with no active workload consuming it. These are prime candidates for a conversation: is the data still needed? Can it be archived to Cool or Cold tier to reduce costs? Can the account be deleted entirely?
Note that Storage Discovery shows you the pattern; it does not tell you why an account is idle. You will still need a conversation with the team that owns it to understand whether the data is genuinely unused or whether it is a backup or compliance dataset that needs to be retained.
How does our storage estate break down by team or environment?
This is where scopes become useful. If your organisation uses ARM tags consistently (for example, a CostCentre or Environment tag), you can define scopes within your workspace that filter to storage accounts matching those tags. Each scope gets its own report view, so you can switch between "Production", "Development", and "Staging" or between different departments and see how the numbers differ.
This is the bridge between Storage Discovery and cost allocation. Rather than presenting leadership with a single aggregate storage number, you can show a breakdown by team and identify which groups are driving growth. That is a much more productive conversation for driving accountability.
Is our storage security posture consistent across the estate?
The Security report surfaces configuration patterns such as whether public blob access is enabled, whether HTTPS-only access is enforced, and whether the accounts use Microsoft-managed or customer-managed encryption keys. While this is not strictly a cost question, security misconfigurations can lead to unexpected egress charges — public blob access enabled on an account means anyone on the internet can read from it, which shows up as external egress on your bill.
A quick review of the Security report can highlight accounts that warrant a closer look, particularly in larger estates where configuration drift is hard to track manually.
.png)
Key Takeaways
- Azure Storage Discovery answers the questions that Azure Cost Management cannot — specifically which storage accounts are driving cost and why
- Egress insights are the most practically valuable feature, particularly for organisations running cross-region architectures or large data pipelines
- The billing model is per storage account and per blob object — always check how many accounts are in your target scope before deploying
- Scoping is at subscription or resource group level only; you cannot cherry-pick individual accounts
- Start with the Free plan on a limited scope, prove the value, then expand to Standard for full history and egress visibility