Status Page 101
Tags: monitoring, devops
Published: 2023-10-06 11:42:40

A Status Page is a web interface that displays the real-time status of one or more systems, providing additional details in case any system is experiencing issues. This serves as a straightforward method for a company to offer transparency to its users regarding the operational health of its systems. Not only is it an economical solution, but it also simplifies the process, delivering significant value to both the product team and users.
Today, it's commonplace for widely-used services such as [Github](https://www.githubstatus.com/), [Google Workspaces](https://www.google.com/appsstatus/dashboard/summary) , and [Twitter](https://api.twitterstat.us/). to maintain a status page. This practice allows users to stay informed about any potential disruptions or maintenance activities.

Implementing a status page can take various forms, but a widely adopted approach involves three key components: a health endpoint, a monitor, and a dedicated page. Let's delve into each of these components to gain a deeper understanding.


## The health endpoint

To retrieve the status of each system, it's essential to establish a means of querying its health. Commonly referred to as a "health endpoint" or a "liveliness probe," this component typically involves modifying the system's code. However, depending on the technology stack, there are instances where integrating a third-party component is a viable option.

For instance, in Java applications leveraging the Spring Boot Framework, a seamless solution is the [Spring Boot Health Actuator](https://springframework.guru/actuator-in-spring-boot/). This framework facilitates the implementation of health endpoints, streamlining the process of obtaining the system's status.


## The Monitor

After establishing the health endpoints, the next step involves implementing an executable component to regularly query the status of the target systems. A straightforward approach involves creating a simple implementation using tools such as crontab, bash, and curl. This can be effective for basic setups.

For a more robust and sophisticated solution, consider leveraging dedicated tools like the [New Relic Synthetic Monitoring feature](https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/getting-started/get-started-synthetic-monitoring/). These advanced tools offer enhanced capabilities, providing a comprehensive and reliable means of monitoring system health over time.

In addition to verifying the system's status, the monitor plays a crucial role in reporting any status changes by sending alerts and/or messages to the Status Page.

## The Page

Ultimately, a web page is necessary to display the status of various systems. In the event of an unavailable system, the status page serves as a crucial platform for communicating the incident's progression. Multiple products cater to this need, with [Atlassian's Status Page](https://www.atlassian.com/software/statuspage)being one notable example. Additionally, tools like [Uptime Robot](https://uptimerobot.com/) and [Status Cake](https://www.statuscake.com/) offer a comprehensive solution by integrating both the Page and Monitor functionalities.

The image below exemplifies a Status Page implemented using Uptime Robot. It features the latest update timestamp and indicates when the next update is expected. The overall system status is visually represented by a green circle, and detailed insights into the evolution of the "bot" system's status are also provided.

![Screenshot of a Status Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7gxnk86w7d9vsjnobjen.jpg)