We have a windows desktop application which needs to be running all the time (100% uptime). It's running on windows server 2012 and runs as expected except for a nasty issue which when occurs, the application keeps on running (visible on Task manager & Resource Monitor) but the main Timer thread inside it has stopped, essentially failing to do its core work. Only the app UI is visible. Surprisingly this exception isn't even captured in logs, the log generation just halts. So log monitoring technique fails to work here.
We're fixing this issue, but nevertheless we want to monitor/ make sure internally the desktop app is working. I'm planning to monitor it using a heartbeat URL which will be consumed by this desktop app on every Timer event fired. It'll inform the monitoring server (heartbeat URL host) that "I'm alive". If for N minutes a heartbeat is not received, notifications will be generated.
My questions are, Is this the right approach? Are there any off the shelf paid/free tools for the said purpose?
Given that we cannot monitor an app internally using an external monitoring service, I had this one solution in mind.