Hi everyone, I'm Yash Rajavarma. I work as a computing researcher at the University of Calgary, where I mostly work with distributed systems and I'm very much passionate about the field of observability.
In the past couple of months, I have been involved in a project called OpenTelemetry, and in this talk, I will be talking about Node.js and OpenTelemetry. So let's get started.
In this talk, we will be answering two questions. The first one is why observability matters for a developer and how we can empower a node application with OpenTelemetry?
To answer the first question, we'll have to look back in time and understand that as our systems evolve, they become more distributed. This can be seen in modern-day applications, like an e-commerce application, where a single microservice interacts with multiple microservices within the application. Issues such as microservices not working or high latency can greatly impact the user experience. This is where observability comes in. It allows us to understand the internal state of our system by examining its output, including logs, metrics, and traces. With observability, we can efficiently debug performance issues by identifying potential bottlenecks.
However, implementing observability can be complex. The first step is instrumentation, where code changes are made to emit telemetry data. This step specifically aligns with the developer's domain. But each observability tool has its own set of rules, making it challenging if we decide to switch tools in the future. OpenTelemetry solves this problem. It's a framework that creates and manages telemetry data in a vendor-agnostic and tool-agnostic way. It provides automatic instrumentation with minimal code changes and also allows for manual instrumentation when needed. OpenTelemetry uses a collector to receive, process, and export data to various ends, supporting multiple formats like Jager and Prometheus.
Getting started with OpenTelemetry Node.js is simple, especially with the auto-instrumentation feature. OpenTelemetry is designed not just for software, but for the people, for developers like us.
Comments