Recently, conversations have been increasing around OpenTelemetry; it is gaining more and more momentum in Node.js development circles, but what is it? How can we take advantage of the key concepts and implement them in our projects? Of note, NodeSource is a supporter of OpenTelemetry, and we have recently implemented full support of the open-source standard in our product N|Solid. It allows us to make our powerful Node.js insights accessible via the protocol.
As a cloud service provider, observability is a critical subject as it's strongly related to the availability of the services running on the platform. We need to understand everything that is happening on our platform to troubleshoot errors as fast as possible and improve performance issues. A year ago, while the platform was still in private beta, we faced a tough reliability issue: users were facing random 500 errors when accessing their applications.
OpenTelemetry is a free and open-source software initiative with the objective of supplying software developers with the means to create distributed systems. OpenTelemetry was developed by engineers at Google, and developers have the ability to utilize it to create a standard foundation for the construction of distributed systems. The goal is to enable developers to write code once and then deploy it in any location of their choosing.
Complex modern systems are the new reality for infrastructure teams, and this is due to the evolution of Cloud Computing and working with Distributed systems, containerization, and microservices by default. The teams now have different infrastructures and virtual services with which they must take care of scalable, reliable, and performative applications.
In Node.js, you can centralize tracing information generated by V8, Js code, and userspace code. Directly in the APMs, tracing means that you will have a detail of each flow in your application's process; this means that you will have records available of each time a function is called or a database or external information is called. With tracing, you will have a way to capture, visualize and analyze traces across complex architectures, including architectures that use monoliths and microservices.
When building modern software architectures there can be many moving parts that while adding to the flexibility of software, can also make them more complex than ever before. With software now being built in smaller, more discrete components, issues can occur at many different layers across the stack, making them more difficult to track down.
In this episode of Kongcast, I spoke with Chinmay Gaikwad, the tech evangelist at Epsagon, about distributed tracing and observability for microservices architectures. Check out the transcript and video from our conversation below, and be sure to subscribe to get email alerts for the latest new episodes.