CLOSE

Hybrid & multi-cloud infrastructure

Open Telemetry (OpenTracing, OpenCensus)

Definition of OpenTelemetry, OpenTracing, and OpenCensus

OpenTracing is a vendor-neutral API specification for distributed tracing, in particular for Microservice architectures.

The API is implemented for all major programming languages (open-source), allowing polyglot Microservice landscapes.

The traces are handled and visualized by a number of open-source and commercial ‘tracers’, including Jaeger, LightStep, Zipkin, Instana, DataDog, and more.

Both OpenTracing and Jaeger are Cloud Native Computing Foundation (CNCF) projects. Istio includes distributed tracing based on OpenTracing.

OpenCensus (a Google-founded open-source project) shared similar goals as OpenTracing, yet with different emphases. OpenTracing and OpenCensus merged in 2019 into OpenTelemetry (OT), currently in beta, which will be backwards compatible with OpenTracing.

Jaeger focuses on visualization with time bars/‘spans’ (focus: technical roles). Commercial tools offer more sophisticated visualization and analysis (also for business roles).

Viewing Traces in Jaeger

Viewing Traces in Jaeger (source)

Market - Current Adoption

While adoption of OpenTracing is difficult to measure directly as it is not a product, its popularity is apparent by the instrumentation available for a very large number of programming languages, the numerous tracers offered for it, and its important role in the popular Service Mesh Platform ‘Istio’.

OpenTelemetry was recently founded and is expected to be a success as well. For now, companies who want to be particularly careful will stay with OpenTracing (to which OpenTelemetry is backwards compatible).

Market Outlook

OpenTelemetry/OpenTracing usage will grow as the need for cloud-native distributed tracing, telemetry, and observability becomes more and more visible (without detailing the differences between the terms here).

While the tracers are currently operations focused, they are expected to develop toward supporting different roles as well, such as, better covering the needs of business stakeholders. This is even more important as the role definitions themselves are subject to change. In a microservice architecture, the classical role division between business, development, and operations changes, something that the tracers must reflect.