Another idea that I have used is to use WMI calls. I call both servers and check on them (who is active, services, etc)
If the primary is up and active, I returned a 1
If secondary is up and active, return a 2
If both are down, or the services are not running to allow a fail-over - return a 3.
Then of course anything greater than 1 was a warning, anything 3 or greater a critical on the app monitor.
So - green - you are in primary and all is good.
Yellow - still good, but you are on your secondary in the cluster
Red - you have work.