Skip to main content
emnode
Monitoring

Keep Traffic Manager endpoint monitoring healthy

One capability across every Traffic Manager profile: make sure endpoint health monitoring is actually online, because a degraded probe means failover cannot be trusted and you are routing live traffic blind.

14 min·10 sections·AZURE

Last reviewed

Traffic Manager monitor status: the basics

What does a degraded Traffic Manager profile actually mean?

Azure Traffic Manager is a DNS-based global load balancer. It does not sit in the data path; it answers DNS queries and hands the client the address of a healthy endpoint. The only thing that lets it know which endpoint is healthy is its endpoint monitoring: a periodic health probe to each endpoint. When that monitoring is online, Traffic Manager can pull a failing region out of DNS and send users somewhere that works. When the monitoring itself is degraded, that promise quietly stops being true.

Each profile carries a monitor status and each endpoint inside it carries its own. The values you will see are Online, Degraded, CheckingEndpoint, Unmonitored, Disabled, Inactive and Stopped. Online is the only state in which failover is fully trustworthy. Degraded means one or more endpoints failed their probe; the profile keeps routing, but to fewer endpoints than you think. The states that catch teams out are the quiet ones: an endpoint left Disabled, a probe pointed at a path that no longer returns 200, or a firewall that started blocking the probe IPs so every endpoint reads Degraded at once.

Azure Advisor raises this as a reliability recommendation, 'Traffic Manager profiles should have endpoint monitoring enabled' and the related guidance that the monitor status should be online, precisely because a degraded monitor is invisible until the day you need failover. The work in this lesson is to find every profile whose monitor status is not Online, understand why the probe is failing, and fix the probe configuration or the path it depends on so that health monitoring tells you the truth before an incident does.

In this lesson you will learn how Azure Traffic Manager monitoring works, how a profile or endpoint ends up Degraded without anyone touching it, how to find every profile whose monitor status is not Online, and how to fix the probe configuration so failover can be trusted again. You will also see how to add an alert so a degraded monitor tells you in seconds instead of waiting for the next incident.

Fun fact

The probe that watched a redirect

Traffic Manager treats an HTTP redirect as a probe failure by default. It sends a GET and expects a 200 directly, so the day a team adds an HTTP-to-HTTPS redirect, or a path starts returning a 301 to a login page, every endpoint behind that profile can flip to Degraded even though the application is perfectly healthy. The application is up, users are fine, and yet failover is now disabled because Traffic Manager believes nothing is online. It is one of the most common ways a monitor goes dark without a single endpoint actually being down, and it is why the probe path has to point at something that returns a flat 200, not at the front door of the app.

Finding degraded monitoring across the estate

Priya runs the platform team at a retailer whose checkout is fronted by Traffic Manager across two regions. Azure Advisor has flagged a reliability recommendation that a profile's endpoint monitor status is not online, and she wants to know which profiles are affected and why before the next peak sales weekend.

Rather than open each profile in the portal, she lists every endpoint and its monitor status in one pass, so a probe that is quietly lying can be separated from an endpoint that is genuinely down.

List every endpoint in a profile with its monitor status. Anything that is not Online needs a reason.

$ az network traffic-manager endpoint list \ --resource-group shop-prod-rg \ --profile-name shop-checkout-tm \ --query "[].{endpoint:name, status:monitorStatus, enabled:endpointStatus}" -o table
Endpoint Status Enabled
-------------- --------- --------
checkout-weu Degraded Enabled
checkout-neu Online Enabled
# checkout-weu is Enabled but Degraded: the probe is failing, so failover excludes it. Find out why before peak.

An endpoint that is Enabled but Degraded is the dangerous case: Traffic Manager has silently removed it from DNS, so you are running on one region without intending to. Investigate the probe before peak load, not during it.

How Traffic Manager decides an endpoint is degradeddeep dive

Traffic Manager runs a probe against each enabled endpoint from a set of probing agents around the world. The probe is defined by the profile's monitor configuration: a protocol (HTTP, HTTPS or TCP), a port, and for HTTP and HTTPS a path. For HTTP and HTTPS it sends a GET and expects a 200 by default, although you can widen this with an expected-status-code-ranges setting. For TCP it just expects the handshake to complete. The interval, the per-probe timeout, and the number of consecutive failures tolerated before the endpoint flips to Degraded are all part of that same configuration.

An endpoint goes Degraded for one of a few concrete reasons. The path returns something other than the expected status, which most often means a redirect: Traffic Manager treats a 301 or 302 as a failure unless you have explicitly allowed that code range. The probe times out because the endpoint is slow or unreachable. Or a firewall or network security group in front of the endpoint is dropping the probe traffic, in which case every endpoint behind it reads Degraded at once. The fix for that last case is to allow the AzureTrafficManager service tag rather than chase a hand-maintained list of probe IPs, because Microsoft updates the service tag automatically.

Two values matter when you read the status. The endpoint status (enabled or disabled) is whether you have told Traffic Manager to consider the endpoint at all. The monitor status (Online, Degraded, CheckingEndpoint and so on) is the live probe result for the ones that are enabled. An endpoint that is enabled but degraded is silently out of rotation; an endpoint that is disabled was taken out deliberately. Advisor's reliability recommendation keys off the profile and endpoint not being in the Online state, which is why a single misconfigured probe path can light up the recommendation across every profile that shares it.

What is the impact of a degraded monitor?

The direct impact is that failover stops being trustworthy. Traffic Manager only routes around a region it knows is unhealthy, and it only knows that through the probe. If the monitor is degraded because the probe is misconfigured, two things can happen and both are bad. A healthy endpoint can be pulled out of DNS because the probe is failing for a configuration reason, shrinking your capacity for no real cause. Or, more dangerously, you lose confidence that a genuinely failing region would be detected at all, so the automatic failover you designed and pay for may never fire.

The second-order impact is on mean-time-to-detect and mean-time-to-resolve. When monitoring is healthy, a regional failure is detected by the probe in seconds and routed around automatically; the incident is often resolved before a human is involved. When the monitor is degraded, that whole loop is broken, and the first detection signal becomes a customer report, a support spike or a revenue dip. Every minute spent flying blind is a minute of outage that a working monitor would have collapsed to near zero, and it is also a minute of slower diagnosis because the one system that should have pointed at the failing region is itself untrustworthy.

There is a reliability-evidence angle too. Azure Advisor surfaces this as a reliability recommendation, and any serious resilience review, a well-architected assessment, a disaster-recovery audit or an internal game-day, expects evidence that health monitoring across your global routing is actually online. A profile reporting Online with an alert wired to its monitor status is the cheapest and most defensible artefact that your failover is real and not just drawn on a diagram.

How do you get monitoring back to online safely?

Work it as one loop rather than chasing the Advisor item once. The order matters: understand why each probe is failing before you change anything, so you fix the real cause rather than masking it by widening the probe until it passes.

1. Inventory every profile by monitor status

List every Traffic Manager profile and endpoint and its monitor status. Treat anything not Online as a finding: Degraded, CheckingEndpoint that never settles, or Unmonitored where you expected monitoring. This inventory, not the single Advisor item, is the source of truth, because one shared probe path can degrade several profiles at once.

2. Diagnose the real cause of each degraded probe

For each degraded endpoint, find out why the probe fails. Curl the probe path yourself and check the status code: a redirect (301 or 302) is the most common culprit, followed by a path that returns 404 or 500, a timeout from a slow endpoint, or a firewall dropping the probe. Decide whether the application is genuinely unhealthy or the probe is pointed at the wrong thing.

3. Fix the probe, not the symptom

Point the probe at a dedicated, flat health path that returns a 200 with no redirect, on the right protocol and port. Where the endpoint sits behind a firewall or NSG, allow the AzureTrafficManager service tag so probe traffic is never dropped. Only widen the expected status code range if a non-200 is genuinely a healthy response for that endpoint; do not widen it just to make the finding disappear.

4. Alert on monitor status so it never goes dark silently

Wire an Azure Monitor metric alert to the Traffic Manager endpoint health metric, or a Resource Graph check on a schedule, so any profile dropping out of Online raises an alert within minutes. This is what converts the control from a point-in-time fix into a standing guarantee that a degraded monitor tells you, rather than waiting to be discovered during the next incident.

# 1. Find every endpoint across the subscription whose monitor status is not Online.
az graph query -q "resources
  | where type == 'microsoft.network/trafficmanagerprofiles'
  | mv-expand endpoint = properties.endpoints
  | extend status = tostring(endpoint.properties.endpointMonitorStatus)
  | where status != 'Online' and status != 'Disabled'
  | project profile = name, endpoint = tostring(endpoint.name), status, resourceGroup" \
  -o table

# 2. Repoint the profile probe at a flat health path that returns 200 (no redirect),
#    over HTTPS, with sensible interval/timeout/failure tolerance.
az network traffic-manager profile update \
  --resource-group shop-prod-rg \
  --name shop-checkout-tm \
  --protocol HTTPS \
  --port 443 \
  --path /healthz \
  --interval 30 \
  --timeout 10 \
  --max-failures 3

# 3. Alert when any profile leaves the Online state, so it never degrades silently.
az monitor metrics alert create \
  --name tm-checkout-degraded \
  --resource-group shop-prod-rg \
  --scopes "$(az network traffic-manager profile show -g shop-prod-rg -n shop-checkout-tm --query id -o tsv)" \
  --condition "min ProbeAgentCurrentEndpointStateByProfileResourceId < 1" \
  --description "A Traffic Manager endpoint left the Online state"

Quick quiz

Question 1 of 5

Azure Advisor flags that a Traffic Manager profile's endpoint monitor status is not online. Why does this matter even though the application is still serving users?

You can now treat Traffic Manager monitoring as a capability rather than a one-off Advisor item: inventory every profile whose monitor status is not Online, diagnose why each probe is failing instead of masking it, fix the probe at its real cause (most often a redirect, a wrong path or a firewall blocking probe traffic), and wire an alert so a degraded monitor tells you in minutes rather than during the next incident. Healthy monitoring is what makes your failover real.

Back to the library