Hypothetical Automation - "I'm still running!"

So kind of a weird idea/musing, but I've been contemplating setting up some sort of automation that sends out a "I'm still running" e-mail to admins every hour just so it's a bit easier to keep an eye on the community and ensure it's still up. We have some massive issues with network instability (not due to Telligent - it's just how our infrastructure is), so right now I find myself rather obsessively checking.

How would you go about writing something like this? Any ideas?

  • Another option is there are many good, affordable uptime monitors (UptimeRobot, Pingdom, BetterUptime, StatusCake) that are and in some cases free (or sub $10/month) if monitoring one site. These can check as frequents as 1 minutes and notify user(s) immediatly. Since a recurring automation will run on the job server the benefit of these are the requests are coming from external vs possibly (internal depending on your IT setup) and the job server may be able to access the site but members cannot. Also, having a service like this that pings means the notification of an alert means something is potentially wrong vs realizing having to realize no notification (i.e. assuming the job send I am still running) means something may be wrong.

  • This should be possible with a general purpose automation configured with a scheduled trigger (instead of when an event occurs).

    So, for example:

    And then the implementation just uses the email API:

    var subject = 'Community Running';
    var body = 'Community is still Running';
    var from = 'from@email.com';
    var to = 'to@email.com';
    
    core_v2_email.Send(subject , body, { 
        FromEmail: from, 
        ToEmail: to
    });

    This would effectively test that both the database and job server are running, since those would be required for this to be sent. It wouldn't, unfortunately, identify whether all of the web nodes are running, or whether the bus is running and if all app nodes and job server are connected to the bus, or whether SOLR is running. These would all be important aspects of the health of the deployment as well.

    Here's the exported automation:

    StillRunning-Automation.xml
    <automation name="Still Running" version="11.0.0.0" description="Sends an intermittent email to identify that the job server is still running" id="20cf018786784657800b13fd88e27ea4" executeAsServiceUser="true" isSingleton="true" trigger="Job" schedule="1h" lastModified="2020-07-06 15:57:43Z">
    	<executionScript language="JavaScript"><![CDATA[var subject = 'Community Running';
    var body = 'Community is still Running';
    var from = 'from@email.com';
    var to = 'to@email.com';
    
    core_v2_email.Send(subject , body, { 
        FromEmail: from, 
        ToEmail: to
    });]]></executionScript>
    </automation>

  • I was thinking about those, but our community is entirely internal with no option for external access. You must have very specific credentials (multiple levels) to access the community. So my thought process was something on the platform that effectively needs multiple aspects of the community job service to successfully run.

  • Ah! Thank you. I'll give this a try.

    And yes, I very much agree there are many things that need to be checked on a regular basis to ensure the community is running as it should be, but the easiest check of all is "Am I still receiving notifications?". All the other possible issues are less than ideal, but the community being up and notifications running are definitely the most customer facing.

  • Is your community able to talk out to a server on the Internet? If so, that does open up some possibilities for automated checking.

  • Sort of but not easily give our setup, but the solution Michael provided below has worked perfect now for about 2 months. I'm able to quickly see if the community has sent out an e-mail in the past hour which makes keeping an eye on it during nights, weekends, and other times when I'm away much easier.

  • Okay, glad it works for you.

    For anyone thinking about alternatives, you could have a similar automation rule, but instead of emailing, you could call/ping a Logic App in Azure. That would be relatively easy to set up to monitor for the lack of a 'ping' and then send you an email alert.