Java

Java A language-specific implementation of OpenTelemetry in Java.

This is the OpenTelemetry Java documentation. OpenTelemetry is an observability framework – an API, SDK, and tools that are designed to aid in the generation and collection of application telemetry data such as metrics, logs, and traces. This documentation is designed to help you understand how to get started using OpenTelemetry Java.

Status and Releases

The current status of the major functional components for OpenTelemetry Java is as follows:

TracesMetricsLogs
StableStableExperimental

For releases, including the latest release, see Releases.

Repositories

OpenTelemetry Java consists of the following repositories:

  • opentelemetry-java: Components for manual instrumentation including API and SDK as well as extensions, the OpenTracing shim.
  • opentelemetry-java-docs: Manual instrumentation 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.

Components

See components for a complete list of published components.

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.19.0</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.19.0"))
  implementation("io.opentelemetry:opentelemetry-api")
}

Getting Started

Get telemetry from a client-server app in less than 5 minutes!

Automatic Instrumentation

Manual Instrumentation

Examples

Java instrumentation examples

Extensions

Extensions add capabilities to the agent without having to create a separate distribution.

API reference