Monitoring and Alerting for SaaS Deployments

  • No overhead of Operation — Operational overheads are taken care of by SaaS providers. SaaS providers will take care of provisioning infrastructure, maintaining it, monitoring the solution, etc. SaaS customers don’t have any responsibility for operational overheads.
  • Scalability based on changing needs- As the use of SaaS solutions increases customers may face the issue of shortage of resources. To provision, additional resources autoscaling becomes an obvious choice but we should not allow the application to scale beyond certain limits. Having a strong monitoring solution allows us to keep track of infrastructure changes. If any new infrastructure is created as part of autoscaling there should be a mechanism in place such that it should automatically get added to existing monitoring. End customers don’t have to bother about scaling needs all provisions will be handled by the SaaS provider.
  • Cost Optimizations- Keeping real-time track of application behavior is essential but analyzing historical system usage and trends allows us to provision the right-sized infrastructure. Sometimes infrastructure may be overprovisioned by looking at historical data you can decide to scale down infrastructure to achieve cost optimizations.
  • Secure environment — Security of data is often a concern to SaaS users while operating on the SaaS platforms. In the SaaS world, a major portion of handling security lies with the SaaS provider. If security is compromised then you may see unusual usage patterns of problems with your deployed services/infrastructure. A monitoring solution will help you to track such unusual usage patterns.
Current Deployment Spread Across Multiple Cloud Providers
Custom Cloudwatch Dashboard for Monitoring Customer SaaS deployment
Nagios Drilldown view of Dashboard
#!/bin/bash
calculate_disk_usage(){
USED_DISK_SPACE=`du ${MOUNT_POINT} -s -BG | awk '​{print $1}'​ | sed 's/G//g'​`​
if [ $USED_DISK_SPACE -lt $SIZE_FOR_WARNING ]; then
echo "OK - ${USED_DISK_SPACE}G of disk space used."​
exit 0
elif [ $USED_DISK_SPACE -ge $SIZE_FOR_WARNING ] && [ $USED_DISK_SPACE -lt $SIZE_FOR_CRITICAL ]; then
echo "WARNING - ${USED_DISK_SPACE}G of disk space used."​
exit 1
elif [ $USED_DISK_SPACE -ge $SIZE_FOR_CRITICAL ]; then
echo "CRITICAL - ${USED_DISK_SPACE}G of disk space used."​
exit 2
else
echo "UNKNOWN - ${USED_DISK_SPACE}G of disk space used."​
exit 3
fi
}


### ======================================================================= ###
### SCRIPT EXECUTION START HERE ###
### ======================================================================= ###


if [ -z "$1"​ ] || [ -z "$2"​ ] || [ -z "$3"​ ]
then
echo "Missing parameters! Syntax: ./`basename $0`​ mount_point/disk warning critical"​
echo "Note warning and critical values will be in GB. Don't need to specify units while passing an argument"​
exit 3
else
MOUNT_POINT=$1
SIZE_FOR_WARNING=$2
SIZE_FOR_CRITICAL=$3
fi

calculate_disk_usage

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dipesh Rane

Dipesh Rane

Solutions Architect - I love working with engineering team and keen to learn with them to build innovative products using cutting edge technologies.