Monitoring the NATS messaging system at scale with Elastic Beats
05-19, 11:35–12:05 (UTC), Sidebar

In a world where stateless applications are optimized to run blazing fast, message exchanging cannot be allowed to affect their performance. Having the ability to publish more than 7 million of messages per second, NATS is the sprinter of the messaging queues.

Whereas benchmarks are good indicators for choosing a tool there is no way to confirm its value without monitoring its performance in production. In our team, we use EFK stack to monitor a bunch of microservices running on top of Kubernetes, since EFK tends to be the de facto way to monitor containerized microservices.

Everything started with a task: Ship NATS monitoring data to Elasticsearch. What we achieved: Extending Beats, the Elastic data shipper, with a NATS dedicated module.

Join us in this session to learn more about the journey, how to add value to a CNCF project and give back to the community.

PS. There will be a demo!

In this session we plan to cover the whole process of turning an internal requirement into a very meaningful integration between a CNCF incubating project (NATS) and a CNCF silver member’s project (Elastic Beats).

First part of the session is going to be about the problem we had to solve. As a team working on Kubernetes microservices, we are using NATS as a messaging queue to ensure the resiliency of the critical paths. Furthermore, we rely on EFK to monitor our stack. Consequently, monitoring of NATS had to be achieved through EFK stack as well.

In the second part of the session we will describe how we came up with the solution, trying to motivate the audience to follow the same successful path when facing similar situations. After investigating our available options, we noticed that Beats project, the Elastic data shipper, could fit in our case if NATS monitoring was supported. And here comes the motivational part. Those days, during an organized hackathon we grabbed the opportunity to work into creating our own NATS Beat which was later added to the official list of community Beats. Today, after Beats maintainers’ request, NATS has its own module in the core of Beats project.

Final part of the session will be dedicated on how to actually use Beats for shipping monitoring data of a running NATS server to an Elasticsearch instance. The audience will have the opportunity to realize the value of NATS module and the benefit of putting effort in community projects.

Stamatis is a software engineer, focused mainly on the Cloud. He is an active member of the OPNFV community with contributions to various OPNFV projects. He experiments with OpenStack and Kubernetes deployments and is a Linux enthusiast. He speaks C, Bash and Python. Lately, he is a frequent visitor of Go playground.

Michael is a cloud software engineer, backed with working knowledge in telecommunications systems, currently focusing in SDN/NFV area. Leveraging Linux power and open source tools he always tries to combine work in internal projects with open source contributions.