Create Azure Budget Alert through terraform - azure

I'm trying to replicate the process of creating an Azure budget alert in the portal through terraform.
In the portal, I navigate to Cost Management + Billing, then onto cost alerts and I'm able to create a alert with my conditions for the entire subscription for the budget not to exceed a certain amount otherwise to send an email to a specific group or person.
I'm able to create an action group in terraform through azurerm_monitor_action_group but how do I create an alert for the budget. I don't see any valid documentations for it.

I found this provider that can be leveraged into terraform to create budget alert for the time being. Hope this helps anyone looking
https://registry.terraform.io/providers/innovationnorway/azure-preview/latest/docs/resources/azurepreview_budget

As of March 16, 2021 it is still WIP, but the feature is coming.
You can track the progress here:
https://github.com/terraform-providers/terraform-provider-azurerm/issues/2677
https://github.com/terraform-providers/terraform-provider-azurerm/pull/9201

Related

alert on azure cost before budget has been reached

Background:
I've been searching for a way to properly monitor and create alerting on Azure cost for a resource group. All current monitoring and alerting seem to be related to budgets. You can set a budget, and can create alerts when you have spent more than x percent of that budget. However, suppose that I configure something wrong and create a resource that costs way too much money, and I burn through my monthly budget within a week. Now I will get an alert after a week, but the damage to my bill will already have been done.
What I am looking for:
I'd like to have some way of alerting if my daily spending shows some abnormal behavior (or I've spent more than x dollar/euro/whatever currency in the last day, of the last x days). This way, I can proactively react to wrong settings, and not only react once I've burned up my budget.
What I already tried:
I looked for a built in way, but there doesn't seem to be one.
I tried to use azure powershell or the API to export by resource group's cost, but the Azure Powershell billing methods seem to be broken (see this thread), and the API's documentation is a mess. There are like a million ways of fetching billing data, but none of them seem to work properly or return any usable data for my situation.
My specific question:
I'm looking for a way to fetch the current billing period's cost overview, either via the API, or azure powershell, so I can import it and create my own alerts. However if somebody can provide an alternative approach to accomplish my goal your answer is also welcome
Note the 1st answer was accurate, but I think you may not have made it to the second tab, Set alerts, where you can choose to set an alert at a percentage of the budget you just set up. See the Set alerts screen below.
I had a similar question, and you might have had the same concern. The resource manager has already set a budget, and I don't want to set a new budget, just an alert. So you can choose to Add a new budget if you wish, but you may also be able to:
Go to Budgets to find existing, primary budget
Select Edit budget (verify this accurately reflects your real/total budget)
Click on Set alerts
Create alerts as a percentage of the budget
I read that Azure allows you to go over budget. This month, my team went over budget, I want to keep the service open and am hoping for cheaper future months. To ensure things don't really get out of control, I've set up new, far-over-budget alerts. So for example, I now have 50, 90, 100, 200, and 300% alerts.
Set alerts tab within Create Budget screen
You can try the steps as below:
1.In azure portal, nav to your resource group.
2.In the left pane -> Cost Management -> Cost alerts(preivew) -> then click the Add button:
3.In the new page, fill in all the fields in 1. Create a budget and 2. Set alerts tab:

Moving from Azure for Students to Pay as you go

I made web app for contest and I was using "Azure for Students" subscription for it. But I lost all of my free credits so I decided to move to "Pay as you go" subscription plan but I don't know how.
And when I trying to change subscription I getting message like this:
Can't move resources from disabled subscription
I used 129$ / 100$ from my Student's subscription and I can't enable it.
Any ideas how to fix it?
As mentioned in the Azure for Students FAQ, to continue using Azure after you exhaust your available credits, you may upgrade to a Pay-As-You-Go subscription by contacting Azure Support. After you upgrade, you pay only for services you use over the free quantity included.
After you exhaust your available credit or reach the end of 12 months, your Azure subscription will be disabled. If you've reached the end of your 12 months and are still a student, you'll be able to renew your Azure for Students offer. You will be notified shortly before your 12-month period to let you know how to renew. If you are no longer a student, you may choose to upgrade to a Pay-As-You-Go subscription.
If you decide not to upgrade at the end of 12 months or after you have exhausted your 100 USD credit, whichever occurs first, any products you have deployed will be decommissioned and you will not be able to access them.
However, you can always export your resource definitions in the form of Azure Resource Manager templates (ARM templates) to be reused later. Just like application code, you can store the infrastructure code in a source repository and version it. Any one on your team can run the code and deploy similar environments.

Get monthly Azure billing invoice of Resource Group usage via email

I want to get the monthly billing invoice of my Azure Resource Group usage sent to my mail instead of downloading it manually from the portal.
This can be possible at subscription level but can this be achieved at Resource group level?
Any ideas please?
You can opt for this option,
To opt in, select your subscription from the Subscriptions blade. You have to opt in for each subscription you own. Select Send my invoice (you might not see this if you're not the account admin), and then select Opt In.
However the bill wont be at the resource group level details
After a lot of research and help from Stack Overflow, I was able to achieve the requirement as mentioned in the question.
You have two options:-
Use the Schedule Export feature in Azure Cost Management.
Use the Azure Cost Management API to create export.
Once you've added scheduled the export, your invoice will be stored in your storage account. (You will need to add the storage account details in the export configuration)
I have used an Azure logic app to pick up the invoice file contents from my storage account and then send it via mail.
Check my post for further clarification -->
Dynamically send blobs from azure storage account to email using azure logic apps

Microsoft Azure - policy to prevent creation of resources not covered by MSDN credit

I'm trying to create an Azure policy which would deny creation of any resource that's not covered by my MSDN subscription 130€ monthly quota. What happens is that I inadvertently create a resource which is not covered by MSDN subscription monthly quota, which leads to my Azure subscription being disabled the next day, and it remains disabled until the end of the monthly billing cycle. I raised a support issue with Microsoft, but they refused to help (because they are tring to get customers credit card data, which would remove the spending limit, and that's something I don't want to do).
Azure policy is not design to enforce billing quotas billing, it more for setting guidelines/policies about what can be deployed in subscriptions in your tenant.
MSDN account will cap at a certain amount, you can keep use the 'budgets' option on the subscription to keep track of how much you are spending.
Most 'enterprise' cloud providers are Pay-As-You-Go so no one is going to guarantee you a fixed price. You can also use the Azure Calculator to get an idea of what setup and consumption will let you stay under the MSDN quota.

Azure live cost monitoring

In my Azure environment I am often tinkering around, adding new services, scaling roles up and down, etc. The problem is that I am always unsure as to how I may have affected my monthly bill. I'm also scared of forgetting to kill services after I don't need them (for example, I mistakenly had a Reporting Service running for a few weeks - very expensive!).
I'm looking for an add-on or service which can give be a basic idea of how much money I am consuming in Azure. I don't need something complicated. A graph or two could be great (perhaps a burn down).
I found these but without luck:
Foglight for Azure: This didn't work for me. All my figures showed up as 0.
Active Cloud Monitoring: This has been removed from the Azure add-ons.
Does anyone know of such a solution?
thank you for the question and the feedback. The new Azure portal, which is currently in public preview, does have this feature. You can try out the new portal at https://portal.azure.com/ . Once there, click on Billing tab on the left of the screen, which should bring up a billing summary for all your subscriptions. Click on the subscription that you need to check, and that will show you the billing details for that subscription. Details include subscription status, days left, current charges, burn down, and a breakdown of current charges by resource.
Please try this out and send your feedback using the "Give feedback" link at the top of the new portal page. You will have to click on your account name to see the "Give feedback" option in the drop down.
If you are using "Enterprise Agreement" as a billing option, the Azure portal does not provide sufficient billing information.
You could use Microsoft Power BI to import the data from Azure and use it for reporting. In Power BI you can use the Content pack "Microsoft Azure Enterprise" and connect it to your subscription. You will need the Enrollment number for your Enterprise Agreement and an API key to access the data.
A detailed explanation can be found in this blog entry.

Resources