Cisco has a feature for monitoring network connections in various manners. The IP SLA (service level agreement) feature allows the router to track objects via ICMP, network connections, etc. and monitor things like availability, latency, and jitter, and to making routing decisions based on these.
We’ve implemented this feature to perform failover when a device becomes unavailable. It is possible to monitor multiple items, and to make decisions based on what the aggregate result is, using either Boolean logic or based on percentages.
Finally, we ran into a problem at customer site where the “interface” keyword was not working as expected on an IP SLA object. I changed to use the “address” keyword, and the tracked object started working as expected.