How to log/query historic Azure Quotas? - azure

We are using Azure Databricks to spin up multiple Job clusters during our Production runs, and we need to run more scripts at the same time; however, the organization has defined Quota limits for each Family of Computes, and we have thresholds we do want to cross.
We can check the current status of the Quota through the Azure Portal > Quotas > Computes. However, it only shows the current Quota status and there is no option to check the logs of historic quota utilization.
After a given run, we want to check the Quota usage during the run, and map Quota usage peaks with script runtimes. Right now, we have to keep checking the Quota Page manually continuously and log it manually somewhere like an excel to get a rough idea.
Is there a better way to log and query the Quota Usage history?

You might looking for getting VM usage quota which you can get for example from
Get-AzVMUsage
It provides you list of current usage for different compute families:

Related

What's the meaning of the daily memory-time quota in the context of Azure Function Apps?

Within an Azure Function App it is possible to define a daily memory-time quota.
Unfortunately I was not able to find an official resource from Microsoft stating what setting this value actually means.
What is a memory-time quota? What does it mean if I set the value e.g. to 1000?
Here is document(refer to Step 7 - Configure a Daily Use Quota for the details.) about daily memory-time quota.
In short, when using Azure Functions consumption plan, it offers near-infinite scale to handle huge spikes in load. But that does also leave you open to a "denial of wallet attack" where due to an external DoS attack or a coding mistake, you end up with a huge bill because your function app scaled out to hundreds of instances. The daily quota allows you to set a limit in terms of "Gigabyte seconds" (GB-s).
For "Gigabyte seconds", you can refer to this SO answer.
Hope it helps.

What are the limitations for zip file extraction in Azure Search?

My indexer shows an error for two zip files (size of 800MB) saying that the zip file has "the size of ... bytes, which exceeds the maximum size for document extraction for your curent service tier." Azure Search is already set on a Standard tier. Is the solution to go to a higher tier? Cause from the documentation I gather that the limit is the same across all Standard tiers? If there is a limit to the size of zip files to be extracted, then what is it? And would the solution for bigger files then be to unzip it before Azure Search?
Maximum running times exist to provide balance and stability to the service as a whole, but larger data sets might need more indexing time than the maximum allows. If an indexing job cannot complete within the maximum time allowed, try running it on a schedule. Here is indexer limit you could refer to.
Note: A service is provisioned at a specific tier. Jumping tiers to gain capacity involves provisioning a new service (there is no in-place upgrade). For more information, see Choose a SKU or tier. To learn more about adjusting capacity within a service you've already provisioned, see Scale resource levels for query and indexing workloads.

Operation results in exceeding quota limits of Core. Maximum allowed: 4, Current in use: 4, Additional requested: 4. While in 14 day free trial

I'm using the 14 day Premium free trial. I'm trying to create and run a cluster in databricks (I'm following the quick start guide). How ever I'm getting the following error "Operation results in exceeding quota limits of Core. Maximum allowed: 4, Current in use: 4, Additional requested: 4." I cant bump up the limit because I am in the free trial. I'm trying to run only 1 worker on the weakest worker type. I've already tried deleting all my subscriptions and made sure that there are no other clusters being used.
Edit: Im thinking it might be because the worker and the driver each use 4 cores. Is there a way to use databricks in the free trial?
I think these are your options:
log a support request to ask for more quota (apparently not a thing for free\trial subs)
use different VM types for master and slave (like Standard A2 for master and Standard D2 for slave) because they share different core limits
Use smaller nodes (which I think you've mentioned is not possible), but it might be possibly just not with the portal
Azure free trial is eligible to VM with total 4 vCPUs.
Note: Free Trial subscriptions are not eligible for limit or quota increases.
If you have a Free Trial subscription, you can upgrade to a Pay-As-You-Go subscription.
Upgrade Azure Free Trial to Pay-As-You-Go
For more details, refer "Azure subscription and service limits, quotas, and constraints".

Throttling/errors when attaching data disks to VM in Azure?

I am trying to performance test each of the different size tiers (A, D, DS, F...etc) of virtual machines in Azure devtest labs. In doing so, I need to attach the maximum number of data disks that each size will accept, however I keep getting two errors when trying to attach the disks.
Failed to add data disk to virtual machine, the request is being throttled.
Number of write requests for subscription '(subscription number)' exceeded the limit of '1200' for time interval '01:00:00'. Please try again after 'X' minutes. (time has been as low a 3 minutes and high as 30 minutes)
Currently I will attach a disk, wait 10 minutes, then try to attach another disk with about a 50% success rate.
Is there any way to avoid these errors, like a setting change to the subscription, or am I just trying to attach the disks too quickly?
Is there any way to avoid these errors, like a setting change to the subscription, or am I just trying to attach the disks too quickly?
In brief, there is no way to avoid this error.
There are several limits and restrictions on Azure. And your issue is caused by one of them.
The default limit of Resource Manager API Writes is 1200 per hour.
Normally, if you want to raise the limit above the Default Limit, you can open an online customer support request at no charge. But the limits cannot be raised above the Maximum Limit value.
Unfortunately, the Maximum Limit of Resource Manager API Writes is same with the default limit, which is 1200 per hour. So, to my knowledge, there is no way to raise this limit.
For detailed information about the limits on Azure, please refer to the link below:
Azure subscription and service limits, quotas, and constraints

How to measure memory consumption in Azure web roles

The Azure management dashboard gives you the possibility to monitor metrics such as CPU utilization, network in/out, response time, among others.
But how can you measure consumption/availability of memory? I am running a web app that is memory intensive, and it is hard for me to gauge which instance types (or number of instances) I should provision without having an understanding of the memory situation across time.
Yes, my service is a web role on Azure cloud services, I am not talking about VMs (IaaS) here.
Thanks
In your Azure project, in the Roles folder you'll find a folder for each of your Roles. If you use the latest version of the SDK you'll find a file called diagnostics.wadcfg. This is where you'll be able to configure Performance Counters, like \Memory\Available Bytes. This file will also allow you to configure the sample rate (ex: every 30 sec) and the scheduled transfer period (how frequently the logs should be transferred to your Storage Account).
Then you can use a tool like the Azure Diagnostics Manager to view memory consumption over time.
More information: Using performance counters in Windows Azure
A way to do this from the Management Console:
On the Configure tab for your web role, in the monitoring section, change level to Verbose.
On the Monitor tab at the bottom, click Add Metrics
With monitoring set to Verbose, the available metrics should include Memory Available.

Resources