OpenTelemetry vs OpenTracing
In order to make a system observable, it must be instrumented.
If at any point of time you start work on observability solutions for managing complex services then you must have heard about
OpenTelemetry. In this post I will try to briefly touch these topics to get you started.
What is Monitoring?
In a generic context, monitoring is like looking at your system or application, or service vitals. In another context debugging starts from here.
What is Instrumentation?
I like the definition in which someone at NewRelic mentioned
Instrumentation is measuring events in Software using code. These events come as a Telemetry data. Telemetry refers to data emitted from a system, about its behavior. The data can come in the form of Traces, Metrics, and Logs.
What is Observability?
Observability(o11y for short)is the practice of
instrumenting systems with tools to gather data. There are 3 main pillars of Observability-> metrics, logs, and traces. But it does not mean that if you have all 3 in place, you achieved observability!
Instrumentation and Monitoring are part of the strategy to achieve Observability.
So fundamentally, if you want to achieve observability you need to instrument the code right.
Observability has made it possible for both developers and operators to gain that visibility into their systems.
How do I Instrument my code?
In the past, there were various ways the code was instrumented and it created problems when different Observability back-ends were in use. The main problem was that there was no standardised data format for collecting the telemetry data.
IT Industry decided to sort this out, As a start two open-source projects were born: OpenTracing (a Cloud Native Computing Foundation (CNCF) project) and OpenCensus (a Google Open Source community project).