Simple Engineering

monitoring

Systems monitoring is critical to systems deployed at scale. In addition to traditional monitoring services native to the nodejs ecosystem, this article explores how to monitor nodejs applications using third-party systems in a way that covers the entire stack, and provides an overall state in one bird eye view.

In this article we will talk about:

  • Data collection tools
  • Data visualization tools
  • Self-healing nodejs systems
  • Popular monitoring stacks

Even though this blog post was designed to offer complementary materials to those who bought my Testing nodejs Applications book, the content can help any software developer to tuneup working environment. You use this link to buy the book. Testing nodejs Applications Book Cover

Monitoring

Monitoring, custom alerts, and notifications systems

Monitoring overall system health makes it possible to take immediate action when something unexpected happens. Key metrics to looks at are CPU usage, memory availability, disk capacity, and health and software errors.

Monitoring systems makes it easy to detect, identify and eventually repair or recover from a failure in a reasonable time. When monitoring production applications, the aim is to be quick to respond to incidents. Sometimes, incident resolution can also be automated: a notification system that actually triggers some sort of script execution to remediate known issues. This sort of system is also called self-healing systems.

Monitoring goes hand-in-hand with notification ~ alerting the right systems and people about either about what is about to happen(early or predictive detection), or about what just happened(near real-time detection) ~ so that the remediation action can be taken. We talk about self-healing(or resilient) systems when the system under stress makes remediation on its own, automatically — and without direct human intervention.

Complex monitoring systems are available for free and for a fee, open as well as closed source. The following examples provide a couple of some to look into.

It is a good idea to use a monitoring tool outside the application. This strategy bails out when downtime originates from an entire data center or the same rack of servers. However, monitoring tools deployed on the same server, have the advantage of better taking the pulse of the environment on which the application is deployed. A winning strategy is deploying both solutions so that notifications can go out even when an entire data center has a downtime.

Conclusion

In this article, we revisited how to achieve one bird-eye view of full-stack nodejs application monitoring using third-party systems. We highlighted how logging and monitoring complement each other. There are additional complimentary materials in the “Testing nodejs applications” book.

References

#monitoring #nodejs #data-collection #visualization #data-viz