#Simple IP SLA:
This example is for AWS.

You want to make sure you are pinging an IP Address on the other side of the MPLS cloud. Typically it’s the /30 your ISP gave to you.  Don’t use a Server or VM since those go down often for things like updates/maintenance or it just has a problem.  I like using the /30 IP because I know if that link goes down, they are down.

There’s a VPN tunnel for back up, so if anything happens on the MPLS side, it will automatically fail-over to the VPN.

ip route 172.16.1.0 255.255.255.0 {NEXT HOP TO MPLS} track 1 name MPLS
ip route 172.16.1.0 255.255.255.0 {NEXT HOP TO STS VPN TUNNEL} 10 name STS-VPN-AWS 

ip sla 1
icmp-echo {IP ON THE OTHER SIDE OF THE MPLS CLOUD} source-ip {SOURCE FROM IP THAT HAS REACHABILITY TO OTHER SIDE OF MPLS CLOUD}
timeout 2000
tag mpls
frequency 5
ip sla schedule 1 life forever start-time now 

track 1 ip sla 1 reachability

#Monitor more than 1 IP:

track 1 rtr 1
track 2 rtr 2
track 3 rtr 3
track 4 rtr 4

track 10 list boolean and	:Tracks all four IPs and triggers to a DOWN state if ONE of the four goes down. Change to "or" if you want it to trigger when ALL IPs are not reachable.
  object 1
  object 2
  object 3
  object 4

ip sla 1
  icmp-echo x.x.x.x
  timeout 2000
  frequency 5

ip sla 2
  icmp-echo x.x.x.x
  timeout 2000
  frequency 5

ip sla 3
  icmp-echo x.x.x.x
  timeout 2000
  frequency 5

ip sla 4
  icmp-echo x.x.x.x
  timeout 2000
  frequency 5

ip sla schedule 1 life forever start-time now
ip sla schedule 2 life forever start-time now
ip sla schedule 3 life forever start-time now
ip sla schedule 4 life forever start-time now

ip route 0.0.0.0 0.0.0.0 11.11.11.2 track 10

Below we can see if ONE goes down, the state changes to DOWN:

mia-cordero# sh track 10
Track 10
  List boolean and
  Boolean AND is Down
    1 change, last change 00:00:06
    object 1 Up
    object 2 Down
  Tracked by:
    Static IP Routing 0

#Monitor latency round trip 200ms
This one is good to have. There were several times the SP had very high latency but the WAN would not fail-over because nothing was down. Having this helped fail over when it happened again. Just make sure you ping between the MPLS IPs.

ip sla 10
icmp-echo 10.100.1.1 source-ip 192.168.1.1

ip sla reaction-configuration 10 react rtt threshold-value 200 1 threshold-type immediate action-type traponly
ip sla schedule 10 start-time now life forever
interface Port-channel1.101
 standby 101 track 10 decrement 10

#Monitor Jitter
Router (MIAMI):

ip sla 1
 udp-jitter LA 16384 source-ip MIAMI codec g729a advantage-factor 10
 frequency 30
 history enhanced interval 900 buckets 100

ip sla schedule 10 life forever start-time now

Router (LA):

ip sla responder

#Add SNMP Trap for IPSLA
snmp-server enable traps ipsla