The rise of SaaS applications has made running a business more efficient and easier than ever. SaaS applications come in all shapes and sizes ranging from Accounting, Analytics, BI, Blogs, CRM, Marketing, Project Management, Office Suite, Websites, and so much more. Startups on average start using 29 SaaS applications in the first two years of business and spike to over 100+ SaaS apps after 3 years of business according to the Better Cloud State of SaaS report.
The question is how many of these SaaS applications which you have zero control over the infrastructure are critical to your daily business? Do you have a SaaS application that would cause a financial impact to your business if it were to go offline and impact your customers? If you answered yes then you should absolutely be monitoring your SaaS applications for availability, performance, SLA adherence, and usability.
Types of Monitoring
I am very passionate about monitoring so much so I used to present at several DockerCons the Monitoring and Logging workshops. You can find the slides here from DockerCon 2018 in Barcelona. One of the basic elements of monitoring is understanding the workload in which you want to monitor.
Black Box Monitoring
Black Box monitoring is exactly what it sounds like. As seen in the image above we don't know what is inside the box similar to our SaaS applications. We can only monitor the box from outside using such tools as ping, HTTP, and some scripting. We won't have the same depth of monitoring as White Box Monitoring but it is still possible to monitor our SaaS application.
White Box Monitoring
White Box Monitoring is typically servers or infrastructure to which we have full control or access. White Box Monitoring allows full-stack or end-to-end monitoring which enables developers to build monitoring directly into the application and measure performance between applications.
What to Monitor on your SaaS application
Most people only measure the uptime or availability of a website or SaaS application. This is OK but doesn't tell us if the actual application is functioning as expected. Here's a list of what to monitor on your SaaS application:
- Uptime/Availability - Is the SaaS application up and responding via Ping, DNS, and HTTP. Uptime is the most basic of monitoring and your users will usually inform you before you are alerted by monitoring if the entire application is offline. We can also use this metric to measure the SLA of the application in comparison to what the vendor reports.
- Performance - Another key metric as this indicates the load time of the SaaS application and if noticeable spikes occur during certain times of the day. This is something where monitoring is far better than users as we can see trends and actual metrics compared to users complaining it is slow. Additionally, if using the SaaS application in different geographic locations it is a best practice also to monitor per geographic location to capture any inconsistencies in a region due to cloud service.
- UX - User Experience is probably one of the most critical items to monitor. For example, can users log in or can a user perform x, y, z?
- API Endpoints - Most SaaS applications that provide an API also provide an API endpoint which you can query to see if it is online and available, This is separate from the SaaS availability as the API could be offline but the SaaS itself is still operating.
How to Monitor your SaaS application?
There are tons of SaaS applications that actually perform all of the above. However, I am not in the business of referring SaaS solutions but rather offering the Open Source equivalent. I recommend using Open Source as this helps you to better understand how to monitor, what is required, and ultimately if you really need to dish out money to monitor your SaaS or not.
I'm a huge fan of Grafana and Prometheus but this requires a bit more technical know-how to get started. If you are interested here is my complete tutorial on how to get up and running with a Grafana and Prometheus stack. Once up and running you can then configure Grafana to start monitoring your website availability, performance, and more. I then recommend using the Grafana Plugin library to find a plugin that best matches your use case.
The other option is to use either Nagios or Zabbix. Both have been around longer than anything else on the market and have huge communities. The benefit of using either of these tools is most likely they have a native integration with your SaaS application already making it much easier to get started. I've use both solutions and can recommend them both. They don't look new and shiny in comparison to high price solutions but they get the job done.
Don't wait and start monitoring today
The first step is always the hardest and that is choosing which monitoring solution to get started with. Once you made the choice, get started. Remember, don't go overboard, start small, and don't overalert yourself. It's important to focus on the key indicators which are important to you, your business, and your customers.