Among developers, there has been always confusion between monitoring servers and monitoring the applications. As we tend to do a lot of virtualization, these concepts should be treated separately, as a single server can host dozens of applications.
Let’s go trough the major differences!
Server monitoring is responsible for the host machine. It may be the AWS EC2 instance, DigitalOcean droplet or machine in your own private cloud. It should be able to help you answer the following questions:
- How is the CPU utilization?
- How is the memory utilization across different processes?
- Does my server have enough memory?
- Does my server have enough disk space?
- What are the current processes running on the servers and how it performs?
- Can it reach the network?
Application monitoring, on the other hand, is responsible for the performance and health of a given application instance. It may be your Node.js, Ruby, Java, Python, PHP or Go backend. It should let you know the answers to the following questions:
- How fast are your web requests and API requests?
- How long database queries take to return the result?
- What are the response times for all your micro services?
- Can my application serve requests? Is it up?
We built Atatus APM to make application monitoring easier. We developed it to be an easy to use and efficient tool that you can use to monitor and debug applications from the moment you start building them, and continue even when you have a huge production app with hundreds of services.