Java

A language-specific implementation of OpenTelemetry in Java.

OpenTelemetry Java consists of the following repositories:

  • opentelemetry-java: Components for manual instrumentation including API and SDK as well as extensions, the OpenTracing shim and examples.
  • opentelemetry-java-instrumentation: Built on top of opentelemetry-java and provides a Java agent JAR that can be attached to any Java 8+ application and dynamically injects bytecode to capture telemetry from a number of popular libraries and frameworks.
  • opentelemetry-java-contrib: Provides helpful libraries and standalone OpenTelemetry-based utilities that don’t fit the express scope of the OpenTelemetry Java or Java Instrumentation projects. For example, JMX metric gathering.

Status and Releases

Traces Metrics Logs
Stable Alpha Experimental

Components

  • Tracing API
  • Tracing SDK
  • Metrics API
  • Metrics SDK
  • OTLP Exporter
  • Jaeger Trace Exporter
  • Zipkin Trace Exporter
  • Prometheus Metric Exporter
  • Context Propagation
  • OpenTracing Bridge
  • OpenCensus Bridge

Releases

Published releases are available on maven central. We strongly recommend using our BOM to keep the versions of the various components in sync.

Maven

<project>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-bom</artifactId>
        <version>1.7.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.opentelemetry</groupId>
      <artifactId>opentelemetry-api</artifactId>
    </dependency>
  </dependencies>
</project>

Gradle

dependencies {
  implementation(platform("io.opentelemetry:opentelemetry-bom:1.7.1"))
  implementation("io.opentelemetry:opentelemetry-api")
}

API reference and examples