```html Azure Traffic Manager – Documentation

Azure Traffic Manager

Overview

Azure Traffic Manager is a DNS‑based load balancer that enables you to distribute traffic for your services across multiple Azure regions or external endpoints. It improves availability, reduces latency, and provides geo‑routing capabilities.

Traffic Manager diagram

Routing methods

MethodDescription
PriorityDirects traffic to the primary endpoint; fails over to secondary endpoints if primary is unavailable.
WeightedDistributes traffic across endpoints based on assigned weights.
PerformanceSends users to the endpoint with the lowest network latency.
GeographicRoutes users based on their DNS‑resolved geographic location.
Multi‑ValueReturns multiple IP addresses to improve client‑side resilience.
SubnetRoutes traffic based on the client’s subnet IP range.

Profile types

A Traffic Manager profile groups DNS endpoints and defines the routing method. Choose the profile type that matches your scenario:

  • Public – Exposes your service over the internet.
  • Private – Used within Azure Virtual Networks via Private Link.

Configuration steps

  1. Create a Traffic Manager profile in the Azure portal.
  2. Choose a routing method that aligns with your business needs.
  3. Add endpoints (Azure, external, or nested Traffic Manager profiles).
  4. Configure health probes (protocol, port, path, interval).
  5. Update your DNS CNAME record to point to the Traffic Manager domain (e.g., myapp.trafficmanager.net).

Monitoring & alerts

Traffic Manager continuously probes each endpoint. You can configure alerts based on endpoint health using Azure Monitor.

az monitor metrics alert create \
    --name "EndpointHealthAlert" \
    --resource-group MyResourceGroup \
    --scopes /subscriptions/xxxx/resourceGroups/MyResourceGroup/providers/microsoft.network/trafficmanagerprofiles/MyProfile \
    --condition "max TrafficManagerEndpointHealthState > 0" \
    --description "Alert when any endpoint becomes unhealthy"

Sample code

Below is a simple .NET Core snippet that retrieves the list of endpoints for a profile using Azure SDK.

using Azure;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.TrafficManager;
using System;
using System.Threading.Tasks;

public class TrafficManagerDemo
{
    public static async Task Main()
    {
        var credential = new DefaultAzureCredential();
        var armClient = new ArmClient(credential);
        var subscription = await armClient.GetDefaultSubscriptionAsync();
        var tmProfile = await subscription.GetTrafficManagerProfiles()
                                          .GetAsync("myTrafficManagerProfile");

        await foreach (var endpoint in tmProfile.Value.GetEndpoints().GetAllAsync())
        {
            Console.WriteLine($"{endpoint.Data.Name} - {endpoint.Data.Target}");
        }
    }
}

FAQ

Does Traffic Manager improve performance?
Yes, especially when using the Performance routing method, which directs users to the nearest endpoint.
Can I combine multiple routing methods?
Traffic Manager supports a single routing method per profile. To achieve hybrid scenarios, use nested profiles.
How does health monitoring work?
Health probes are sent from multiple Azure regions at configurable intervals. If an endpoint fails > N consecutive probes, it is marked unhealthy.
```