Downtime monitoring with reporting and alerts

user profile photouser profile photouser profile photo565 developers have joined this project.

What you will practice

You’ll practice working at every level of the stack while stretching your data visualization and serverless development skills.

Introduction

Website monitoring apps are, at their core, based on an incredibly simple core functionality: they make an HTTP request and report the status code response. If the response is not 200 OK, the website is considered "down". Monitoring apps go through this request and response cycle frequently (sometimes up to several times per minute) and trigger an alert whenever the request returns an unexpected status code.

Here, you’ll build an automated downtime monitoring application with alerts and uptime reports. Ideally, you’ll use this app to monitor your own websites.

Requirements

  • You can add a new website to monitor.
  • You can monitor multiple websites at the same time.
  • The status of each website is checked at regular intervals (e.g. once every 30 minutes).
  • You can choose to receive downtime alerts via email or text message.

For an extra challenge: You can view uptime reports for each website being monitored.

Suggested Implementation

  • You’ll need a cron job type solution to automatically check the response code for monitored websites, such as a scheduled Lambda function which makes an HTTP request to the website being monitored every 30 minutes.
  • When the response code is 200 (OK), nothing happens.
  • When the response code is not 200, the website could be down, so you’ll need to trigger an alert.
  • If you want to build downtime reporting for each website you’re monitoring, save the timestamp and status of each HTTP request in a database.

References

  • You can monitor the status of any website on the internet as long as you don’t make HTTP requests too frequently - but it’s more fun to monitor your own!
  • Although the MEVN stack is suggested here, any modern web stack can be used as long as it includes a database, backend, and a front-end.
  • For reporting, you could either display the % of uptime or downtime, or build a chart using a JavaScript framework such as Toast UI to show status code responses in time series format.
  • For downtime alerts, you can use Amazon SNS to send either emails or text messages within the AWS Free Tier.
  • Make sure to rate limit the frequency of your automated downtime checks to avoid putting stress on the websites you’re monitoring. It’s recommended that you check websites you own a maximum of once every 5 minutes, and websites you don’t own a maximum of once every 30 minutes.

Interested in this project?

Shorten your learning curve with on-demand programming help

The awesome set of verified mentors will provide guidance and mentoring help when you are stuck.

Suresh Atta

  • Post request free
  • First 15 mins free
Shorten your learning curve with on-demand programming help

Browse more projects

More coming soon...