OpenTelemetry Java

May 8, 2026 ยท View on GitHub

Release Coverage Status FOSSA License Status FOSSA Security Status OpenSSF Scorecard Reproducible Builds

opentelemetry-java is the home of the Java implementation of the OpenTelemetry API for recording telemetry, and SDK for managing telemetry recorded by the API.

See opentelemetry.io Java Documentation for:

  • An overview of the OpenTelemetry Java ecosystem and key repositories
  • Detailed documentation on the components published from this repository
  • Review of instrumentation ecosystem, including OpenTelemetry Java agent
  • End-to-end working code examples
  • And more

Important

We are currently seeking additional contributors! See help wanted for details.

Requirements

Unless otherwise noted, all published artifacts support Java 8 or higher. See language version compatibility for complete details.

Android Disclaimer: For compatibility reasons, library desugaring must be enabled.

See contributing for details on building this project locally.

Releases

Releases are published to maven central. We publish minor releases monthly and patch releases as needed.

See releases for a listing of released versions and notes (see also changelog).

Artifacts

The artifacts published by this repository are summarized below in tables, organized in collapsible sections by topic.

As discussed in compatibility, artifact versions must be kept in sync, for which we strongly recommend using one of our BOMs.

Bill of Materials (BOMs)

A bill of materials (or BOM) helps sync dependency versions of related artifacts.

ComponentDescriptionArtifact IDVersionJavadoc
Bill of Materials (BOM)Bill of materials for stable artifactsopentelemetry-bom1.62.0N/A
Alpha Bill of Materials (BOM)Bill of materials for alpha artifactsopentelemetry-bom-alpha1.62.0-alphaN/A
API

The OpenTelemetry API for recording telemetry.

ComponentDescriptionArtifact IDVersionJavadoc
APIOpenTelemetry API, including metrics, traces, baggage, contextopentelemetry-api1.62.0Javadocs
API IncubatorAPI incubator, including pass through propagator, and extended tracer, and Event APIopentelemetry-api-incubator1.62.0-alphaJavadocs
Context APIOpenTelemetry context APIopentelemetry-context1.62.0Javadocs
CommonCommon utility methods used across API componentsopentelemetry-common1.62.0Javadocs
API Extensions

Extensions to the OpenTelemetry API.

ComponentDescriptionArtifact IDVersionJavadoc
Kotlin ExtensionContext extension for coroutinesopentelemetry-extension-kotlin1.62.0Javadocs
Trace Propagators ExtensionTrace propagators, including B3, Jaeger, OT Traceopentelemetry-extension-trace-propagators1.62.0Javadocs
SDK

The OpenTelemetry SDK for managing telemetry producing by the API.

ComponentDescriptionArtifact IDVersionJavadoc
SDKOpenTelemetry SDK, including metrics, traces, and logsopentelemetry-sdk1.62.0Javadocs
Metrics SDKOpenTelemetry metrics SDKopentelemetry-sdk-metrics1.62.0Javadocs
Trace SDKOpenTelemetry trace SDKopentelemetry-sdk-trace1.62.0Javadocs
Log SDKOpenTelemetry log SDKopentelemetry-sdk-logs1.62.0Javadocs
Profiles SDKOpenTelemetry profiles SDKopentelemetry-sdk-profiles1.62.0Javadocs
SDK CommonShared SDK componentsopentelemetry-sdk-common1.62.0Javadocs
SDK TestingComponents for testing OpenTelemetry instrumentationopentelemetry-sdk-testing1.62.0Javadocs
SDK Exporters

SDK exporters for shipping traces, metrics, and logs out of process.

ComponentDescriptionArtifact IDVersionJavadoc
OTLP ExportersOTLP gRPC & HTTP exporters, including traces, metrics, and logsopentelemetry-exporter-otlp1.62.0Javadocs
OTLP Profiles ExporterOTLP profiles exporteropentelemetry-exporter-otlp-profiles1.62.0-alphaJavadocs
OTLP Logging ExportersLogging exporters in OTLP JSON encoding, including traces, metrics, and logsopentelemetry-exporter-logging-otlp1.62.0Javadocs
OTLP CommonShared OTLP components (internal)opentelemetry-exporter-otlp-common1.62.0Javadocs
Logging ExporterLogging exporters, including metrics, traces, and logsopentelemetry-exporter-logging1.62.0Javadocs
Zipkin ExporterZipkin trace exporteropentelemetry-exporter-zipkin1.62.0Javadocs
Prometheus ExporterPrometheus metric exporteropentelemetry-exporter-prometheus1.62.0-alphaJavadocs
Exporter CommonShared exporter components (internal)opentelemetry-exporter-common1.62.0Javadocs
OkHttp SenderOkHttp implementation of HttpSender (internal)opentelemetry-exporter-sender-okhttp1.62.0Javadocs
JDK SenderJava 11+ native HttpClient implementation of HttpSender (internal)opentelemetry-exporter-sender-jdk1.62.0Javadocs
gRPC ManagedChannel SendergRPC ManagedChannel implementation of GrpcSender (internal)opentelemetry-exporter-sender-grpc-managed-channel1.62.0Javadocs
SDK Extensions

Extensions to the OpenTelemetry SDK.

ComponentDescriptionArtifact IDVersionJavadoc
SDK AutoconfigureAutoconfigure OpenTelemetry SDK from env vars, system properties, and SPIopentelemetry-sdk-extension-autoconfigure1.62.0Javadocs
SDK Autoconfigure SPIService Provider Interface (SPI) definitions for autoconfigureopentelemetry-sdk-extension-autoconfigure-spi1.62.0Javadocs
SDK Declarative ConfigDeclarative config implementation for YAML-based SDK configurationopentelemetry-sdk-extension-declarative-config1.62.0-alphaJavadocs
SDK Jaeger Remote Sampler ExtensionSampler which obtains sampling configuration from remote Jaeger serveropentelemetry-sdk-extension-jaeger-remote-sampler1.62.0Javadocs
SDK IncubatorSDK incubator, including YAML based view configuration, LeakDetectingSpanProcessoropentelemetry-sdk-extension-incubator1.62.0-alphaJavadocs
Shims

Shims for bridging data from one observability library to another.

ComponentDescriptionArtifact IDVersionJavadoc
OpenCensus ShimBridge opencensus metrics into the OpenTelemetry metrics SDKopentelemetry-opencensus-shim1.62.0-alphaJavadocs
OpenTracing ShimBridge opentracing spans into the OpenTelemetry trace APIopentelemetry-opentracing-shim1.62.0Javadocs

Verifying Artifacts

All artifacts published to Maven Central are signed with GPG key 17A27CE7A60FF5F0 (fingerprint: 3F05 DDA9 F317 301E 9271 36D4 17A2 7CE7 A60F F5F0).

Dependencies

To take a dependency, include a BOM and specify the dependency as follows, replacing {{artifact-id}} with the value from the "Artifact ID" column from artifacts:

Gradle
  implementation('io.opentelemetry:{{artifact-id}}')
Maven
<dependency>
  <groupId>io.opentelemetry</groupId>
  <artifactId>{{artifact-id}}</artifactId>
</dependency>

Snapshots

Snapshots of the main branch are available as follows:

Gradle
repositories {
    maven { url 'https://central.sonatype.com/repository/maven-snapshots/' }
}

dependencies {
  implementation platform("io.opentelemetry:opentelemetry-bom:1.63.0-SNAPSHOT")
  implementation('io.opentelemetry:opentelemetry-api')
}
Maven
  <project>
    <repositories>
      <repository>
        <id>sonatype-snapshot-repository</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
      </repository>
    </repositories>
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>io.opentelemetry</groupId>
          <artifactId>opentelemetry-bom</artifactId>
          <version>1.63.0-SNAPSHOT</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-api</artifactId>
      </dependency>
    </dependencies>
  </project>

Compatibility

Artifacts from this repository follow semantic versioning.

Stable artifacts (i.e. artifacts without -alpha version suffix) come with strong backwards compatibility guarantees for public APIs.

Artifacts may depend on other artifacts from this repository, and may depend on internal APIs (i.e. non-public APIs) which are subject to change across minor versions. Therefore, it's critical to keep artifact versions in sync in order to avoid possible runtime exceptions. We strongly recommend using one of our BOMs to assist in keeping artifacts in sync.

See the VERSIONING.md for complete details on compatibility policy.

Contacting us

We hold regular meetings. See details at community page.

The meeting is open for all to join. We invite everyone to join our meeting, regardless of your experience level. Whether you're a seasoned OpenTelemetry developer, just starting your journey, or simply curious about the work we do, you're more than welcome to participate!

To report a bug, or request a new feature, please open an issue.

We use GitHub Discussions for support or general questions. Feel free to drop us a line.

We are also present in the #otel-java channel in the CNCF slack. Please join us for more informal discussions.

Contributing

See CONTRIBUTING.md for:

  • Details on building locally
  • Project scope
  • Keys to successful PRs
  • Guide to using gradle composite builds

Maintainers

For more information about the maintainer role, see the community repository.

Approvers

For more information about the approver role, see the community repository.

Triagers

None.

For more information about the triager role, see the community repository.

Emeritus

For more information about the emeritus role, see the community repository.

Help wanted

We are currently resource constrained and are actively seeking new contributors interested in working towards approver / maintainer roles. In addition to the documentation for approver / maintainer roles and the contributing guide, here are some additional notes on engaging:

  • Pull request reviews are equally or more helpful than code contributions. Comments and approvals are valuable with or without a formal project role. They're also a great forcing function to explore a fairly complex codebase.
  • Attending the Java: SDK + Automatic Instrumentation Special Interest Group (SIG) is a great way to get to know community members and learn about project priorities.
  • Issues labeled help wanted are project priorities. Code contributions (or pull request reviews when a PR is linked) for these issues are particularly important.
  • Triaging / responding to new issues and discussions is a great way to engage with the project.

Thanks to all of our contributors!

Repo contributors