/opentelemetry-java

OpenTelemetry Java SDK

Primary LanguageJavaApache License 2.0Apache-2.0

OpenTelemetry

Gitter chat Build Status Coverage Status Maven Central

We hold regular meetings. See details at community page.

Overview

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.
    • correlationcontext: Collection of entries in the form of 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.

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

Project setup and contribute

Please refer to the contribution guide on how to setup and contribute!

Quick Start

Please refer to the quick start guide on how use the OpenTelemetry API.

Snapshots

Snapshots based out the master branch are available for opentelemetry-api, opentelemetry-sdk and the rest of the artifacts:

Maven

  <repositories>
    <repository>
      <id>oss.sonatype.org-snapshot</id>
      <url>https://oss.jfrog.org/artifactory/oss-snapshot-local</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>io.opentelemetry</groupId>
      <artifactId>opentelemetry-api</artifactId>
      <version>0.2.0-SNAPSHOT</version>
    </dependency>
  </dependencies>

Gradle

repositories {
	maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local' }
}

dependencies {
	compile('io.opentelemetry:opentelemetry-api:0.2.0-SNAPSHOT')
}

Libraries will usually only need opentelemetry-api, while applications may want to use opentelemetry-sdk.

Release Schedule

OpenTelemetry Java is under active development. Our goal is to release an alpha version of the library by middle October 2019. This release isn't guaranteed to conform to a specific version of the specification, and future releases will not attempt to maintain backwards compatibility with the alpha release.

Component Version Target Date
Tracing API Alpha October 21 2019
Tracing SDK Alpha October 21 2019
Metrics API Alpha October 21 2019
Metrics SDK Alpha October 21 2019
Jaeger Trace Exporter Alpha October 21 2019
Zipkin Trace Exporter Alpha Unknown
Prometheus Metrics Exporter Alpha Unknown
Context Propagation Alpha October 21 2019
OpenTracing Bridge Alpha October 21 2019
OpenCensus Bridge Alpha Unknown

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!

Owners

Approvers (@open-telemetry/java-approvers):

Find more about the approver role in community repository.

Maintainers (@open-telemetry/java-maintainers):

Find more about the maintainer role in community repository.