Monitoring Facade (Micrometer)

Monitoring Facade

Monitoring tools acts like an ICU of hospitals, for systems running in production. Only difference is ICU is needed when patient is critical, whereas monitoring tool for systems in production is needed always. The way ICU monitors and controls vitals of patients, monitoring tools monitor different aspects s of the system.

In this article I am going to give you the kick start for the same.

What are the common aspects of software system which needs monitoring

  1. CPU utilization
  2. Memory utilization
  3. Network/ bandwidth utilization
  4. HTTP Requests per seconds
  5. HTTP sessions
  6. Thread count
  7. Connectivity to other systems

Based on the technology being used in the system, this list could include additional aspects,

For example, for Hibernate

  • SQL hits per second
  • SQL Mean times
  • % SQL errors
  • Second level cache statistics

There are tons of monitoring tools available to monitor the systems. Just to list few of them

Question is, which one to select and how to avoid tight coupling to any of these systems. For those working in software industry for many years would recognize we had similar problem for logging. Many logging libraries were available and which one to select without explicitly binding to it was the problem. This problem was solved by one library SL4J. (Simple Logging For Java). This library acts like a facade for available logging libraries, allowing to have technology agnostic logging in your system. 

To see whether we have any such solution for monitoring, first let's look into monitoring matrices.

Monitoring is simply nothing but collecting the data from the system being monitored. To the minimum it would be two dimensional data collected. One of the dimension being time and other being the one of the aspects of monitoring, lets say number of HTTP sessions.

No alt text provided for this image

With complex monitoring this two dimensional data would become 'n' dimensional. Data collected for various aspects of the systems being monitored are called as matrices.

So all monitoring tools has to collect matrices data. Simple! isn't it?

Thanks to Micrometer, which provides application metrics facade. So if system uses this facade for generation of matrices data, you are automatically free to choose any monitoring tool behind it. Monitoring tools will simply use these matrices data to do what they intent to do.....and that is monitoring :-)

Stay tune!! coming up... how to to generate/collect such metrics data in Spring based applications....

Waiting for your next post.Good Job !

Like
Reply

To view or add a comment, sign in

More articles by Nitin Kadam

  • Machine Learning

    Machine learning in nutshell My dear friend “Google search” was, as usual, very useful in giving me tons of material on…

    4 Comments
  • Metrics - Spring based applications

    Spring boot has a module called 'Actuator' which provides Monitoring, Metrics, Auditing, and more. To have actuator in…

    1 Comment

Others also viewed

Explore content categories