Home

Awesome

OpenTelemetry Java

Continuous Build Coverage Status Maven Central 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:

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.

<details> <summary>Bill of Materials (BOMs)</summary>

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-bom<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->N/A
Alpha Bill of Materials (BOM)Bill of materials for alpha artifactsopentelemetry-bom-alpha<!--VERSION_UNSTABLE-->1.45.0-alpha<!--/VERSION_UNSTABLE-->N/A
</details> <details open> <summary>API</summary>

The OpenTelemetry API for recording telemetry.

ComponentDescriptionArtifact IDVersionJavadoc
APIOpenTelemetry API, including metrics, traces, baggage, contextopentelemetry-api<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
API IncubatorAPI incubator, including pass through propagator, and extended tracer, and Event APIopentelemetry-api-incubator<!--VERSION_UNSTABLE-->1.45.0-alpha<!--/VERSION_UNSTABLE-->Javadocs
Context APIOpenTelemetry context APIopentelemetry-context<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
</details> <details> <summary>API Extensions</summary>

Extensions to the OpenTelemetry API.

ComponentDescriptionArtifact IDVersionJavadoc
Kotlin ExtensionContext extension for coroutinesopentelemetry-extension-kotlin<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Trace Propagators ExtensionTrace propagators, including B3, Jaeger, OT Traceopentelemetry-extension-trace-propagators<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
</details> <details open> <summary>SDK</summary>

The OpenTelemetry SDK for managing telemetry producing by the API.

ComponentDescriptionArtifact IDVersionJavadoc
SDKOpenTelemetry SDK, including metrics, traces, and logsopentelemetry-sdk<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Metrics SDKOpenTelemetry metrics SDKopentelemetry-sdk-metrics<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Trace SDKOpenTelemetry trace SDKopentelemetry-sdk-trace<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Log SDKOpenTelemetry log SDKopentelemetry-sdk-logs<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
SDK CommonShared SDK componentsopentelemetry-sdk-common<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
SDK TestingComponents for testing OpenTelemetry instrumentationopentelemetry-sdk-testing<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
</details> <details> <summary>SDK Exporters</summary>

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

ComponentDescriptionArtifact IDVersionJavadoc
OTLP ExportersOTLP gRPC & HTTP exporters, including traces, metrics, and logsopentelemetry-exporter-otlp<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
OTLP Logging ExportersLogging exporters in OTLP JSON encoding, including traces, metrics, and logsopentelemetry-exporter-logging-otlp<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
OTLP CommonShared OTLP components (internal)opentelemetry-exporter-otlp-common<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Logging ExporterLogging exporters, including metrics, traces, and logsopentelemetry-exporter-logging<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Zipkin ExporterZipkin trace exporteropentelemetry-exporter-zipkin<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
Prometheus ExporterPrometheus metric exporteropentelemetry-exporter-prometheus<!--VERSION_UNSTABLE-->1.45.0-alpha<!--/VERSION_UNSTABLE-->Javadocs
Exporter CommonShared exporter components (internal)opentelemetry-exporter-common<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
OkHttp SenderOkHttp implementation of HttpSender (internal)opentelemetry-exporter-sender-okhttp<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
JDK SenderJava 11+ native HttpClient implementation of HttpSender (internal)opentelemetry-exporter-sender-jdk<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
gRPC ManagedChannel SendergRPC ManagedChannel implementation of GrpcSender (internal)opentelemetry-exporter-sender-grpc-managed-channel<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
</details> <details> <summary>SDK Extensions</summary>

Extensions to the OpenTelemetry SDK.

ComponentDescriptionArtifact IDVersionJavadoc
SDK AutoconfigureAutoconfigure OpenTelemetry SDK from env vars, system properties, and SPIopentelemetry-sdk-extension-autoconfigure<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
SDK Autoconfigure SPIService Provider Interface (SPI) definitions for autoconfigureopentelemetry-sdk-extension-autoconfigure-spi<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
SDK Jaeger Remote Sampler ExtensionSampler which obtains sampling configuration from remote Jaeger serveropentelemetry-sdk-extension-jaeger-remote-sampler<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
SDK IncubatorSDK incubator, including YAML based view configuration, LeakDetectingSpanProcessoropentelemetry-sdk-extension-incubator<!--VERSION_UNSTABLE-->1.45.0-alpha<!--/VERSION_UNSTABLE-->Javadocs
</details> <details> <summary>Shims</summary>

Shims for bridging data from one observability library to another.

ComponentDescriptionArtifact IDVersionJavadoc
OpenCensus ShimBridge opencensus metrics into the OpenTelemetry metrics SDKopentelemetry-opencensus-shim<!--VERSION_UNSTABLE-->1.45.0-alpha<!--/VERSION_UNSTABLE-->Javadocs
OpenTracing ShimBridge opentracing spans into the OpenTelemetry trace APIopentelemetry-opentracing-shim<!--VERSION_STABLE-->1.45.0<!--/VERSION_STABLE-->Javadocs
</details>

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:

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

Snapshots

Snapshots of the main branch are available as follows:

<details open> <summary>Gradle</summary>
repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}

dependencies {
  implementation platform("io.opentelemetry:opentelemetry-bom:1.46.0-SNAPSHOT")
  implementation('io.opentelemetry:opentelemetry-api')
}
</details> <details> <summary>Maven</summary>
  <project>
    <repositories>
      <repository>
        <id>oss.sonatype.org-snapshot</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      </repository>
    </repositories>
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>io.opentelemetry</groupId>
          <artifactId>opentelemetry-bom</artifactId>
          <version>1.46.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>
</details>

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.

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:

Code owners

Triagers:

Find more about the triager role in community repository.

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

Find more about the approver role in community repository.

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

Emeritus:

Find more about the maintainer role in community repository.

Thanks to all the people who have contributed

<a href="https://github.com/open-telemetry/opentelemetry-java/graphs/contributors"> <img src="https://contrib.rocks/image?repo=open-telemetry/opentelemetry-java" /> </a>

Made with contrib.rocks.