The Future of Tracing Is Open | Datadog

The future of tracing is open

Author Ilan Rabinovitch
@irabinovitch

Published: September 12, 2019

At Datadog, we’ve always been committed to ensuring that our libraries and software that run on your systems are open source. We believe that transparency into how we collect data and integrate with your applications is key for building trust. We’re also committed to supporting open standards, from the tried-and-true StatsD protocol to newer projects such as OpenTracing, OpenCensus, and OpenMetrics, all of which make it easier for organizations to improve the observability of their systems.

We are pleased that OpenTracing and OpenCensus have merged to provide the community with a standard set of APIs and libraries for instrumenting their systems, in a single project called OpenTelemetry, rather than having to choose between two overlapping projects. And we’re excited to announce that we are contributing our tracing libraries to the OpenTelemetry project to support the merger and provide out-of-the box instrumentation to the community.

Datadog + OpenTelemetry

OpenTelemetry is a cross-vendor initiative under the umbrella of the Cloud Native Computing Foundation (CNCF). The project aims to make “robust, portable telemetry a built-in feature of cloud-native software.” OpenTelemetry will enable any company—with any stack, any infrastructure platform, and any monitoring provider—to gather observability data from all their systems, including distributed traces, metrics, and, eventually, logs. Because OpenTelemetry is vendor-neutral, companies will be able to migrate their observability data between monitoring backends more easily, without vendor lock-in.

As part of our continued commitment to open source software and open observability standards, we are partnering with the OpenTelemetry community to build the foundation for auto-instrumentation of applications across languages and frameworks. By building on Datadog’s auto-instrumenting telemetry libraries, the OpenTelemetry project will make it easier for any company to start getting deep visibility into their systems.

Datadog’s instrumentation libraries in Python, Ruby, Java, Go, Node.js, PHP, and .NET are already used by thousands of companies to provide visibility into diverse application architectures and infrastructure environments. Their feedback, requests, and improvements have helped us to deliver a better experience to all our customers, and will soon help the OpenTelemetry project to deliver wide-ranging auto-instrumentation to the rest of the community as well.

What is auto-instrumentation?

Auto-instrumentation is a core feature of Datadog’s tracing libraries, and it will be a core feature of OpenTelemetry as well. The goal of auto-instrumentation is to make it possible to collect comprehensive telemetry data from your application without making manual changes to your code. In a distributed tracing context, auto-instrumentation allows you to trace the path of a request as it traverses different application components, including:

  • Application frameworks such as Django, Spring, Rails, and Laravel
  • Communication protocols including HTTP, gRPC, DNS, and AMQP
  • Data stores such as Redis, MySQL, MongoDB, and PostgreSQL

Automatically tracing all the database queries, API calls, and other operations involved in fulfilling a request provides an end-to-end view of how your application functions. You can then visualize, aggregate, and inspect that data to understand the experience of individual users, identify bottlenecks in your architecture, and map out the dependencies between services. By providing integrations with a wide variety of technologies, auto-instrumenting telemetry libraries make it much simpler to start gathering observability data that provides insights across the stack.

Datadog ❤️ open source

We are excited about the future of OpenTelemetry and are pleased that Datadog’s open source tracing libraries will provide core instrumentation functionality for the project. We believe that this partnership with OpenTelemetry reinforces the value of open source instrumentation and code, from our distributed tracing libraries to the Datadog Agent that collects infrastructure metrics, distributed traces, logs, network performance data, and more. Our commitment to open source not only enables you to inspect, audit, extend, and improve all of your client-side code as a Datadog customer, but it also can provide benefits to the rest of the industry and community. You can learn more by checking out our guide for instrumenting Python applications with our OpenTelemetry exporter.