Network Performance Monitor
Start course

When you have network connections that are critical to your business, it’s important to monitor them at all times. Azure Network Watcher is a collection of network monitoring and troubleshooting tools. Not only does it allow you to set up automated monitoring, but it also gives you a suite of tools that will allow you to diagnose almost any network issue.

In this course, you’ll learn about both troubleshooting and monitoring. We’ll start with the troubleshooting tools: IP Flow Verify, Security Group View, Next Hop, Connection Troubleshoot, and VPN Troubleshoot. Then you’ll see how to use the monitoring and analysis tools: Connection Monitor, Logs, Traffic Analytics, and Network Performance Monitor.

Learning Objectives

  • Use Network Watcher’s troubleshooting tools to diagnose Azure networking issues
  • Configure Network Watcher’s monitoring tools to alert you when there are critical network issues
  • Use Network Watcher’s analysis tools to get a more comprehensive view of networking issues

Intended Audience

  • People who want to become Azure cloud architects
  • People who are preparing to take Microsoft’s AZ-303 exam


  • Basic knowledge of Azure virtual networks

To see the full range of Microsoft Azure Content, visit the Azure Training Library.


The last tool we're going to look at is network performance monitor or NPM. You can use this to monitor the health and performance of specific connections. Doesn't this sound an awful lot like connection monitor? Yes, it does. There's quite a bit of overlap between the two. NPM does have some unique capabilities, though. In addition to it's generic performance monitor module, it also has modules designed specifically for monitoring ExpressRoute and connections to Office 365 and Dynamics 365. It does take quite a bit of time and effort to setup NPM though. So I'm not going to show you every step. First, you create a network performance monitor. If you don't already have a log analytics workspace to connect it to, then you'll have to create one. Note that Microsoft used to call log analytics OMS, so you may still see references to OMS in various places. Then you have to install the log analytics agent on at least one Windows VM in each subnet that is part of a connection that you want to monitor. Installing the agent from the Azure portal is not as straightforward as you think. Although the agent is a VM extension, similar to the Network Watcher extension that we installed earlier, it doesn't show up in the list of extensions you can add to a VM. Instead, you have to go to your log analytics workspace.

Click on virtual machines. Click on the VM where you want to install the agent and then click connect. Once that's done, if you go back to the virtual machine and see which extensions are installed, you'll see one called Microsoft monitoring agent. That's the log analytics agent. To make things even more confusing, the Linux version of the agent is currently called OMS agent. Although that name should be changing soon. Also, as of now, NPM can't monitor ExpressRoute connections using the Linux version of the agent. So you should install the agent on Windows VMs. You can configure NPM to use either ICMP or TCP for its communications. However, ICMP is less accurate for latency and packet loss and you can't use it to monitor ExpressRoute connections. So you're better off using TCP. If you choose TCP, you need to run a PowerShell script called EnableRules on each Windows VM that has an agent. It creates the appropriate firewall rules and it also creates the required registry keys. Alright, now it's finally time to configure NPM. For the performance monitor, all you have to do is choose TCP or ICMP. We'll do more configuration for the performance monitor later on. For the service connectivity monitor, select which services you want to monitor. You also need to tell it which agents to run the monitoring from.

For the ExpressRoute monitor, you select the subscriptions that contain your ExpressRoute resources and then click the button to discover them. When it comes back with a list, you can select which ExpressRoute pairings you want to monitor. Let's go back to configuring the performance monitor. First, select the networks. Sub networks. And nodes you want to monitor. I won't go through the steps for that. But bare in mind that after you've enabled the agents, you have to wait a while before NPM discovers the resources in the networks where the agents reside. So if these configuration screens don't have any resources in them and you're certain that you installed the agent and ran enablerules.ps1, then you probably just need to wait a while. Once you selected network, sub networks, and nodes, then you can create some performance monitor rules. Click add rule and give it a name. Then select two sub networks that have a connection between them that you want to monitor. You also have to choose the protocol again. When we chose TCP before, that only configured the protocol for the default rule, so you have to select the protocol every time you create a new rule. When you're done, save the rule and then wait for a while for NPM to gather data about the connection. After all of that work, you can go back to the NPM overview page and it will show you the health of the connections you want it to monitor. To get more details, click on the tile. Now you see a dashboard. To get even more details, you can keep drilling down. And that's it for the network performance monitor.

About the Author
Learning Paths

Guy launched his first training website in 1995 and he's been helping people learn IT technologies ever since. He has been a sysadmin, instructor, sales engineer, IT manager, and entrepreneur. In his most recent venture, he founded and led a cloud-based training infrastructure company that provided virtual labs for some of the largest software vendors in the world. Guy’s passion is making complex technology easy to understand. His activities outside of work have included riding an elephant and skydiving (although not at the same time).