/opentelemetry-java

OpenTelemetry Java SDK

Primary LanguageJavaApache License 2.0Apache-2.0

OpenTelemetry

Gitter chat Build Status Coverage Status Maven Central

OpenTelemetry is a working name of a combined OpenCensus and OpenTracing project.

This project contains the following top level components:

  • api: The OpenTelemetry API.
    • trace: The tracing api. Includes Tracer, Span and SpanContext.
    • tags: Key-value pairs of data that can be propagated to provide contextual information.
    • context: In-process and inter-process propagation layer.
    • metrics: Metrics layer.
  • sdk: The reference implementation complying to the OpenTelemetry API.
  • OpenTracing shim: A bridge layer from OpenTelemetry to the OpenTracing API.
  • OpenCensus shim: A bridge layer from OpenTelemetry to the OpenCensus API.

We would love to hear from the larger community: please provide feedback proactively.

Plan

Please review the roadmap here.

In the coming months we plan to merge the OpenCensus and OpenTracing projects. The technical committee will drive the merge effort. We’ve identified areas that require deeper discussion and areas that merely require alignment around terminology and usage patterns.

We have a three-step plan for the project merge:

  1. spike of merged interfaces,
  2. beta release of new project binaries, and
  3. kicking off the work towards a 1.0 release.

Spike of merged interfaces

Spike API merge will happen in a separate repository, focused on Java specifically. The main goal of the spike is to make sure that we have a clear path forward, and that there will be no unforeseen technical issues blocking the merge of the projects (while staying true to our declared goals for the merge).

As a result of the spike we plan to produce:

  • Alpha version of a merged interface in new repository.
  • Rough port of OpenCensus implementation as an implementation of choice for this API.
  • Rough OpenTracing bridge to new interface.
  • Supplemental documentation and design documents

We expect this spike will take us a few weeks.

Beta release of a new project

Once we have cleared out the path - we plan to initiate a transition of active contribution and discussions from OpenCensus and OpenTracing to the new project. We will

  • Clean up OpenCensus into official SDK of new project
  • Release an official OpenTracing bridge to new Interface

We will minimize the duration of this transition so that users can switch to the new API as seamlessly as possible, and contributors can quickly ensure that their work is compatible with future versions. We will also encourage all contributors to start working in the new project once the merger announced. So there will be no time of duplicative contributions.

Kick off the work towards 1.0

After beta release we will encourage customers and tracing vendors to start using the new project, providing feedback as they go. So we can ensure a high quality v1.0 for the merged project:

  • We will allow ourselves to break implementations, but not people using the public Interfaces.
  • Additions (into interfaces for instance) will involve a best-effort attempt at backwards compatibility (again, for implementations – callers of the public APIs should not be negatively affected by these additions).

Summary

We plan to merge projects and pave the path for future improvements as a unified community of tracing vendors, users and library authors who wants apps be managed better. We are open to feedback and suggestions from all of you!