Easily remotely monitor your scripts and dApps for failures and downtime

in #technology4 years ago

image.png

Most people who have managed servers and applications are familiar with up/down server monitoring. This is a service that pings your server from multiple locations every few minutes and alerts you if your server is non-responsive.

This feature is a life saver to know when a critical server or service goes offline allowing you to respond immediately.

I run a monitor that keeps an eye on Hive network which you can check out at https://hivestatus.usehive.com.

Introducing Heart Beat Checks

What a lot of people are not familiar with is heart beat checks that can be used with scripts and services to let you know if a backup fails or some other critical script.

This feature works in reverse, normally server monitoring contacts your server every 1-5 minutes and if it reaches it, it does nothing. If it cannot reach it, it will typically check from another location to confirm the server is in fact down, then alert you. With heart beat checks, your server contacts a remote server and if that server doesn't hear from you in a set amount of time, it alerts you.

Why would I use heartbeat checks?

While this doesn't seem like a big deal, it can be extremely helpful. Let's say you have a backup task that runs daily and doesn't have any built in notification system. If the backup fails to run or fails, it will not contact the heartbeat and after the set time out, the heart beat will notify you.

You can also have your error handling code do regular heartbeat notifications, and when something goes wrong, it does not send a heart beat.

In the case of a backup, you can have the heartbeat notify you if you haven't heard from it in 24 hours as most backups are done daily. More time sensitive services can send a pulse every few minutes and send a notification if it hasn't been heard from in 5 minutes.

There are a lot of really powerful use cases for this type of service.

How to setup Heartbeat checks?

You can code your own heartbeat type of checks into your application by having a remote server that those apps can contact.

Uptime Robot offers both server monitoring (free) and heartbeat monitoring (paid plan) for a very reasonable price.

I currently use the paid plan for $7/month. It allows me to monitor 50 servers and or heartbeats. While you can monitor servers for free with Uptime Robot (checks every five minutes), you do need a paid plan to be able to do heartbeat monitoring, it also allows you to monitor every 1 minute instead of every 5 minutes.

The heartbeat monitoring is a fairly new but very useful feature.

The above Hive Status page you see above is a custom status page from UptimeRobot without any branding, so it looks like it is my own page. One of the nice features with paid accounts I like.

You can read about heartbeat monitoring with Uptime Robot here:
https://blog.uptimerobot.com/new-feature-heartbeat-monitoring/

Sort:  

paid plan for $7/month.

That's cheap for 50 servers.

Though we can also write our own program where you can ping the server every minute to check if it sending the packet or not.

You can, but once you try to match their 10+ unique monitoring locations around the globe and maintaining the servers and monitoring them it gets far more expensive.

There is also a mobile app and some additional useful features.

That's true, I am talking about Individuals where you have 2-3 servers only.

It is completely free if 5 minutes checks are ok and less than 50 servers. Even the app.

Just can't use heartbeats.

I love seeing stuff like this from witnesses. While I understand the politics of name recognition may require other activities, I really want my witnesses to be crack sysadmins. Keep the server up and working. Posts like this are exactly the kind of thing that give me that confidence

Periodic (idk, like monthly) status updates would also be sweet - hardware utilization, uptime, current infrastructure, etc

Thanks for the witnessing, marky!

That's nice. Definitely works great for monitoring large scale applications and if you have multiple servers to manage.

I currently have my own service that pool the server and let me know the status of the server and my applications.

bookmarked. Thank you Mark for contributing towards this blockchain :)