Azure VM Performance Using the Portal

Azure VM Performance Using the Portal

Checking on the performance of your VMs can be easily done right through the Azure Portal.

Knowing where you’re going by knowing where you’ve been

So bonus points for anyone who knows that reference. Not like…cool points or anything…just…points. ;) One of the most water cooler talked about things I tend to hear is around monitoring VM performance. Microsoft has all kinds of crazy awesome tools to look at how a VM is performing but what about the consumers?

Believe it or not, most of the resources Microsoft evaluates comes from the same source that is available to all customers directly from within the portal. Now depending on the type of compute resources you have (IE: Do you have an Availability Set? Scale Set? Lone VM?) the location will be slightly different. However, the basic conceptual idea and steps will be close to the same.

Virtual Machine Scale Set

Let’s start with VMSS, which is a very popular resource across azure. Getting the performance statistics is as simple as going to the scale set within the portal. Let’s take a look at one of my scale sets. Log into the portal and in the search bar enter vmss and click on Vitual Machine Scale Sets from the list to see all your scale sets.

Shorthand shortcuts

Scale Set != VM

Now let’s get into one of these and take a look around. Before we do that I want to mention that scale sets VM identification is not based on name, but instance number. Notice that all my scale sets have 1 instance in them, this means I only have 1 VM in each.

Looking at Performance

Straight away we can see there are performance charts on this blade along with a lot of additional information such as the status of each instance, vnet, OS, size and so on. But what we want to focus on is the charting. This is a combined perf charting for all scale set instances. Keep this in mind because if you have more than one instance, like most do, then these will be general scale set health metrics and not much more.

Charts here are combined perf for all instances in the scale set

These charts can always be time sliced using the time slicer and as you can see they can go back 30 days. A good amount of data there to help you track possible performance based regressions or high load time frames.

Use these to limit or hone in on specific time areas

Let’s go look directly at one of the instances though. You want to go under the instances section of the blade to see each of the actual VMs in the scale set.

We see the actual names, status, states and so on.

Now that I am here I can go take a look at say, akstotes_0 and look directly at its performance specifically. Now the charts will be scoped only to that specific instance. The default charts being CPU average, Network total, Disk bytes total, Disk operations/sec average. You probably won’t use any of these mainly because averages without a min/max scale won’t let you get true saturation values.

Averages without min/max may not help you much

So essentially all I have shown you is how to access charts you might not have use for? Great… >_> … what I wanted you to experience is the process, so you know how to get these places and see what kind of data is sitting there. We can customize all of this though which is where the real power comes in!

Customizing Metric Charts

You have a few options here. Since I am already looking at one of my instances I can click directly on one of the charts, say CPU, and it takes me directly to the metric chart and I can modify it to fit my needs.

Note that these are aggregates over one minute

Add Metric, choose the metric , aggregation and boom!

With a few clicks you can easily make these charts more useful. Notice that I left the scope at 0, which in this case is indicating the instance from the scale set. Because I am scoped tightly to this resource I am only going to be able to see this resource.

Now here is the downside from what I have found. VMSS Instance custom metric charts per instance are not yet supported. Sad day. Additionally you cannot do any performance metric alerting using the alert rule logic off the charts with VMSS yet either. All that said though, the data is retrievable using the Azure monitoring rest api.

Virtual Machines

Alright now that we have VMSS out of the way lets do the same thing with VM’s! I am happy to tell you the limitations you can find with VMSS do not follow base VMs! This included VM’s you have inside of availability sets (logical groupings of VMs).

In much the same way as VMSS instances, you can go to the resource and find the perf metrics like I did above. Instead of showing that though, I am going to show you how to create a custom chart from scratch.

computes vm performance azure

What is Geek Coin

What is GeekCash, Geek Token

Best Visual Studio Code Themes of 2021

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

How to set up Azure Data Sync between Azure SQL databases and on-premises SQL Server

In this article, you learn how to set up Azure Data Sync services. In addition, you will also learn how to create and set up a data sync group between Azure SQL database and on-premises SQL Server.

Analyze Azure Cosmos DB data using Azure Synapse Analytics

This article will help you understand how to analyze Azure Cosmos DB data using Azure Synapse Analytics.

Integrating Azure Purview with Azure Synapse Analytics

In this Tutorial, we will learn how to integrate Azure Purview and Azure Synapse Analytics capabilities to access data catalog assets hosted in Azure Purview from Azure Synapse.

Setting up Continuous Delivery with Azure DevOps directly from Azure VMs

You can set up the Continuous Delivery with Azure DevOps directly from Azure VMs. Azure DevOps provides us a robust mechanism for Continuous Integration and Continuous Delivery. Previously I have shared several posts on how to set up automated build and releases using Azure DevOps. Most of the time the deployment was done with Azure PaaS services such as Azure App Services, or Azure Function, etc. Azure DevOps also simplifies the setting up a deployment for Azure VMs where you wanted to have your code hosted as an IaaS environment.

Setting up Continuous Delivery with Azure DevOps directly from Azure VMs

You can set up the Continuous Delivery with Azure DevOps directly from Azure VMs. Azure DevOps provides us a robust mechanism for Continuous Integration and Continuous Delivery. Azure DevOps also simplifies the setting up a deployment for Azure VMs where you wanted to have your code hosted as an IaaS environment.