How we monitor our APIs at Juvoxa

Anil kumar Sahoo
instigence
Published in
5 min readOct 25, 2021
Fenil is our rockstar Engineer

Have you ever been in a situation where your customers started experiencing errors and you got to know from their complaints that your system is down? If yes, read on to know how this can be prevented in the future.

Juvoxa is an API first company and with the growing customer base, application monitoring becomes important. Developers should be notified immediately of any downtime so that they can take swift action. Customers should also be notified in advance of any expected downtime during scheduled maintenance and be in the know whenever there is an unexpected outage.

In this article, we will show you how we integrated Better Uptime to keep both the developers and customers in the loop.

What's the need?

Internal

With system status monitoring and alarms integration, you can create processes to predict an incoming outage and take prior action like auto-scaling so that the outage never becomes a reality. You can also resolve the issue before it starts impacting a large number of customers. But of course, none of it is possible if there is no monitoring in the first place.

Customers

Open communication builds trust with the customers and helps in ensuring that they have confidence in your product. Whenever there is an unexpected system outage, customers should be able to know what is going on and what are you doing to resolve it. Once it is resolved, why it happened. If you are planning a deployment, infrastructure upgrade or anything that can affect your customers, they should be notified in advance.

We decided to go with Better Uptime because it is an all-in-one package. With it, you don't need to use separate services for a status page, incident management and application uptime monitoring.

Implementation Steps

Create a Monitor

A monitor is used to track the uptime of a URL or an IP address. A monitor checks the URL every few seconds and creates an incident when it becomes available.

Better Uptime monitor dashboard page
  • From the Monitors dashboard, click on Create monitor.
  • Enter your website’s URL to monitor.
  • Select the expected response of the URL.
  • Choose the notification channel — Call, Push, SMS, and e-mail.
  • Click on Advanced settings and configure the request’s HTTP method, header, monitoring frequency, timeout and region.
  • Save the monitor by clicking on Save changes.

Tip: If your request’s HTTP method is POST and it accepts JSON body, type your JSON payload in the body section and add a new header Content-Type with the value application/json.

Create a Status Page

Now that you have created a monitor, you can create a public status page. A status page helps you to communicate your application status with customers.

  • From the Status pages dashboard, click on Create status page.
  • Configure the look and feel of the status page. You can add your company’s logo, Twitter handle, etc.
Basic Information of status page
  • Define the structure of the status page. You can add multiple sections as needed.
Structure page of Status Page
  • Save the changes by clicking on Save changes.

Tip: You can configure the level of status details of your monitor. You can show just the current status, current status with history or the history with response times.

Widget Types View

Embed announcements on your website

Better Uptime provides an easy and simple way to embed announcements onto your website so that the customers can be notified in real-time without having to go to your public status page. To do so,

  • Click on the edit button of your status page and scroll down to the Advanced settings section.
  • Enable the announcements.
  • Copy-paste the <script> tag and place it before the </body> tag on your website.
  • Put a message in the Announcement section.
  • Save the changes.

Once done, any text you put in as the announcement will be automatically be shown to your customers.

Tip: You can also customise the look of the announcement banner and the on-click event.

Additional

Better Uptime does more than that and you can use it to

  • Monitor CRON jobs and serverless workers by creating a Heartbeat.
  • Create a team and invite your colleagues to it.
  • Setup integration to get alerts on Slack and create alerts based on AWS CloudWatch and many more services.
  • Schedule maintenance and create incident reports for better transparency.
  • Get alerted on call and create incident escalation policies.

Simply having detailed monitoring is not enough. There should be processes in the company that can help you take swift action whenever an outage happens and processes that prevent the outage in the first place. Automated testing on a production like environment with a very high coverage, CI process with security and reliability checks, code quality checks, test-driven development etc are some of the practices that can be useful in preventing system outages.

We hope this article helped you out with having real-time communication with your customers on system status. You can find our public status page at juvoxa.betteruptime.com

Have any suggestions that can help improve the incident monitoring and handling process? Come join us! Juvoxa is hiring. Send an email to hr@juvoxa.com.

--

--