opentelemetry-java-instrume.../instrumentation/okhttp/okhttp-3.0/library
Lauri Tulmin b0012b083b
okhttp: run our interceptor before other interceptors (#6997)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/6909
If our interceptor runs before other interceptors then other
interceptors replacing the request won't affect our interceptor.
2022-10-27 12:45:02 -07:00
..
src okhttp: run our interceptor before other interceptors (#6997) 2022-10-27 12:45:02 -07:00
README.md Library doc cleanup (#6948) 2022-10-24 10:26:21 -07:00
build.gradle.kts Add Android API-friendliness checks (#4505) 2021-11-24 12:59:11 -08:00

README.md

Library Instrumentation for OkHttp version 3.0 and higher

Provides OpenTelemetry instrumentation for okhttp3.

Quickstart

Add these dependencies to your project:

Replace OPENTELEMETRY_VERSION with the latest release.

For Maven, add to your pom.xml dependencies:

<dependencies>
  <dependency>
    <groupId>io.opentelemetry.instrumentation</groupId>
    <artifactId>opentelemetry-okhttp-3.0</artifactId>
    <version>OPENTELEMETRY_VERSION</version>
  </dependency>
</dependencies>

For Gradle, add to your dependencies:

implementation("io.opentelemetry.instrumentation:opentelemetry-okhttp-3.0:OPENTELEMETRY_VERSION")

Usage

The instrumentation library provides an OkHttp Call.Factory implementation that wraps an instance of the OkHttpClient to provide OpenTelemetry-based spans and context propagation.

import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.okhttp.v3_0.OkHttpTracing;
import okhttp3.Call;
import okhttp3.OkHttpClient;

import java.util.concurrent.ExecutorService;

public class OkHttpConfiguration {

  //Use this Call.Factory implementation for making standard http client calls.
  public Call.Factory createTracedClient(OpenTelemetry openTelemetry) {
    return OkHttpTracing.builder(openTelemetry).build().newCallFactory(createClient());
  }

  //your configuration of the OkHttpClient goes here:
  private OkHttpClient createClient() {
    return new OkHttpClient.Builder().build();
  }
}