mirror of https://github.com/dapr/java-sdk.git
open telemetry upgrade to 0.10.0 (#386)
* open telemetry upgrade to 0.10.0 * open telemetry upgrade to 0.10.0 * open telemetry upgrade to 0.10.0 * open telemetry upgrade to 0.10.0 * open telemetry upgrade to 0.10.0 Co-authored-by: haidao <wlf190783@alibaba-inc.com>
This commit is contained in:
parent
43107c3492
commit
9dcff43ef0
|
@ -24,6 +24,7 @@
|
||||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||||
<maven.deploy.skip>true</maven.deploy.skip>
|
<maven.deploy.skip>true</maven.deploy.skip>
|
||||||
<spotbugs.fail>false</spotbugs.fail>
|
<spotbugs.fail>false</spotbugs.fail>
|
||||||
|
<opentelemetry.version>0.10.0</opentelemetry.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -76,17 +77,17 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.opentelemetry</groupId>
|
<groupId>io.opentelemetry</groupId>
|
||||||
<artifactId>opentelemetry-sdk</artifactId>
|
<artifactId>opentelemetry-sdk</artifactId>
|
||||||
<version>0.7.1</version>
|
<version>${opentelemetry.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.opentelemetry</groupId>
|
<groupId>io.opentelemetry</groupId>
|
||||||
<artifactId>opentelemetry-exporters-logging</artifactId>
|
<artifactId>opentelemetry-exporter-logging</artifactId>
|
||||||
<version>0.7.1</version>
|
<version>${opentelemetry.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.opentelemetry</groupId>
|
<groupId>io.opentelemetry</groupId>
|
||||||
<artifactId>opentelemetry-exporters-zipkin</artifactId>
|
<artifactId>opentelemetry-exporter-zipkin</artifactId>
|
||||||
<version>0.7.1</version>
|
<version>${opentelemetry.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.dapr</groupId>
|
<groupId>io.dapr</groupId>
|
||||||
|
|
|
@ -12,11 +12,11 @@ import io.dapr.client.domain.InvokeServiceRequest;
|
||||||
import io.dapr.client.domain.InvokeServiceRequestBuilder;
|
import io.dapr.client.domain.InvokeServiceRequestBuilder;
|
||||||
import io.dapr.springboot.OpenTelemetryConfig;
|
import io.dapr.springboot.OpenTelemetryConfig;
|
||||||
import io.dapr.utils.TypeRef;
|
import io.dapr.utils.TypeRef;
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.api.trace.Span;
|
||||||
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
import io.opentelemetry.trace.Span;
|
|
||||||
import io.opentelemetry.trace.Tracer;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ public class InvokeClient {
|
||||||
Span span = tracer.spanBuilder("Example's Main").setSpanKind(Span.Kind.CLIENT).startSpan();
|
Span span = tracer.spanBuilder("Example's Main").setSpanKind(Span.Kind.CLIENT).startSpan();
|
||||||
try (DaprClient client = (new DaprClientBuilder()).build()) {
|
try (DaprClient client = (new DaprClientBuilder()).build()) {
|
||||||
for (String message : args) {
|
for (String message : args) {
|
||||||
try (Scope scope = tracer.withSpan(span)) {
|
try (Scope scope = span.makeCurrent()) {
|
||||||
InvokeServiceRequestBuilder builder = new InvokeServiceRequestBuilder(SERVICE_APP_ID, "echo");
|
InvokeServiceRequestBuilder builder = new InvokeServiceRequestBuilder(SERVICE_APP_ID, "echo");
|
||||||
InvokeServiceRequest request
|
InvokeServiceRequest request
|
||||||
= builder.withBody(message).withHttpExtension(HttpExtension.POST).withContext(Context.current()).build();
|
= builder.withBody(message).withHttpExtension(HttpExtension.POST).withContext(Context.current()).build();
|
||||||
|
@ -73,7 +73,7 @@ public class InvokeClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void shutdown() {
|
private static void shutdown() {
|
||||||
OpenTelemetrySdk.getTracerProvider().shutdown();
|
OpenTelemetrySdk.getGlobalTracerManagement().shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,7 +175,7 @@ private static final String SERVICE_APP_ID = "invokedemo";
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The class knows the app id for the remote application. It uses `invokeService` method to invoke API calls on the service endpoint. The request object includes an instance of `io.grpc.Context` for the proper tracing headers to be propagated.
|
The class knows the app id for the remote application. It uses `invokeService` method to invoke API calls on the service endpoint. The request object includes an instance of `io.opentelemetry.context.Context` for the proper tracing headers to be propagated.
|
||||||
|
|
||||||
Execute the follow script in order to run the InvokeClient example, passing two messages for the remote method:
|
Execute the follow script in order to run the InvokeClient example, passing two messages for the remote method:
|
||||||
```sh
|
```sh
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
package io.dapr.examples.tracing;
|
package io.dapr.examples.tracing;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
|
@ -6,12 +6,14 @@
|
||||||
package io.dapr.springboot;
|
package io.dapr.springboot;
|
||||||
|
|
||||||
import io.dapr.examples.invoke.http.InvokeClient;
|
import io.dapr.examples.invoke.http.InvokeClient;
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.exporters.logging.LoggingSpanExporter;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.exporters.zipkin.ZipkinSpanExporter;
|
import io.opentelemetry.api.trace.propagation.HttpTraceContext;
|
||||||
|
import io.opentelemetry.context.propagation.DefaultContextPropagators;
|
||||||
|
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
|
||||||
|
import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
||||||
import io.opentelemetry.trace.Tracer;
|
|
||||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
|
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
|
||||||
|
@ -40,27 +42,31 @@ public class OpenTelemetryConfig {
|
||||||
* @return New tracer's instance.
|
* @return New tracer's instance.
|
||||||
*/
|
*/
|
||||||
public static Tracer createTracer(String instrumentationName) {
|
public static Tracer createTracer(String instrumentationName) {
|
||||||
final Tracer tracer = OpenTelemetry.getTracer(instrumentationName);
|
OpenTelemetry.setGlobalPropagators(
|
||||||
|
DefaultContextPropagators.builder()
|
||||||
|
.addTextMapPropagator(HttpTraceContext.getInstance())
|
||||||
|
.build());
|
||||||
|
final Tracer tracer = OpenTelemetry.getGlobalTracer(instrumentationName);
|
||||||
|
|
||||||
// Only exports to Zipkin if it is up. Otherwise, ignore it.
|
// Only exports to Zipkin if it is up. Otherwise, ignore it.
|
||||||
// This is helpful to avoid exceptions for examples that do not require Zipkin.
|
// This is helpful to avoid exceptions for examples that do not require Zipkin.
|
||||||
if (isZipkinUp()) {
|
if (isZipkinUp()) {
|
||||||
String httpUrl = String.format("http://localhost:%d", ZIPKIN_PORT);
|
String httpUrl = String.format("http://localhost:%d", ZIPKIN_PORT);
|
||||||
ZipkinSpanExporter zipkinExporter =
|
ZipkinSpanExporter zipkinExporter =
|
||||||
ZipkinSpanExporter.newBuilder()
|
ZipkinSpanExporter.builder()
|
||||||
.setEndpoint(httpUrl + ENDPOINT_V2_SPANS)
|
.setEndpoint(httpUrl + ENDPOINT_V2_SPANS)
|
||||||
.setServiceName(InvokeClient.class.getName())
|
.setServiceName(InvokeClient.class.getName())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
OpenTelemetrySdk.getTracerProvider()
|
OpenTelemetrySdk.getGlobalTracerManagement()
|
||||||
.addSpanProcessor(SimpleSpanProcessor.newBuilder(zipkinExporter).build());
|
.addSpanProcessor(SimpleSpanProcessor.builder(zipkinExporter).build());
|
||||||
} else {
|
} else {
|
||||||
System.out.println("WARNING: Zipkin is not available.");
|
System.out.println("WARNING: Zipkin is not available.");
|
||||||
}
|
}
|
||||||
|
|
||||||
final LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
|
final LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
|
||||||
OpenTelemetrySdk.getTracerProvider()
|
OpenTelemetrySdk.getGlobalTracerManagement()
|
||||||
.addSpanProcessor(SimpleSpanProcessor.newBuilder(loggingExporter).build());
|
.addSpanProcessor(SimpleSpanProcessor.builder(loggingExporter).build());
|
||||||
|
|
||||||
return tracer;
|
return tracer;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,12 @@
|
||||||
|
|
||||||
package io.dapr.springboot;
|
package io.dapr.springboot;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.context.propagation.HttpTextFormat;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.trace.Span;
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
@ -18,17 +19,30 @@ import org.springframework.web.servlet.ModelAndView;
|
||||||
import javax.servlet.DispatcherType;
|
import javax.servlet.DispatcherType;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class OpenTelemetryInterceptor implements HandlerInterceptor {
|
public class OpenTelemetryInterceptor implements HandlerInterceptor {
|
||||||
|
private static final TextMapPropagator.Getter<HttpServletRequest> HTTP_SERVLET_REQUEST_GETTER =
|
||||||
|
new TextMapPropagator.Getter<>() {
|
||||||
|
@Override
|
||||||
|
public Iterable<String> keys(HttpServletRequest carrier) {
|
||||||
|
return Collections.list(carrier.getHeaderNames());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public String get(@Nullable HttpServletRequest carrier, String key) {
|
||||||
|
return carrier.getHeader(key);
|
||||||
|
}
|
||||||
|
};
|
||||||
@Autowired
|
@Autowired
|
||||||
Tracer tracer;
|
Tracer tracer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(
|
public boolean preHandle(
|
||||||
HttpServletRequest request, HttpServletResponse response, Object handler) {
|
HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||||
final HttpTextFormat textFormat = OpenTelemetry.getPropagators().getHttpTextFormat();
|
final TextMapPropagator textFormat = OpenTelemetry.getGlobalPropagators().getTextMapPropagator();
|
||||||
// preHandle is called twice for asynchronous request. For more information, read:
|
// preHandle is called twice for asynchronous request. For more information, read:
|
||||||
// https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/AsyncHandlerInterceptor.html
|
// https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/AsyncHandlerInterceptor.html
|
||||||
if (request.getDispatcherType() == DispatcherType.ASYNC) {
|
if (request.getDispatcherType() == DispatcherType.ASYNC) {
|
||||||
|
@ -37,15 +51,7 @@ public class OpenTelemetryInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
Span span;
|
Span span;
|
||||||
try {
|
try {
|
||||||
Context context = textFormat.extract(
|
Context context = textFormat.extract(Context.current(), request, HTTP_SERVLET_REQUEST_GETTER);
|
||||||
Context.current(),
|
|
||||||
request,
|
|
||||||
new HttpTextFormat.Getter<HttpServletRequest>() {
|
|
||||||
@Override
|
|
||||||
public String get(HttpServletRequest req, String key) {
|
|
||||||
return req.getHeader(key);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
request.setAttribute("opentelemetry-context", context);
|
request.setAttribute("opentelemetry-context", context);
|
||||||
span = tracer.spanBuilder(request.getRequestURI()).setParent(context).startSpan();
|
span = tracer.spanBuilder(request.getRequestURI()).setParent(context).startSpan();
|
||||||
span.setAttribute("handler", "pre");
|
span.setAttribute("handler", "pre");
|
||||||
|
@ -77,14 +83,8 @@ public class OpenTelemetryInterceptor implements HandlerInterceptor {
|
||||||
Context context = (Context) contextObject;
|
Context context = (Context) contextObject;
|
||||||
Span span = (Span) spanObject;
|
Span span = (Span) spanObject;
|
||||||
span.setAttribute("handler", "afterCompletion");
|
span.setAttribute("handler", "afterCompletion");
|
||||||
final HttpTextFormat textFormat = OpenTelemetry.getPropagators().getHttpTextFormat();
|
final TextMapPropagator textFormat = OpenTelemetry.getGlobalPropagators().getTextMapPropagator();
|
||||||
textFormat.inject(context, response,
|
textFormat.inject(context, response, HttpServletResponse::addHeader);
|
||||||
new HttpTextFormat.Setter<HttpServletResponse>() {
|
|
||||||
@Override
|
|
||||||
public void set(HttpServletResponse response, String key, String value) {
|
|
||||||
response.addHeader(key, value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
span.end();
|
span.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.opentelemetry</groupId>
|
<groupId>io.opentelemetry</groupId>
|
||||||
<artifactId>opentelemetry-api</artifactId>
|
<artifactId>opentelemetry-api</artifactId>
|
||||||
<version>0.7.1</version>
|
<version>0.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.opencensus</groupId>
|
<groupId>io.opencensus</groupId>
|
||||||
|
|
|
@ -34,7 +34,6 @@ import io.grpc.CallOptions;
|
||||||
import io.grpc.Channel;
|
import io.grpc.Channel;
|
||||||
import io.grpc.ClientCall;
|
import io.grpc.ClientCall;
|
||||||
import io.grpc.ClientInterceptor;
|
import io.grpc.ClientInterceptor;
|
||||||
import io.grpc.Context;
|
|
||||||
import io.grpc.ForwardingClientCall;
|
import io.grpc.ForwardingClientCall;
|
||||||
import io.grpc.Metadata;
|
import io.grpc.Metadata;
|
||||||
import io.grpc.Metadata.Key;
|
import io.grpc.Metadata.Key;
|
||||||
|
@ -45,8 +44,9 @@ import io.opencensus.trace.SpanContext;
|
||||||
import io.opencensus.trace.propagation.BinaryFormat;
|
import io.opencensus.trace.propagation.BinaryFormat;
|
||||||
import io.opencensus.trace.propagation.SpanContextParseException;
|
import io.opencensus.trace.propagation.SpanContextParseException;
|
||||||
import io.opencensus.trace.propagation.TextFormat;
|
import io.opencensus.trace.propagation.TextFormat;
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.context.propagation.HttpTextFormat;
|
import io.opentelemetry.context.Context;
|
||||||
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
|
@ -66,6 +66,13 @@ import java.util.stream.Collectors;
|
||||||
*/
|
*/
|
||||||
public class DaprClientGrpc extends AbstractDaprClient {
|
public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
|
|
||||||
|
private static final TextMapPropagator.Setter<Map<String, String>> MAP_SETTER =
|
||||||
|
(mapper, key, value) -> {
|
||||||
|
if (mapper != null) {
|
||||||
|
mapper.put(key, value);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Binary formatter to generate grpc-trace-bin.
|
* Binary formatter to generate grpc-trace-bin.
|
||||||
*/
|
*/
|
||||||
|
@ -154,6 +161,7 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public <T> Mono<Response<T>> invokeService(InvokeServiceRequest invokeServiceRequest, TypeRef<T> type) {
|
public <T> Mono<Response<T>> invokeService(InvokeServiceRequest invokeServiceRequest, TypeRef<T> type) {
|
||||||
try {
|
try {
|
||||||
String appId = invokeServiceRequest.getAppId();
|
String appId = invokeServiceRequest.getAppId();
|
||||||
|
@ -629,18 +637,8 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
*/
|
*/
|
||||||
private static SpanContext extractOpenCensusSpanContext(Context openTelemetryContext) {
|
private static SpanContext extractOpenCensusSpanContext(Context openTelemetryContext) {
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
|
OpenTelemetry.getGlobalPropagators().getTextMapPropagator().inject(
|
||||||
OpenTelemetry.getPropagators().getHttpTextFormat().inject(
|
openTelemetryContext, map, MAP_SETTER);
|
||||||
openTelemetryContext,
|
|
||||||
map,
|
|
||||||
new HttpTextFormat.Setter<Map<String, String>>() {
|
|
||||||
@Override
|
|
||||||
public void set(Map<String, String> map, String key, String value) {
|
|
||||||
if (map != null) {
|
|
||||||
map.put(key, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!map.containsKey("traceparent")) {
|
if (!map.containsKey("traceparent")) {
|
||||||
// Trying to extract context without this key will throw an "expected" exception, so we avoid it here.
|
// Trying to extract context without this key will throw an "expected" exception, so we avoid it here.
|
||||||
|
|
|
@ -26,7 +26,7 @@ import io.dapr.config.Properties;
|
||||||
import io.dapr.serializer.DaprObjectSerializer;
|
import io.dapr.serializer.DaprObjectSerializer;
|
||||||
import io.dapr.serializer.DefaultObjectSerializer;
|
import io.dapr.serializer.DefaultObjectSerializer;
|
||||||
import io.dapr.utils.TypeRef;
|
import io.dapr.utils.TypeRef;
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -9,9 +9,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.dapr.config.Properties;
|
import io.dapr.config.Properties;
|
||||||
import io.dapr.exceptions.DaprError;
|
import io.dapr.exceptions.DaprError;
|
||||||
import io.dapr.exceptions.DaprException;
|
import io.dapr.exceptions.DaprException;
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.api.trace.propagation.HttpTraceContext;
|
||||||
import io.opentelemetry.context.propagation.HttpTextFormat;
|
import io.opentelemetry.context.Context;
|
||||||
|
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
import okhttp3.MediaType;
|
import okhttp3.MediaType;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
|
@ -51,13 +52,8 @@ public class DaprHttp implements Closeable {
|
||||||
/**
|
/**
|
||||||
* Sets the headers for OpenTelemetry SDK.
|
* Sets the headers for OpenTelemetry SDK.
|
||||||
*/
|
*/
|
||||||
private static final HttpTextFormat.Setter<Request.Builder> OPENTELEMETRY_SETTER =
|
private static final HttpTraceContext.Setter<Request.Builder> OPENTELEMETRY_SETTER =
|
||||||
new HttpTextFormat.Setter<Request.Builder>() {
|
(requestBuilder, key, value) -> requestBuilder.addHeader(key, value);
|
||||||
@Override
|
|
||||||
public void set(Request.Builder requestBuilder, String key, String value) {
|
|
||||||
requestBuilder.addHeader(key, value);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTTP Methods supported.
|
* HTTP Methods supported.
|
||||||
|
@ -270,7 +266,7 @@ public class DaprHttp implements Closeable {
|
||||||
.url(urlBuilder.build())
|
.url(urlBuilder.build())
|
||||||
.addHeader(HEADER_DAPR_REQUEST_ID, requestId);
|
.addHeader(HEADER_DAPR_REQUEST_ID, requestId);
|
||||||
if (context != null) {
|
if (context != null) {
|
||||||
OpenTelemetry.getPropagators().getHttpTextFormat().inject(context, requestBuilder, OPENTELEMETRY_SETTER);
|
OpenTelemetry.getGlobalPropagators().getTextMapPropagator().inject(context, requestBuilder, OPENTELEMETRY_SETTER);
|
||||||
}
|
}
|
||||||
if (HttpMethods.GET.name().equals(method)) {
|
if (HttpMethods.GET.name().equals(method)) {
|
||||||
requestBuilder.get();
|
requestBuilder.get();
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Dapr Response.
|
* A Dapr Response.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client.domain;
|
package io.dapr.client.domain;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.dapr.client;
|
package io.dapr.client;
|
||||||
|
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -6,7 +6,7 @@ package io.dapr.client;
|
||||||
|
|
||||||
import io.dapr.config.Properties;
|
import io.dapr.config.Properties;
|
||||||
import io.dapr.exceptions.DaprException;
|
import io.dapr.exceptions.DaprException;
|
||||||
import io.grpc.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import okhttp3.MediaType;
|
import okhttp3.MediaType;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
|
|
Loading…
Reference in New Issue