Monitoring with Prometheus

  • Tom Verelst
  • 24 november 2016

It is needless to say the world is shifting towards DevOps and microservices. This holy grail we aim for adds a great deal of complexity. Monitoring included. Rather than having to monitor one system, we are suddenly faced with the challenge to oversee our manifold services. There are numerous monitoring systems available, but not all of them are fit for monitoring large, distributed systems.

Black box monitoring systems like Nagios allow you to check if an application is alive and healthy. This is done by e.g. pinging the service, checking if there is enough disk space, or monitoring the CPU usage. In a world of distributed architectures where high availability and fast response times are key, it is not sufficient to be only aware if a service is alive. It is crucial to know how a service is working internally as well. How many HTTP requests is it receiving? Are they handled correctly? How fast are requests handled for different endpoints? Are there many errors being logged? How many disk IO operations is the service performing? These are all important questions that need to be monitored to keep a service functional.

Prometheus is a white box monitoring and alerting system that is designed for large, scalable environments. With Prometheus, we can answer all these questions, by exposing the internal state of your applications. By monitoring this internal state, we can throw alerts and act upon certain events. For example, if the average request rate per second of a service goes up, or the fifty percent quantile response time of a service suddenly passes a certain threshold, we could act upon this by upscaling the service.

Read more on the Ordina JWorks tech blog.

Over de auteur:

Tom Verelst

Tom is a senior developer and coach at Ordina Belgium. Some friends like to refer to him as a Java code monkey, which is not completely true! Tom is familiar with many different domains. He loves to learn about everything. Currently he is very fond of Docker, Go and all things DevOps. In his spare time he likes spending time with friends, going out for a run with his marathon club or just swinging around some drum sticks.