I am using the below code to fetch Usage details from Azure according to my requiremnet. I want to fetch usage details for last year but it is fetching from Jan 1 2024 by default. Can anyone tell me if I can fetch same details daily? Or else If I fetch the same details monthly when should I fetch it so that I can get Usage details for the whole month.
from azure.mgmt.resource import SubscriptionClient
from azure.mgmt.consumption import ConsumptionManagementClient
from azure.identity import ClientSecretCredential
from datetime import datetime
import pandas as pd
""
tenant_id = "b"
client_id = "9"
client_secret = "x"
# credentials = ClientSecretCredential(tenant_id, client_id, client_secret)
credentials = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
data = []
startDate = datetime(2023, 12, 1).isoformat()
endDate = datetime(2023, 12, 31).isoformat()
subscription_client = SubscriptionClient(credentials)
subscriptions = subscription_client.subscriptions.list()
for subscription in subscriptions:
subscription_id = subscription.subscription_id
consumption_client = ConsumptionManagementClient(credentials, subscription_id)
scope = "/subscriptions/" + subscription_id
filters = 'usageEnd le '+ str(endDate)
usage_details = consumption_client.usage_details.list(scope, filter=filters)
for detail in usage_details:
# print(detail)
tags = detail.tags
if tags is not None:
department = tags.get('Department', '-')
email = tags.get('E-mail', '-')
owner = tags.get('Owner', '-')
else:
department = '-'
email = '-'
owner = '-'
# print(detail)
data.append({
"Start": "2023-01-01",
"End": "2023-01-31",
"FetchDate": detail.date,
"Department": department,
"E-mail": email,
"Owner": owner,
"Billing AccountId": detail.billing_account_id,
"Billing AccountName": detail.billing_account_name,
"Subscription Id": detail.subscription_guid,
"Subscription Name": detail.subscription_name,
"Meter ID": detail.meter_id,
"Quantity": detail.quantity,
"Unit Price": detail.unit_price,
"Currency Code": detail.billing_currency_code,
"Resource Location": detail.resource_location_normalized,
"Service": detail.consumed_service,
"InstanceName": detail. instance_name,
"Product": detail.product,
"ProductIdentifier": detail.product_identifier,
"Product OrderId": detail.product_order_id,
"Product OrderName": detail.product_order_name,
"Resource Group Name": detail.resource_group,
"Charge Type": detail.charge_type,
"Frequency": detail.frequency,
"CostInBillingCurrency": detail.cost_in_billing_currency,
"CostInPricingCurrency": detail.cost_in_pricing_currency,
"Market Price": detail.market_price,
"Cost": detail.cost_in_usd,
"Additional Info": detail.additional_info,
})
# print()
df = pd.DataFrame(data)```