How can I check how much space I used in each of my azure storage accounts in my subscription resource group wise.
I am not able to find a way to check space used in
I have created python script to calculate used storage in all subscriptions.
Well, it''s not quickly:
- need to request all subscriptions via provided permissions
- request Azure resource Graph to receive list /subscription/resourcegroup/storageaccount
- generate list of subscription, where storageaccount exists
- request Azure Monitor for every /subscription/resourcegroup/storageaccount to receive UsedCapacity
from azure.mgmt.monitor import MonitorManagementClient
from azure.mgmt.subscription import SubscriptionClient
from msrestazure.azure_active_directory import ServicePrincipalCredentials
from azure.mgmt.resourcegraph import ResourceGraphClient
from azure.mgmt.resourcegraph.models import QueryRequest
credentials = ServicePrincipalCredentials(client_id, secret, tenant=tenant_id)
sub_object = SubscriptionClient(credentials)
rgraph_object = ResourceGraphClient(credentials)
storageaccount_pattern = "resources | where type == 'microsoft.storage/storageaccounts' | project id"
subs = [sub.as_dict() for sub in sub_object.subscriptions.list()]
subs_list = []
for sub in subs:
subs_list.append(sub.get('subscription_id'))
request_storageaccount = QueryRequest(subscriptions=subs_list, query=storageaccount_pattern)
rgraph_storageaccount = rgraph_object.resources(request_storageaccount).as_dict()
resource_ids = []
for element in rgraph_storageaccount['data']['rows']:
resource_ids.append(element[0])
count_used_storage = 0
for resource_id in resource_ids:
sub = (resource_id.split('/'))[2]
monitor_object = MonitorManagementClient(credentials, subscription_id=sub)
metrics_data = monitor_object.metrics.list(resource_id)
for item in metrics_data.value:
for timeserie in item.timeseries:
for data in timeserie.data:
try:
count_used_storage = count_used_storage + data.average
except:
pass
print(count_used_storage)
For ~400 subscriptions, ~1100 storageaccounts script works about 600 secs.
For one subscription it's much faster :)