diff --git a/java/client/src/org/openqa/selenium/remote/BUILD.bazel b/java/client/src/org/openqa/selenium/remote/BUILD.bazel index 4065c81c26fd5..c5e39becc698f 100644 --- a/java/client/src/org/openqa/selenium/remote/BUILD.bazel +++ b/java/client/src/org/openqa/selenium/remote/BUILD.bazel @@ -55,6 +55,7 @@ java_export( "BaseAugmenter.java", "InterfaceImplementation.java", "JdkAugmenter.java", + "RemoteTags.java", "html5/AddApplicationCache.java", "html5/AddLocationContext.java", "html5/AddWebStorage.java", @@ -65,7 +66,7 @@ java_export( "org.openqa.selenium.remote.internal", ], uses = [ - "io.opentracing.Tracer", + "io.opentelemetry.trace.Tracer", "org.openqa.selenium.remote.session.CapabilitiesFilter", "org.openqa.selenium.remote.session.CapabilityTransform", "org.openqa.selenium.remote.service.DriverService$Builder", @@ -92,8 +93,9 @@ java_export( "//java/client/src/org/openqa/selenium/os", "//java/client/src/org/openqa/selenium/remote/http/netty", "//java/client/src/org/openqa/selenium/remote/http/okhttp", - artifact("net.bytebuddy:byte-buddy"), artifact("com.google.guava:guava"), + artifact("io.opentelemetry:opentelemetry-api"), + artifact("net.bytebuddy:byte-buddy"), ], ) diff --git a/java/client/src/org/openqa/selenium/remote/RemoteTags.java b/java/client/src/org/openqa/selenium/remote/RemoteTags.java new file mode 100644 index 0000000000000..6bab305d5a7f6 --- /dev/null +++ b/java/client/src/org/openqa/selenium/remote/RemoteTags.java @@ -0,0 +1,22 @@ +package org.openqa.selenium.remote; + +import io.opentelemetry.trace.Span; +import org.openqa.selenium.Capabilities; + +import java.util.function.BiConsumer; + +public class RemoteTags { + + private RemoteTags() { + // Utility class + } + + public static BiConsumer CAPABILITIES = (span, caps) -> { + span.setAttribute("session.capabilities", String.valueOf(caps)); + }; + + public static BiConsumer SESSION_ID = (span, id) -> { + span.setAttribute("session.id", String.valueOf(id)); + }; + +} diff --git a/java/client/src/org/openqa/selenium/remote/tracing/BUILD.bazel b/java/client/src/org/openqa/selenium/remote/tracing/BUILD.bazel index 46e6f58d81c12..654742955e82c 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/BUILD.bazel +++ b/java/client/src/org/openqa/selenium/remote/tracing/BUILD.bazel @@ -10,10 +10,10 @@ java_library( exports = [ # Exposed by tracing APIs "//java/client/src/org/openqa/selenium/remote/http", - artifact("io.opentracing:opentracing-api"), + artifact("io.opentelemetry:opentelemetry-api"), ], deps = [ "//java/client/src/org/openqa/selenium/remote/http", - artifact("io.opentracing:opentracing-api"), + artifact("io.opentelemetry:opentelemetry-api"), ], ) diff --git a/java/client/src/org/openqa/selenium/remote/tracing/HttpTags.java b/java/client/src/org/openqa/selenium/remote/tracing/HttpTags.java new file mode 100644 index 0000000000000..6a5ceeecbfbed --- /dev/null +++ b/java/client/src/org/openqa/selenium/remote/tracing/HttpTags.java @@ -0,0 +1,24 @@ +package org.openqa.selenium.remote.tracing; + +import io.opentelemetry.trace.Span; +import org.openqa.selenium.remote.http.HttpRequest; +import org.openqa.selenium.remote.http.HttpResponse; + +import java.util.function.BiConsumer; + +public class HttpTags { + + private HttpTags() { + // Utility class + } + + public static BiConsumer HTTP_REQUEST = (span, req) -> { + span.setAttribute("http.method", req.getMethod().toString()); + span.setAttribute("http.url", req.getUri()); + }; + + public static BiConsumer HTTP_RESPONSE = (span, res) -> { + span.setAttribute("http.status_code", res.getStatus()); + }; + +} diff --git a/java/client/src/org/openqa/selenium/remote/tracing/HttpTracing.java b/java/client/src/org/openqa/selenium/remote/tracing/HttpTracing.java index c574c97b3ade4..ecaa257e21637 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/HttpTracing.java +++ b/java/client/src/org/openqa/selenium/remote/tracing/HttpTracing.java @@ -17,33 +17,59 @@ package org.openqa.selenium.remote.tracing; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.propagation.Format; -import io.opentracing.propagation.TextMap; -import io.opentracing.tag.Tags; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.SpanContext; +import io.opentelemetry.trace.SpanId; +import io.opentelemetry.trace.TraceFlags; +import io.opentelemetry.trace.TraceId; +import io.opentelemetry.trace.Tracer; +import io.opentelemetry.trace.Tracestate; import org.openqa.selenium.remote.http.HttpRequest; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; import java.util.Objects; import java.util.logging.Logger; public class HttpTracing { private static final Logger LOG = Logger.getLogger(HttpTracing.class.getName()); + private static final SpanContext NO_OP_CONTEXT = SpanContext.create( + TraceId.getInvalid(), + SpanId.getInvalid(), + TraceFlags.getDefault(), + Tracestate.getDefault()); private HttpTracing() { // Utility classes } - public static SpanContext extract(Tracer tracer, HttpRequest request) { + private static SpanContext extract(Tracer tracer, HttpRequest request) { Objects.requireNonNull(tracer, "Tracer to use must be set."); Objects.requireNonNull(request, "Request must be set."); - return tracer.extract(Format.Builtin.HTTP_HEADERS, new HttpRequestAdapter(request)); + if (tracer.getHttpTextFormat().fields().stream() + .map(field -> request.getHeader(field) != null) + .reduce(false, Boolean::logicalAnd)) { + return tracer.getHttpTextFormat().extract(request, (req, key) -> req.getHeader(key)); + } + return NO_OP_CONTEXT; + } + + public static Span.Builder newSpanAsChildOf(Tracer tracer, HttpRequest request, String name) { + Objects.requireNonNull(tracer, "Tracer to use must be set."); + Objects.requireNonNull(request, "Request must be set."); + Objects.requireNonNull(name, "Name to use must be set."); + + SpanContext parent = extract(tracer, request); + + Span.Builder builder = tracer.spanBuilder(name); + if (parent != null) { + builder.setParent(parent); + } else { + // This should never happen, but you never know, right? + builder.setNoParent(); + } + + return builder; } public static void inject(Tracer tracer, Span span, HttpRequest request) { @@ -58,42 +84,8 @@ public static void inject(Tracer tracer, Span span, HttpRequest request) { StackTraceElement caller = Thread.currentThread().getStackTrace()[2]; LOG.fine(String.format("Injecting %s into %s at %s:%d", request, span, caller.getClassName(), caller.getLineNumber())); - span.setTag(Tags.HTTP_METHOD.getKey(), request.getMethod().toString()); - span.setTag(Tags.HTTP_URL.getKey(), request.getUri()); - - tracer.inject(span.context(), Format.Builtin.HTTP_HEADERS, new HttpRequestAdapter(request)); - } - - private static class HttpRequestAdapter implements TextMap { - - private final HttpRequest request; - - public HttpRequestAdapter(HttpRequest request) { - this.request = Objects.requireNonNull(request, "Request to use must be set."); - } - - @Override - public void put(String key, String value) { - Objects.requireNonNull(key, "Key to use must be set."); - Objects.requireNonNull(value, "Value to use must be set."); - request.setHeader(key, value); - } - - @Override - public Iterator> iterator() { - return asMap(request).entrySet().iterator(); - } - - private static Map asMap(HttpRequest request) { - Map entries = new LinkedHashMap<>(); - request.getHeaderNames().forEach(name -> - request.getHeaders(name).forEach(value -> { - if (value != null) { - entries.put(name, value); - } - }) - ); - return entries; - } + span.setAttribute("http.method", request.getMethod().toString()); + span.setAttribute("http.url", request.getUri()); + tracer.getHttpTextFormat().inject(span.getContext(), request, (req, key, value) -> req.setHeader(key, value)); } } diff --git a/java/client/src/org/openqa/selenium/remote/tracing/SpanDecorator.java b/java/client/src/org/openqa/selenium/remote/tracing/SpanDecorator.java index b314ef240c6ca..ea8e0385d28f0 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/SpanDecorator.java +++ b/java/client/src/org/openqa/selenium/remote/tracing/SpanDecorator.java @@ -17,7 +17,7 @@ package org.openqa.selenium.remote.tracing; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.remote.http.Filter; import org.openqa.selenium.remote.http.HttpHandler; import org.openqa.selenium.remote.http.HttpRequest; diff --git a/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedHttpHandler.java b/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedHttpHandler.java index 7d02fd5958c71..f3eaf056a30e0 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedHttpHandler.java +++ b/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedHttpHandler.java @@ -17,10 +17,10 @@ package org.openqa.selenium.remote.tracing; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.tag.Tags; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Status; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.remote.http.HttpHandler; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; @@ -28,8 +28,14 @@ import java.io.UncheckedIOException; import java.util.Objects; import java.util.function.Function; +import java.util.logging.Level; import java.util.logging.Logger; +import static io.opentelemetry.trace.Span.Kind.SERVER; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_REQUEST; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_RESPONSE; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; + public class SpanWrappedHttpHandler implements HttpHandler { private static final Logger LOG = Logger.getLogger(SpanWrappedHttpHandler.class.getName()); @@ -47,28 +53,23 @@ public SpanWrappedHttpHandler(Tracer tracer, Function namer public HttpResponse execute(HttpRequest req) throws UncheckedIOException { String name = Objects.requireNonNull(namer.apply(req), "Operation name must be set for " + req); - Span previousSpan = tracer.scopeManager().activeSpan(); - SpanContext context = HttpTracing.extract(tracer, req); - Span span = tracer.buildSpan(name).asChildOf(context).ignoreActiveSpan().start(); - tracer.scopeManager().activate(span); + Span span = newSpanAsChildOf(tracer, req, name).setSpanKind(SERVER).startSpan(); - try { - span.setTag(Tags.SPAN_KIND, Tags.SPAN_KIND_SERVER) - .setTag(Tags.HTTP_METHOD, req.getMethod().toString()) - .setTag(Tags.HTTP_URL, req.getUri()); + try (Scope scope = tracer.withSpan(span)) { + HTTP_REQUEST.accept(span, req); HttpTracing.inject(tracer, span, req); HttpResponse res = delegate.execute(req); - span.setTag(Tags.HTTP_STATUS, res.getStatus()); + HTTP_RESPONSE.accept(span, res); return res; } catch (Throwable t) { - span.setTag(Tags.ERROR, true); + span.setStatus(Status.UNKNOWN.withDescription(t.getMessage())); + LOG.log(Level.WARNING, "Unable to execute request: " + t.getMessage(), t); throw t; } finally { - span.finish(); - tracer.scopeManager().activate(previousSpan); + span.end(); } } } diff --git a/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedRoutable.java b/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedRoutable.java index d49b8dfe4eedd..b3d6e7a4067b6 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedRoutable.java +++ b/java/client/src/org/openqa/selenium/remote/tracing/SpanWrappedRoutable.java @@ -17,7 +17,7 @@ package org.openqa.selenium.remote.tracing; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.Routable; diff --git a/java/client/src/org/openqa/selenium/remote/tracing/TracedCallable.java b/java/client/src/org/openqa/selenium/remote/tracing/TracedCallable.java index 27bfe560cba05..150801d68e731 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/TracedCallable.java +++ b/java/client/src/org/openqa/selenium/remote/tracing/TracedCallable.java @@ -17,8 +17,9 @@ package org.openqa.selenium.remote.tracing; -import io.opentracing.Span; -import io.opentracing.Tracer; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import java.util.concurrent.Callable; @@ -36,12 +37,8 @@ public TracedCallable(Tracer tracer, Span span, Callable delegate) { @Override public T call() throws Exception { - Span previousSpan = tracer.scopeManager().activeSpan(); - tracer.scopeManager().activate(this.span); - try { + try (Scope scope = tracer.withSpan(span)) { return delegate.call(); - } finally { - tracer.scopeManager().activate(previousSpan); } } } diff --git a/java/client/src/org/openqa/selenium/remote/tracing/TracedHttpClient.java b/java/client/src/org/openqa/selenium/remote/tracing/TracedHttpClient.java index ccd777dc5f324..c16c4770d6ce0 100644 --- a/java/client/src/org/openqa/selenium/remote/tracing/TracedHttpClient.java +++ b/java/client/src/org/openqa/selenium/remote/tracing/TracedHttpClient.java @@ -17,7 +17,7 @@ package org.openqa.selenium.remote.tracing; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.remote.http.ClientConfig; import org.openqa.selenium.remote.http.HttpClient; import org.openqa.selenium.remote.http.HttpRequest; diff --git a/java/maven_deps.bzl b/java/maven_deps.bzl index aa531903ae04d..1fc66485fa55a 100644 --- a/java/maven_deps.bzl +++ b/java/maven_deps.bzl @@ -24,11 +24,10 @@ def selenium_java_deps(): "io.netty:netty-handler:%s" % netty_version, "io.netty:netty-transport:%s" % netty_version, "io.opentelemetry:opentelemetry-api:0.2.0", - "io.opentelemetry:opentelemetry-exporters-logging:0.2.0", "io.opentelemetry:opentelemetry-exporters-inmemory:0.2.0", - "io.opentracing:opentracing-api:0.33.0", - "io.opentracing:opentracing-noop:0.33.0", - "io.opentracing.contrib:opentracing-tracerresolver:0.1.8", + "io.opentelemetry:opentelemetry-exporters-jaeger:0.2.0", + "io.opentelemetry:opentelemetry-exporters-logging:0.2.0", + "io.opentelemetry:opentelemetry-sdk:0.2.0", "it.ozimov:embedded-redis:0.7.2", "javax.servlet:javax.servlet-api:3.1.0", maven.artifact( diff --git a/java/maven_install.json b/java/maven_install.json index 10d8ea11ad572..1acc6f11f8612 100644 --- a/java/maven_install.json +++ b/java/maven_install.json @@ -110,6 +110,46 @@ ], "sha256": "056e05ea652c49bb725f38f418137faf22ea765184b5d75aea86be0a27684051" }, + { + "coord": "com.google.api.grpc:proto-google-common-protos:1.12.0", + "file": "v1/https/repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar", + "directDependencies": [], + "dependencies": [], + "exclusions": [ + "io.netty:netty-all", + "org.hamcrest:hamcrest-core", + "com.google.protobuf:protobuf-java", + "com.google.api:api-common", + "org.hamcrest:hamcrest-all" + ], + "url": "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar", + "https://jcenter.bintray.com/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar", + "https://maven.google.com/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar" + ], + "sha256": "bd60cd7a423b00fb824c27bdd0293aaf4781be1daba6ed256311103fb4b84108" + }, + { + "coord": "com.google.api.grpc:proto-google-common-protos:jar:sources:1.12.0", + "file": "v1/https/repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0-sources.jar", + "directDependencies": [], + "dependencies": [], + "exclusions": [ + "io.netty:netty-all", + "org.hamcrest:hamcrest-core", + "com.google.protobuf:protobuf-java", + "com.google.api:api-common", + "org.hamcrest:hamcrest-all" + ], + "url": "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0-sources.jar", + "https://jcenter.bintray.com/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0-sources.jar", + "https://maven.google.com/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0-sources.jar" + ], + "sha256": "936fdc055855a956ef82afb1b408bd0bd5ea5d040fe6f6fc25c4955879db649a" + }, { "coord": "com.google.auto.service:auto-service-annotations:1.0-rc6", "file": "v1/https/repo1.maven.org/maven2/com/google/auto/service/auto-service-annotations/1.0-rc6/auto-service-annotations-1.0-rc6.jar", @@ -539,6 +579,108 @@ ], "sha256": "ba4df669fec153fa4cd0ef8d02c6d3ef0702b7ac4cabe080facf3b6e490bb972" }, + { + "coord": "com.google.protobuf:protobuf-java-util:3.9.0", + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0.jar", + "directDependencies": [ + "com.google.code.gson:gson:2.8.6", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "com.google.protobuf:protobuf-java:3.9.0" + ], + "dependencies": [ + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.8.6", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.checkerframework:checker-qual:2.10.0", + "com.google.protobuf:protobuf-java:3.9.0", + "com.google.guava:failureaccess:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0.jar", + "https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0.jar", + "https://maven.google.com/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0.jar" + ], + "sha256": "3ecb6a7643191770fee5ebb236f1a36d0ead2d35c85ed50ba78de5fd94a662d6" + }, + { + "coord": "com.google.protobuf:protobuf-java-util:jar:sources:3.9.0", + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0-sources.jar", + "directDependencies": [ + "com.google.code.gson:gson:jar:sources:2.8.6", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0" + ], + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.code.gson:gson:jar:sources:2.8.6", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.guava:failureaccess:jar:sources:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0-sources.jar", + "https://jcenter.bintray.com/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0-sources.jar", + "https://maven.google.com/com/google/protobuf/protobuf-java-util/3.9.0/protobuf-java-util-3.9.0-sources.jar" + ], + "sha256": "c6237a53e69fd1bf6a791a5dba657d4151e4943537bcb8959e07b3b88d2c743e" + }, + { + "coord": "com.google.protobuf:protobuf-java:3.9.0", + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0.jar", + "directDependencies": [], + "dependencies": [], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0.jar", + "https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0.jar", + "https://maven.google.com/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0.jar" + ], + "sha256": "6c96d85eac237fea84d9d5e7413c85b62f2df0b9f7b17b0168bd1e28b09ff0e8" + }, + { + "coord": "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0-sources.jar", + "directDependencies": [], + "dependencies": [], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0-sources.jar", + "https://jcenter.bintray.com/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0-sources.jar", + "https://maven.google.com/com/google/protobuf/protobuf-java/3.9.0/protobuf-java-3.9.0-sources.jar" + ], + "sha256": "68508cbb23a142c3b0cebd7e009b8027b9c30f6c5e22bbeef1d140e92b5f4f6c" + }, { "coord": "com.squareup.okhttp3:okhttp:4.3.0", "file": "v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/4.3.0/okhttp-4.3.0.jar", @@ -915,6 +1057,74 @@ ], "sha256": "5d78a0f6cb46b8196b8d57269a68ce29f1721c0b8f44c93a6a1c13ad544a13db" }, + { + "coord": "io.grpc:grpc-api:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0.jar", + "directDependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "io.grpc:grpc-context:1.24.0" + ], + "dependencies": [ + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "org.checkerframework:checker-qual:2.10.0", + "io.grpc:grpc-context:1.24.0", + "com.google.guava:failureaccess:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0.jar", + "https://jcenter.bintray.com/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0.jar", + "https://maven.google.com/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0.jar" + ], + "sha256": "553978366e04ee8ddba64afde3b3cf2ac021a2f3c2db2831b6491d742b558598" + }, + { + "coord": "io.grpc:grpc-api:jar:sources:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0-sources.jar", + "directDependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "com.google.guava:guava:jar:sources:28.2-jre", + "io.grpc:grpc-context:jar:sources:1.24.0" + ], + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "io.grpc:grpc-context:jar:sources:1.24.0", + "com.google.guava:failureaccess:jar:sources:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0-sources.jar", + "https://jcenter.bintray.com/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0-sources.jar", + "https://maven.google.com/io/grpc/grpc-api/1.24.0/grpc-api-1.24.0-sources.jar" + ], + "sha256": "70ca73582e155e11e0f8cca2456e1fa0642945999176a7293a96d7dbafcbe742" + }, { "coord": "io.grpc:grpc-context:1.24.0", "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.24.0/grpc-context-1.24.0.jar", @@ -951,6 +1161,210 @@ ], "sha256": "17843d7dce02581051bb8825dcdfe89db227b1da1de6a23a6ed2b87b06d8ad50" }, + { + "coord": "io.grpc:grpc-protobuf-lite:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0.jar", + "directDependencies": [ + "com.google.guava:guava:28.2-jre", + "io.grpc:grpc-api:1.24.0" + ], + "dependencies": [ + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.code.findbugs:jsr305:3.0.2", + "io.grpc:grpc-api:1.24.0", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "org.checkerframework:checker-qual:2.10.0", + "io.grpc:grpc-context:1.24.0", + "com.google.guava:failureaccess:1.0.1" + ], + "exclusions": [ + "com.google.protobuf:protobuf-lite", + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0.jar", + "https://jcenter.bintray.com/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0.jar", + "https://maven.google.com/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0.jar" + ], + "sha256": "130326236fdb860ec466ed9c9e33c588bbcf058172493d584154eee0b5f13985" + }, + { + "coord": "io.grpc:grpc-protobuf-lite:jar:sources:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0-sources.jar", + "directDependencies": [ + "com.google.guava:guava:jar:sources:28.2-jre", + "io.grpc:grpc-api:jar:sources:1.24.0" + ], + "dependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "io.grpc:grpc-context:jar:sources:1.24.0", + "com.google.guava:failureaccess:jar:sources:1.0.1" + ], + "exclusions": [ + "com.google.protobuf:protobuf-lite", + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0-sources.jar", + "https://jcenter.bintray.com/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0-sources.jar", + "https://maven.google.com/io/grpc/grpc-protobuf-lite/1.24.0/grpc-protobuf-lite-1.24.0-sources.jar" + ], + "sha256": "5b3132c4dc7579c250f6bb0f4b99e6d44f0b90e1b8ba172f6de923f424ec8950" + }, + { + "coord": "io.grpc:grpc-protobuf:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0.jar", + "directDependencies": [ + "io.grpc:grpc-api:1.24.0", + "com.google.api.grpc:proto-google-common-protos:1.12.0", + "com.google.guava:guava:28.2-jre", + "com.google.protobuf:protobuf-java:3.9.0", + "io.grpc:grpc-protobuf-lite:1.24.0" + ], + "dependencies": [ + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.code.findbugs:jsr305:3.0.2", + "io.grpc:grpc-api:1.24.0", + "com.google.api.grpc:proto-google-common-protos:1.12.0", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "org.checkerframework:checker-qual:2.10.0", + "io.grpc:grpc-context:1.24.0", + "com.google.protobuf:protobuf-java:3.9.0", + "com.google.guava:failureaccess:1.0.1", + "io.grpc:grpc-protobuf-lite:1.24.0" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0.jar", + "https://jcenter.bintray.com/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0.jar", + "https://maven.google.com/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0.jar" + ], + "sha256": "88cd0838ea32893d92cb214ea58908351854ed8de7730be07d5f7d19025dd0bc" + }, + { + "coord": "io.grpc:grpc-protobuf:jar:sources:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0-sources.jar", + "directDependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.api.grpc:proto-google-common-protos:jar:sources:1.12.0", + "io.grpc:grpc-protobuf-lite:jar:sources:1.24.0" + ], + "dependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.api.grpc:proto-google-common-protos:jar:sources:1.12.0", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "io.grpc:grpc-context:jar:sources:1.24.0", + "io.grpc:grpc-protobuf-lite:jar:sources:1.24.0", + "com.google.guava:failureaccess:jar:sources:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0-sources.jar", + "https://jcenter.bintray.com/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0-sources.jar", + "https://maven.google.com/io/grpc/grpc-protobuf/1.24.0/grpc-protobuf-1.24.0-sources.jar" + ], + "sha256": "36250be87231a9b2ab77008663501b81c440357013bb410873f709398be4bb36" + }, + { + "coord": "io.grpc:grpc-stub:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0.jar", + "directDependencies": [ + "io.grpc:grpc-api:1.24.0" + ], + "dependencies": [ + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.code.findbugs:jsr305:3.0.2", + "io.grpc:grpc-api:1.24.0", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "org.checkerframework:checker-qual:2.10.0", + "io.grpc:grpc-context:1.24.0", + "com.google.guava:failureaccess:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0.jar", + "https://jcenter.bintray.com/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0.jar", + "https://maven.google.com/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0.jar" + ], + "sha256": "eaa9201896a77a0822e26621b538c7154f00441a51c9b14dc9e1ec1f2acfb815" + }, + { + "coord": "io.grpc:grpc-stub:jar:sources:1.24.0", + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0-sources.jar", + "directDependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0" + ], + "dependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "io.grpc:grpc-context:jar:sources:1.24.0", + "com.google.guava:failureaccess:jar:sources:1.0.1" + ], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0-sources.jar", + "https://jcenter.bintray.com/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0-sources.jar", + "https://maven.google.com/io/grpc/grpc-stub/1.24.0/grpc-stub-1.24.0-sources.jar" + ], + "sha256": "4a3c1b136a6267ba49441709620bfa7d143c182a62fc7b40cead7921153889a9" + }, { "coord": "io.lettuce:lettuce-core:5.2.1.RELEASE", "file": "v1/https/repo1.maven.org/maven2/io/lettuce/lettuce-core/5.2.1.RELEASE/lettuce-core-5.2.1.RELEASE.jar", @@ -1776,51 +2190,85 @@ "sha256": "8aa86fa2a690f1426562e034366ee742695c5a162d67013cf46c05f4416f8686" }, { - "coord": "io.opentelemetry:opentelemetry-exporters-logging:0.2.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", + "coord": "io.opentelemetry:opentelemetry-exporters-jaeger:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0.jar", "directDependencies": [ - "io.opentelemetry:opentelemetry-sdk:0.2.0" + "io.opentelemetry:opentelemetry-exporters-otprotocol:0.2.0", + "com.google.protobuf:protobuf-java-util:3.9.0", + "io.grpc:grpc-api:1.24.0", + "com.google.protobuf:protobuf-java:3.9.0", + "io.grpc:grpc-stub:1.24.0", + "io.opentelemetry:opentelemetry-sdk:0.2.0", + "io.grpc:grpc-protobuf:1.24.0" ], "dependencies": [ "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", "com.google.j2objc:j2objc-annotations:1.3", + "io.opentelemetry:opentelemetry-exporters-otprotocol:0.2.0", + "io.opentelemetry:opentelemetry-proto:0.2.0", "com.google.code.findbugs:jsr305:3.0.2", + "com.google.protobuf:protobuf-java-util:3.9.0", "io.opentelemetry:opentelemetry-api:0.2.0", + "io.grpc:grpc-api:1.24.0", + "com.google.code.gson:gson:2.8.6", + "com.google.api.grpc:proto-google-common-protos:1.12.0", "com.google.errorprone:error_prone_annotations:2.3.4", "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", "org.checkerframework:checker-qual:2.10.0", "io.grpc:grpc-context:1.24.0", + "com.google.protobuf:protobuf-java:3.9.0", "com.google.guava:failureaccess:1.0.1", - "io.opentelemetry:opentelemetry-sdk:0.2.0" + "io.grpc:grpc-stub:1.24.0", + "io.opentelemetry:opentelemetry-sdk:0.2.0", + "io.grpc:grpc-protobuf-lite:1.24.0", + "io.grpc:grpc-protobuf:1.24.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", - "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0.jar" ], - "sha256": "9dfd21cc200b015d4c9a8242687721ceb5048a3382b3876fa1c124128e8ff4fc" + "sha256": "1f85ac4269baaad6706efea6093b29e5b1c15e532304e4105d31f938b6470ff2" }, { - "coord": "io.opentelemetry:opentelemetry-exporters-logging:jar:sources:0.2.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", + "coord": "io.opentelemetry:opentelemetry-exporters-jaeger:jar:sources:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0-sources.jar", "directDependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0", + "io.grpc:grpc-stub:jar:sources:1.24.0", + "io.opentelemetry:opentelemetry-exporters-otprotocol:jar:sources:0.2.0", + "io.grpc:grpc-protobuf:jar:sources:1.24.0", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.protobuf:protobuf-java-util:jar:sources:3.9.0", "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0" ], "dependencies": [ + "io.grpc:grpc-api:jar:sources:1.24.0", "com.google.code.findbugs:jsr305:jar:sources:3.0.2", "com.google.j2objc:j2objc-annotations:jar:sources:1.3", "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", "org.checkerframework:checker-qual:jar:sources:2.10.0", "com.google.guava:guava:jar:sources:28.2-jre", + "io.grpc:grpc-stub:jar:sources:1.24.0", + "io.opentelemetry:opentelemetry-exporters-otprotocol:jar:sources:0.2.0", + "io.opentelemetry:opentelemetry-proto:jar:sources:0.2.0", + "io.grpc:grpc-protobuf:jar:sources:1.24.0", + "com.google.code.gson:gson:jar:sources:2.8.6", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.protobuf:protobuf-java-util:jar:sources:3.9.0", + "com.google.api.grpc:proto-google-common-protos:jar:sources:1.12.0", "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", "io.opentelemetry:opentelemetry-api:jar:sources:0.2.0", "io.grpc:grpc-context:jar:sources:1.24.0", + "io.grpc:grpc-protobuf-lite:jar:sources:1.24.0", "com.google.guava:failureaccess:jar:sources:1.0.1", "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0" ], @@ -1829,20 +2277,19 @@ "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", - "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0-sources.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-jaeger/0.2.0/opentelemetry-exporters-jaeger-0.2.0-sources.jar" ], - "sha256": "d05528c31794e00f0982e4a61d68f48d891675b8cfde59e0a7b5ed63b7f6e052" + "sha256": "75f9cb90188f5c89a984ad98a5806a275b13258bc0a0883d49fd3b08a1b46852" }, { - "coord": "io.opentelemetry:opentelemetry-sdk:0.2.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", + "coord": "io.opentelemetry:opentelemetry-exporters-logging:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", "directDependencies": [ - "com.google.guava:guava:28.2-jre", - "io.opentelemetry:opentelemetry-api:0.2.0" + "io.opentelemetry:opentelemetry-sdk:0.2.0" ], "dependencies": [ "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", @@ -1853,27 +2300,27 @@ "com.google.guava:guava:28.2-jre", "org.checkerframework:checker-qual:2.10.0", "io.grpc:grpc-context:1.24.0", - "com.google.guava:failureaccess:1.0.1" + "com.google.guava:failureaccess:1.0.1", + "io.opentelemetry:opentelemetry-sdk:0.2.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", - "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0.jar" ], - "sha256": "369468aff68fc27a47385d260a9859698dd2633617e8f7ccb3d0fadfbecbf984" + "sha256": "9dfd21cc200b015d4c9a8242687721ceb5048a3382b3876fa1c124128e8ff4fc" }, { - "coord": "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", + "coord": "io.opentelemetry:opentelemetry-exporters-logging:jar:sources:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", "directDependencies": [ - "com.google.guava:guava:jar:sources:28.2-jre", - "io.opentelemetry:opentelemetry-api:jar:sources:0.2.0" + "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0" ], "dependencies": [ "com.google.code.findbugs:jsr305:jar:sources:3.0.2", @@ -1884,144 +2331,219 @@ "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", "io.opentelemetry:opentelemetry-api:jar:sources:0.2.0", "io.grpc:grpc-context:jar:sources:1.24.0", - "com.google.guava:failureaccess:jar:sources:1.0.1" + "com.google.guava:failureaccess:jar:sources:1.0.1", + "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", - "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", - "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-logging/0.2.0/opentelemetry-exporters-logging-0.2.0-sources.jar" ], - "sha256": "acbb2348a52a6eaf286e64cead76389fdda2186d0f4c68e2aa1c8c0c72b2a214" + "sha256": "d05528c31794e00f0982e4a61d68f48d891675b8cfde59e0a7b5ed63b7f6e052" }, { - "coord": "io.opentracing.contrib:opentracing-tracerresolver:0.1.8", - "file": "v1/https/repo1.maven.org/maven2/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8.jar", + "coord": "io.opentelemetry:opentelemetry-exporters-otprotocol:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0.jar", "directDependencies": [ - "io.opentracing:opentracing-api:0.33.0" + "io.opentelemetry:opentelemetry-proto:0.2.0", + "com.google.protobuf:protobuf-java-util:3.9.0", + "com.google.protobuf:protobuf-java:3.9.0", + "io.grpc:grpc-stub:1.24.0", + "io.opentelemetry:opentelemetry-sdk:0.2.0", + "io.grpc:grpc-protobuf:1.24.0" ], "dependencies": [ - "io.opentracing:opentracing-api:0.33.0" + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.opentelemetry:opentelemetry-proto:0.2.0", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.protobuf:protobuf-java-util:3.9.0", + "io.opentelemetry:opentelemetry-api:0.2.0", + "io.grpc:grpc-api:1.24.0", + "com.google.code.gson:gson:2.8.6", + "com.google.api.grpc:proto-google-common-protos:1.12.0", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "org.checkerframework:checker-qual:2.10.0", + "io.grpc:grpc-context:1.24.0", + "com.google.protobuf:protobuf-java:3.9.0", + "com.google.guava:failureaccess:1.0.1", + "io.grpc:grpc-stub:1.24.0", + "io.opentelemetry:opentelemetry-sdk:0.2.0", + "io.grpc:grpc-protobuf-lite:1.24.0", + "io.grpc:grpc-protobuf:1.24.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8.jar", - "https://jcenter.bintray.com/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8.jar", - "https://maven.google.com/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0.jar" ], - "sha256": "3e50e423e464f20f8e4030b8dfbf8ccf8c67f1ac25802af69d32e0e4f6974909" + "sha256": "fca67cd4a69c462150eae9e5beb0cdb33d622fa2bcb0f7d72875bfed1cde9dfe" }, { - "coord": "io.opentracing.contrib:opentracing-tracerresolver:jar:sources:0.1.8", - "file": "v1/https/repo1.maven.org/maven2/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8-sources.jar", + "coord": "io.opentelemetry:opentelemetry-exporters-otprotocol:jar:sources:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0-sources.jar", "directDependencies": [ - "io.opentracing:opentracing-api:jar:sources:0.33.0" + "io.grpc:grpc-stub:jar:sources:1.24.0", + "io.opentelemetry:opentelemetry-proto:jar:sources:0.2.0", + "io.grpc:grpc-protobuf:jar:sources:1.24.0", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.protobuf:protobuf-java-util:jar:sources:3.9.0", + "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0" ], "dependencies": [ - "io.opentracing:opentracing-api:jar:sources:0.33.0" + "io.grpc:grpc-api:jar:sources:1.24.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "io.grpc:grpc-stub:jar:sources:1.24.0", + "io.opentelemetry:opentelemetry-proto:jar:sources:0.2.0", + "io.grpc:grpc-protobuf:jar:sources:1.24.0", + "com.google.code.gson:gson:jar:sources:2.8.6", + "com.google.protobuf:protobuf-java:jar:sources:3.9.0", + "com.google.protobuf:protobuf-java-util:jar:sources:3.9.0", + "com.google.api.grpc:proto-google-common-protos:jar:sources:1.12.0", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "io.opentelemetry:opentelemetry-api:jar:sources:0.2.0", + "io.grpc:grpc-context:jar:sources:1.24.0", + "io.grpc:grpc-protobuf-lite:jar:sources:1.24.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8-sources.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8-sources.jar", - "https://jcenter.bintray.com/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8-sources.jar", - "https://maven.google.com/io/opentracing/contrib/opentracing-tracerresolver/0.1.8/opentracing-tracerresolver-0.1.8-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0-sources.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-exporters-otprotocol/0.2.0/opentelemetry-exporters-otprotocol-0.2.0-sources.jar" ], - "sha256": "0690e1908960f3f5d583d52a9bed85c6f110a563d4ce352cff4c25447eaf4785" + "sha256": "71fb560fca3a44d7b89d0fe9694211cd7be4003c27533d09845e993679df4657" }, { - "coord": "io.opentracing:opentracing-api:0.33.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0.jar", - "directDependencies": [], - "dependencies": [], + "coord": "io.opentelemetry:opentelemetry-proto:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0.jar", + "directDependencies": [ + "com.google.protobuf:protobuf-java:3.9.0" + ], + "dependencies": [ + "com.google.protobuf:protobuf-java:3.9.0" + ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0.jar", - "https://jcenter.bintray.com/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0.jar", - "https://maven.google.com/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0.jar" ], - "sha256": "4534541b8e9f41a17bcdf1d09affe45b98c13574db6e529a93a58264b9472c7c" + "sha256": "3cc8442bd4249fb737647a12316fb889f533ead3e1edca486412de3258da323d" }, { - "coord": "io.opentracing:opentracing-api:jar:sources:0.33.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0-sources.jar", - "directDependencies": [], - "dependencies": [], + "coord": "io.opentelemetry:opentelemetry-proto:jar:sources:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0-sources.jar", + "directDependencies": [ + "com.google.protobuf:protobuf-java:jar:sources:3.9.0" + ], + "dependencies": [ + "com.google.protobuf:protobuf-java:jar:sources:3.9.0" + ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0-sources.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0-sources.jar", - "https://jcenter.bintray.com/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0-sources.jar", - "https://maven.google.com/io/opentracing/opentracing-api/0.33.0/opentracing-api-0.33.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0-sources.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-proto/0.2.0/opentelemetry-proto-0.2.0-sources.jar" ], - "sha256": "fcecb13dc6a852079886de440fd1d24c9bc19e862f653b207cba17e3b4050961" + "sha256": "ceae6807b89d1deac64c10b9c80ef478afb1f455f1feaa4d5c8c10fb4f6d0137" }, { - "coord": "io.opentracing:opentracing-noop:0.33.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0.jar", + "coord": "io.opentelemetry:opentelemetry-sdk:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", "directDependencies": [ - "io.opentracing:opentracing-api:0.33.0" + "com.google.guava:guava:28.2-jre", + "io.opentelemetry:opentelemetry-api:0.2.0" ], "dependencies": [ - "io.opentracing:opentracing-api:0.33.0" + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.code.findbugs:jsr305:3.0.2", + "io.opentelemetry:opentelemetry-api:0.2.0", + "com.google.errorprone:error_prone_annotations:2.3.4", + "com.google.guava:guava:28.2-jre", + "org.checkerframework:checker-qual:2.10.0", + "io.grpc:grpc-context:1.24.0", + "com.google.guava:failureaccess:1.0.1" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0.jar", - "https://jcenter.bintray.com/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0.jar", - "https://maven.google.com/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0.jar" ], - "sha256": "8529f91e10047b2b94cb21b50086a3d3913fa4da43594eddbd9ecf5917efe040" + "sha256": "369468aff68fc27a47385d260a9859698dd2633617e8f7ccb3d0fadfbecbf984" }, { - "coord": "io.opentracing:opentracing-noop:jar:sources:0.33.0", - "file": "v1/https/repo1.maven.org/maven2/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0-sources.jar", + "coord": "io.opentelemetry:opentelemetry-sdk:jar:sources:0.2.0", + "file": "v1/https/repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", "directDependencies": [ - "io.opentracing:opentracing-api:jar:sources:0.33.0" + "com.google.guava:guava:jar:sources:28.2-jre", + "io.opentelemetry:opentelemetry-api:jar:sources:0.2.0" ], "dependencies": [ - "io.opentracing:opentracing-api:jar:sources:0.33.0" + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.errorprone:error_prone_annotations:jar:sources:2.3.4", + "org.checkerframework:checker-qual:jar:sources:2.10.0", + "com.google.guava:guava:jar:sources:28.2-jre", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "io.opentelemetry:opentelemetry-api:jar:sources:0.2.0", + "io.grpc:grpc-context:jar:sources:1.24.0", + "com.google.guava:failureaccess:jar:sources:1.0.1" ], "exclusions": [ "org.hamcrest:hamcrest-all", "org.hamcrest:hamcrest-core", "io.netty:netty-all" ], - "url": "https://repo1.maven.org/maven2/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0-sources.jar", + "url": "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", "mirror_urls": [ - "https://repo1.maven.org/maven2/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0-sources.jar", - "https://jcenter.bintray.com/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0-sources.jar", - "https://maven.google.com/io/opentracing/opentracing-noop/0.33.0/opentracing-noop-0.33.0-sources.jar" + "https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", + "https://jcenter.bintray.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar", + "https://maven.google.com/io/opentelemetry/opentelemetry-sdk/0.2.0/opentelemetry-sdk-0.2.0-sources.jar" ], - "sha256": "f92d87a877b4466a7e7913d3d8bb74902af0630924d6963609fca813e36dc505" + "sha256": "acbb2348a52a6eaf286e64cead76389fdda2186d0f4c68e2aa1c8c0c72b2a214" }, { "coord": "io.projectreactor:reactor-core:3.3.0.RELEASE", @@ -3043,6 +3565,42 @@ ], "sha256": "aff9b7b482d65b947dfabf57c5fe5fc2b6d150b8583bdbc2308601eab6c9cede" }, + { + "coord": "org.codehaus.mojo:animal-sniffer-annotations:1.17", + "file": "v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar", + "directDependencies": [], + "dependencies": [], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar", + "https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar", + "https://maven.google.com/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar" + ], + "sha256": "92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53" + }, + { + "coord": "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.17", + "file": "v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar", + "directDependencies": [], + "dependencies": [], + "exclusions": [ + "org.hamcrest:hamcrest-all", + "org.hamcrest:hamcrest-core", + "io.netty:netty-all" + ], + "url": "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar", + "https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar", + "https://maven.google.com/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar" + ], + "sha256": "2571474a676f775a8cdd15fb9b1da20c4c121ed7f42a5d93fca0e7b6e2015b40" + }, { "coord": "org.eclipse.jetty.websocket:websocket-api:9.4.20.v20190813", "file": "v1/https/repo1.maven.org/maven2/org/eclipse/jetty/websocket/websocket-api/9.4.20.v20190813/websocket-api-9.4.20.v20190813.jar", @@ -4503,6 +5061,6 @@ } ], "version": "0.1.0", - "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": -1580398456 + "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": 696817878 } } diff --git a/java/server/src/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandler.java b/java/server/src/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandler.java index cabd3ead44c10..dfdf3363265c0 100644 --- a/java/server/src/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandler.java +++ b/java/server/src/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandler.java @@ -21,7 +21,7 @@ import com.google.common.base.Splitter; import com.thoughtworks.selenium.CommandProcessor; import com.thoughtworks.selenium.SeleniumException; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.chrome.ChromeOptions; diff --git a/java/server/src/org/openqa/selenium/grid/commands/Hub.java b/java/server/src/org/openqa/selenium/grid/commands/Hub.java index 46f1d9e55b181..7e4d0fe464d07 100644 --- a/java/server/src/org/openqa/selenium/grid/commands/Hub.java +++ b/java/server/src/org/openqa/selenium/grid/commands/Hub.java @@ -20,7 +20,7 @@ import com.beust.jcommander.JCommander; import com.beust.jcommander.ParameterException; import com.google.auto.service.AutoService; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.BuildInfo; import org.openqa.selenium.cli.CliCommand; import org.openqa.selenium.events.EventBus; diff --git a/java/server/src/org/openqa/selenium/grid/commands/Standalone.java b/java/server/src/org/openqa/selenium/grid/commands/Standalone.java index 3f9fcb648ff38..92030839fcf9d 100644 --- a/java/server/src/org/openqa/selenium/grid/commands/Standalone.java +++ b/java/server/src/org/openqa/selenium/grid/commands/Standalone.java @@ -20,7 +20,7 @@ import com.beust.jcommander.JCommander; import com.beust.jcommander.ParameterException; import com.google.auto.service.AutoService; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.BuildInfo; import org.openqa.selenium.WebDriverException; import org.openqa.selenium.cli.CliCommand; diff --git a/java/server/src/org/openqa/selenium/grid/distributor/AddNode.java b/java/server/src/org/openqa/selenium/grid/distributor/AddNode.java index d8706171b66d7..a87d5e1c4620e 100644 --- a/java/server/src/org/openqa/selenium/grid/distributor/AddNode.java +++ b/java/server/src/org/openqa/selenium/grid/distributor/AddNode.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.distributor; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.data.NodeStatus; import org.openqa.selenium.grid.node.Node; import org.openqa.selenium.grid.node.remote.RemoteNode; diff --git a/java/server/src/org/openqa/selenium/grid/distributor/Distributor.java b/java/server/src/org/openqa/selenium/grid/distributor/Distributor.java index 0f346bee7e665..181954ea341e4 100644 --- a/java/server/src/org/openqa/selenium/grid/distributor/Distributor.java +++ b/java/server/src/org/openqa/selenium/grid/distributor/Distributor.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.distributor; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.SessionNotCreatedException; import org.openqa.selenium.grid.data.CreateSessionResponse; import org.openqa.selenium.grid.data.DistributorStatus; diff --git a/java/server/src/org/openqa/selenium/grid/distributor/config/DistributorOptions.java b/java/server/src/org/openqa/selenium/grid/distributor/config/DistributorOptions.java index d2c9fb5d76084..034642635ea7a 100644 --- a/java/server/src/org/openqa/selenium/grid/distributor/config/DistributorOptions.java +++ b/java/server/src/org/openqa/selenium/grid/distributor/config/DistributorOptions.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.distributor.config; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.config.Config; import org.openqa.selenium.grid.config.ConfigException; import org.openqa.selenium.grid.distributor.Distributor; diff --git a/java/server/src/org/openqa/selenium/grid/distributor/httpd/DistributorServer.java b/java/server/src/org/openqa/selenium/grid/distributor/httpd/DistributorServer.java index 765f6b5db7880..1b8691e1d378a 100644 --- a/java/server/src/org/openqa/selenium/grid/distributor/httpd/DistributorServer.java +++ b/java/server/src/org/openqa/selenium/grid/distributor/httpd/DistributorServer.java @@ -20,7 +20,7 @@ import com.beust.jcommander.JCommander; import com.beust.jcommander.ParameterException; import com.google.auto.service.AutoService; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.BuildInfo; import org.openqa.selenium.cli.CliCommand; import org.openqa.selenium.events.EventBus; diff --git a/java/server/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java b/java/server/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java index 8efca7e5c39d1..90b00381f71ef 100644 --- a/java/server/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java +++ b/java/server/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java @@ -20,10 +20,9 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.tag.Tags; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Beta; import org.openqa.selenium.Capabilities; import org.openqa.selenium.SessionNotCreatedException; @@ -39,7 +38,6 @@ import org.openqa.selenium.remote.NewSessionPayload; import org.openqa.selenium.remote.http.HttpClient; import org.openqa.selenium.remote.http.HttpRequest; -import org.openqa.selenium.remote.tracing.HttpTracing; import java.io.IOException; import java.io.Reader; @@ -69,7 +67,10 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet; import static org.openqa.selenium.grid.data.NodeStatusEvent.NODE_STATUS; import static org.openqa.selenium.grid.distributor.local.Host.Status.UP; +import static org.openqa.selenium.remote.RemoteTags.CAPABILITIES; +import static org.openqa.selenium.remote.RemoteTags.SESSION_ID; import static org.openqa.selenium.remote.http.Contents.reader; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; public class LocalDistributor extends Distributor { @@ -104,13 +105,12 @@ public LocalDistributor( @Override public CreateSessionResponse newSession(HttpRequest request) throws SessionNotCreatedException { - Span previous = tracer.scopeManager().activeSpan(); - SpanContext parent = HttpTracing.extract(tracer, request); - Span span = tracer.buildSpan("distributor.new_session").asChildOf(parent).start(); - tracer.scopeManager().activate(span); + Span span = newSpanAsChildOf(tracer, request, "distributor.new_session").startSpan(); - try (Reader reader = reader(request); - NewSessionPayload payload = NewSessionPayload.create(reader)) { + try ( + Scope scope = tracer.withSpan(span); + Reader reader = reader(request); + NewSessionPayload payload = NewSessionPayload.create(reader)) { Objects.requireNonNull(payload, "Requests to process must be set."); Iterator iterator = payload.stream().iterator(); @@ -154,7 +154,7 @@ public CreateSessionResponse newSession(HttpRequest request) CreateSessionResponse sessionResponse = selected .orElseThrow( () -> { - span.setTag(Tags.ERROR, true); + span.setAttribute("error", true); return new SessionNotCreatedException( "Unable to find provider for session: " + payload.stream() .map(Capabilities::toString) @@ -164,17 +164,16 @@ public CreateSessionResponse newSession(HttpRequest request) sessions.add(sessionResponse.getSession()); - span.setTag("session.id", sessionResponse.getSession().getId().toString()); - span.setTag("session.url", sessionResponse.getSession().getUri().toString()); - span.setTag("session.capabilities", sessionResponse.getSession().getCapabilities().toString()); + SESSION_ID.accept(span, sessionResponse.getSession().getId()); + CAPABILITIES.accept(span, sessionResponse.getSession().getCapabilities()); + span.setAttribute("session.url", sessionResponse.getSession().getUri().toString()); return sessionResponse; } catch (IOException e) { - span.setTag(Tags.ERROR, true); + span.setAttribute("error", true); throw new SessionNotCreatedException(e.getMessage(), e); } finally { - span.finish(); - tracer.scopeManager().activate(previous); + span.end(); } } diff --git a/java/server/src/org/openqa/selenium/grid/distributor/remote/RemoteDistributor.java b/java/server/src/org/openqa/selenium/grid/distributor/remote/RemoteDistributor.java index af10e7a0c55f5..a4802625cc2a3 100644 --- a/java/server/src/org/openqa/selenium/grid/distributor/remote/RemoteDistributor.java +++ b/java/server/src/org/openqa/selenium/grid/distributor/remote/RemoteDistributor.java @@ -17,8 +17,8 @@ package org.openqa.selenium.grid.distributor.remote; -import io.opentracing.Span; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.SessionNotCreatedException; import org.openqa.selenium.grid.data.CreateSessionResponse; import org.openqa.selenium.grid.data.DistributorStatus; @@ -61,7 +61,7 @@ public RemoteDistributor(Tracer tracer, HttpClient.Factory factory, URL url) { public CreateSessionResponse newSession(HttpRequest request) throws SessionNotCreatedException { HttpRequest upstream = new HttpRequest(POST, "/se/grid/distributor/session"); - Span span = tracer.scopeManager().activeSpan(); + Span span = tracer.getCurrentSpan(); HttpTracing.inject(tracer, span, upstream); upstream.setContent(request.getContent()); @@ -73,7 +73,7 @@ public CreateSessionResponse newSession(HttpRequest request) @Override public RemoteDistributor add(Node node) { HttpRequest request = new HttpRequest(POST, "/se/grid/distributor/node"); - Span span = tracer.scopeManager().activeSpan(); + Span span = tracer.getCurrentSpan(); HttpTracing.inject(tracer, span, request); request.setContent(utf8String(JSON.toJson(node.getStatus()))); @@ -90,7 +90,7 @@ public RemoteDistributor add(Node node) { public void remove(UUID nodeId) { Objects.requireNonNull(nodeId, "Node ID must be set"); HttpRequest request = new HttpRequest(DELETE, "/se/grid/distributor/node/" + nodeId); - HttpTracing.inject(tracer, tracer.scopeManager().activeSpan(), request); + HttpTracing.inject(tracer, tracer.getCurrentSpan(), request); HttpResponse response = client.execute(request); @@ -100,7 +100,7 @@ public void remove(UUID nodeId) { @Override public DistributorStatus getStatus() { HttpRequest request = new HttpRequest(GET, "/se/grid/distributor/status"); - Span span = tracer.scopeManager().activeSpan(); + Span span = tracer.getCurrentSpan(); HttpTracing.inject(tracer, span, request); HttpResponse response = client.execute(request); diff --git a/java/server/src/org/openqa/selenium/grid/docker/DockerOptions.java b/java/server/src/org/openqa/selenium/grid/docker/DockerOptions.java index 50ffc0260b05e..6ea9dd35238b7 100644 --- a/java/server/src/org/openqa/selenium/grid/docker/DockerOptions.java +++ b/java/server/src/org/openqa/selenium/grid/docker/DockerOptions.java @@ -19,7 +19,7 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.docker.Docker; import org.openqa.selenium.docker.DockerException; diff --git a/java/server/src/org/openqa/selenium/grid/docker/DockerSession.java b/java/server/src/org/openqa/selenium/grid/docker/DockerSession.java index 592f705f1301e..effa49c305e12 100644 --- a/java/server/src/org/openqa/selenium/grid/docker/DockerSession.java +++ b/java/server/src/org/openqa/selenium/grid/docker/DockerSession.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.docker; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.docker.Container; import org.openqa.selenium.grid.node.ProtocolConvertingSession; diff --git a/java/server/src/org/openqa/selenium/grid/docker/DockerSessionFactory.java b/java/server/src/org/openqa/selenium/grid/docker/DockerSessionFactory.java index a4d2b918a17d0..bc4edbdf61080 100644 --- a/java/server/src/org/openqa/selenium/grid/docker/DockerSessionFactory.java +++ b/java/server/src/org/openqa/selenium/grid/docker/DockerSessionFactory.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.docker; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.SessionNotCreatedException; diff --git a/java/server/src/org/openqa/selenium/grid/log/BUILD.bazel b/java/server/src/org/openqa/selenium/grid/log/BUILD.bazel index 6f6c038a2fb35..eae210d8a835b 100644 --- a/java/server/src/org/openqa/selenium/grid/log/BUILD.bazel +++ b/java/server/src/org/openqa/selenium/grid/log/BUILD.bazel @@ -11,7 +11,9 @@ java_library( "//java/client/src/org/openqa/selenium/json", "//java/client/src/org/openqa/selenium/remote", "//java/server/src/org/openqa/selenium/grid/config", - artifact("io.opentracing:opentracing-noop"), - artifact("io.opentracing.contrib:opentracing-tracerresolver"), + artifact("io.opentelemetry:opentelemetry-api"), +# artifact("io.opentelemetry:opentelemetry-exporters-jaeger"), + artifact("io.opentelemetry:opentelemetry-exporters-logging"), + artifact("io.opentelemetry:opentelemetry-sdk"), ], ) diff --git a/java/server/src/org/openqa/selenium/grid/log/LoggingOptions.java b/java/server/src/org/openqa/selenium/grid/log/LoggingOptions.java index 2760d781e6752..e5f3b443c9086 100644 --- a/java/server/src/org/openqa/selenium/grid/log/LoggingOptions.java +++ b/java/server/src/org/openqa/selenium/grid/log/LoggingOptions.java @@ -17,9 +17,11 @@ package org.openqa.selenium.grid.log; -import io.opentracing.Tracer; -import io.opentracing.contrib.tracerresolver.TracerResolver; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.exporters.logging.LoggingExporter; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.trace.TracerSdkFactory; +import io.opentelemetry.sdk.trace.export.SimpleSpansProcessor; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.config.Config; import java.util.Arrays; @@ -46,8 +48,14 @@ public boolean isUsingPlainLogs() { } public Tracer getTracer() { - Tracer tracer = TracerResolver.resolveTracer(); - return tracer == null ? NoopTracerFactory.create() : tracer; + TracerSdkFactory tracerFactory = OpenTelemetrySdk.getTracerFactory(); + tracerFactory.addSpanProcessor(SimpleSpansProcessor.newBuilder(new LoggingExporter()).build()); + + // 2020-01-28: The Jaeger exporter doesn't yet have a + // `TracerFactoryProvider`, so we shall look up the class directly, and + // beg for forgiveness. + + return tracerFactory.get("default"); } public void configureLogging() { diff --git a/java/server/src/org/openqa/selenium/grid/node/Node.java b/java/server/src/org/openqa/selenium/grid/node/Node.java index 1103d59268135..897abc7d79bb6 100644 --- a/java/server/src/org/openqa/selenium/grid/node/Node.java +++ b/java/server/src/org/openqa/selenium/grid/node/Node.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.node; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.grid.component.HealthCheck; diff --git a/java/server/src/org/openqa/selenium/grid/node/ProtocolConvertingSession.java b/java/server/src/org/openqa/selenium/grid/node/ProtocolConvertingSession.java index 3f31582d28b82..173a95ad5ffb9 100644 --- a/java/server/src/org/openqa/selenium/grid/node/ProtocolConvertingSession.java +++ b/java/server/src/org/openqa/selenium/grid/node/ProtocolConvertingSession.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.node; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.grid.web.ProtocolConverter; import org.openqa.selenium.grid.web.ReverseProxyHandler; diff --git a/java/server/src/org/openqa/selenium/grid/node/StatusHandler.java b/java/server/src/org/openqa/selenium/grid/node/StatusHandler.java index 72492ff20669d..181d1a5db244a 100644 --- a/java/server/src/org/openqa/selenium/grid/node/StatusHandler.java +++ b/java/server/src/org/openqa/selenium/grid/node/StatusHandler.java @@ -18,7 +18,6 @@ package org.openqa.selenium.grid.node; import com.google.common.collect.ImmutableMap; -import io.opentracing.Tracer; import org.openqa.selenium.grid.data.NodeStatus; import org.openqa.selenium.json.Json; import org.openqa.selenium.remote.http.HttpHandler; diff --git a/java/server/src/org/openqa/selenium/grid/node/config/DriverServiceSessionFactory.java b/java/server/src/org/openqa/selenium/grid/node/config/DriverServiceSessionFactory.java index 869f61c3e7246..0bdf7284e8a9e 100644 --- a/java/server/src/org/openqa/selenium/grid/node/config/DriverServiceSessionFactory.java +++ b/java/server/src/org/openqa/selenium/grid/node/config/DriverServiceSessionFactory.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.node.config; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.grid.data.CreateSessionRequest; diff --git a/java/server/src/org/openqa/selenium/grid/node/config/NodeOptions.java b/java/server/src/org/openqa/selenium/grid/node/config/NodeOptions.java index 1b75b0e69d54d..e0655be1b109c 100644 --- a/java/server/src/org/openqa/selenium/grid/node/config/NodeOptions.java +++ b/java/server/src/org/openqa/selenium/grid/node/config/NodeOptions.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.node.config; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.WebDriverInfo; import org.openqa.selenium.grid.config.Config; diff --git a/java/server/src/org/openqa/selenium/grid/node/httpd/NodeServer.java b/java/server/src/org/openqa/selenium/grid/node/httpd/NodeServer.java index 9543a2ff27b8b..0950634d0994a 100644 --- a/java/server/src/org/openqa/selenium/grid/node/httpd/NodeServer.java +++ b/java/server/src/org/openqa/selenium/grid/node/httpd/NodeServer.java @@ -20,7 +20,7 @@ import com.beust.jcommander.JCommander; import com.beust.jcommander.ParameterException; import com.google.auto.service.AutoService; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.BuildInfo; import org.openqa.selenium.cli.CliCommand; import org.openqa.selenium.concurrent.Regularly; diff --git a/java/server/src/org/openqa/selenium/grid/node/local/LocalNode.java b/java/server/src/org/openqa/selenium/grid/node/local/LocalNode.java index 5159340e5fd9b..2318c7651c3c7 100644 --- a/java/server/src/org/openqa/selenium/grid/node/local/LocalNode.java +++ b/java/server/src/org/openqa/selenium/grid/node/local/LocalNode.java @@ -26,8 +26,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Span; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.concurrent.Regularly; @@ -63,6 +63,8 @@ import static org.openqa.selenium.grid.data.SessionClosedEvent.SESSION_CLOSED; import static org.openqa.selenium.grid.node.CapabilityResponseEncoder.getEncoder; import static org.openqa.selenium.remote.HttpSessionId.getSessionId; +import static org.openqa.selenium.remote.RemoteTags.CAPABILITIES; +import static org.openqa.selenium.remote.RemoteTags.SESSION_ID; import static org.openqa.selenium.remote.http.HttpMethod.DELETE; public class LocalNode extends Node { @@ -135,11 +137,13 @@ public boolean isSupporting(Capabilities capabilities) { @Override public Optional newSession(CreateSessionRequest sessionRequest) { - Span span = tracer.scopeManager().activeSpan(); + Span span = tracer.getCurrentSpan(); Logger.getLogger(LocalNode.class.getName()).info("Creating new session using span: " + span); Objects.requireNonNull(sessionRequest, "Session request has not been set."); - if (span != null) {span.setTag("session_count", getCurrentSessionCount());} + if (span != null) { + span.setAttribute("session_count", getCurrentSessionCount()); + } if (getCurrentSessionCount() >= maxSessionCount) { return Optional.empty(); @@ -167,11 +171,11 @@ public Optional newSession(CreateSessionRequest sessionRe currentSessions.put(session.getId(), slot); if (span != null) { - span.setTag("session.id", session.getId().toString()); - span.setTag("session.capabilities", session.getCapabilities().toString()); - span.setTag("session.downstream.dialect", session.getDownstreamDialect().toString()); - span.setTag("session.upstream.dialect", session.getUpstreamDialect().toString()); - span.setTag("session.uri", session.getUri().toString()); + SESSION_ID.accept(span, session.getId()); + CAPABILITIES.accept(span, session.getCapabilities()); + span.setAttribute("session.downstream.dialect", session.getDownstreamDialect().toString()); + span.setAttribute("session.upstream.dialect", session.getUpstreamDialect().toString()); + span.setAttribute("session.uri", session.getUri().toString()); } // The session we return has to look like it came from the node, since we might be dealing diff --git a/java/server/src/org/openqa/selenium/grid/node/remote/RemoteNode.java b/java/server/src/org/openqa/selenium/grid/node/remote/RemoteNode.java index 07d4650575bb9..687ef5b28d724 100644 --- a/java/server/src/org/openqa/selenium/grid/node/remote/RemoteNode.java +++ b/java/server/src/org/openqa/selenium/grid/node/remote/RemoteNode.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.grid.component.HealthCheck; @@ -95,7 +95,7 @@ public Optional newSession(CreateSessionRequest sessionRe Objects.requireNonNull(sessionRequest, "Capabilities for session are not set"); HttpRequest req = new HttpRequest(POST, "/se/grid/node/session"); - HttpTracing.inject(tracer, tracer.scopeManager().activeSpan(), req); + HttpTracing.inject(tracer, tracer.getCurrentSpan(), req); req.setContent(utf8String(JSON.toJson(sessionRequest))); HttpResponse res = client.execute(req); @@ -108,7 +108,7 @@ protected boolean isSessionOwner(SessionId id) { Objects.requireNonNull(id, "Session ID has not been set"); HttpRequest req = new HttpRequest(GET, "/se/grid/node/owner/" + id); - HttpTracing.inject(tracer, tracer.scopeManager().activeSpan(), req); + HttpTracing.inject(tracer, tracer.getCurrentSpan(), req); HttpResponse res = client.execute(req); @@ -120,7 +120,7 @@ public Session getSession(SessionId id) throws NoSuchSessionException { Objects.requireNonNull(id, "Session ID has not been set"); HttpRequest req = new HttpRequest(GET, "/se/grid/node/session/" + id); - HttpTracing.inject(tracer, tracer.scopeManager().activeSpan(), req); + HttpTracing.inject(tracer, tracer.getCurrentSpan(), req); HttpResponse res = client.execute(req); @@ -136,7 +136,7 @@ public HttpResponse executeWebDriverCommand(HttpRequest req) { public void stop(SessionId id) throws NoSuchSessionException { Objects.requireNonNull(id, "Session ID has not been set"); HttpRequest req = new HttpRequest(DELETE, "/se/grid/node/session/" + id); - HttpTracing.inject(tracer, tracer.scopeManager().activeSpan(), req); + HttpTracing.inject(tracer, tracer.getCurrentSpan(), req); HttpResponse res = client.execute(req); @@ -146,7 +146,7 @@ public void stop(SessionId id) throws NoSuchSessionException { @Override public NodeStatus getStatus() { HttpRequest req = new HttpRequest(GET, "/status"); - HttpTracing.inject(tracer, tracer.scopeManager().activeSpan(), req); + HttpTracing.inject(tracer, tracer.getCurrentSpan(), req); HttpResponse res = client.execute(req); diff --git a/java/server/src/org/openqa/selenium/grid/router/GridStatusHandler.java b/java/server/src/org/openqa/selenium/grid/router/GridStatusHandler.java index c9f44fe03dc90..116b2bbd3bcdf 100644 --- a/java/server/src/org/openqa/selenium/grid/router/GridStatusHandler.java +++ b/java/server/src/org/openqa/selenium/grid/router/GridStatusHandler.java @@ -18,10 +18,9 @@ package org.openqa.selenium.grid.router; import com.google.common.collect.ImmutableMap; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.tag.Tags; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.data.DistributorStatus; import org.openqa.selenium.grid.distributor.Distributor; import org.openqa.selenium.json.Json; @@ -51,6 +50,8 @@ import static org.openqa.selenium.remote.http.Contents.string; import static org.openqa.selenium.remote.http.Contents.utf8String; import static org.openqa.selenium.remote.http.HttpMethod.GET; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_RESPONSE; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; class GridStatusHandler implements HttpHandler { @@ -89,12 +90,9 @@ public GridStatusHandler(Json json, Tracer tracer, HttpClient.Factory clientFact public HttpResponse execute(HttpRequest req) { long start = System.currentTimeMillis(); - Span previousSpan = tracer.scopeManager().activeSpan(); - SpanContext spanContext = HttpTracing.extract(tracer, req); - Span span = tracer.buildSpan("router.status").ignoreActiveSpan().asChildOf(spanContext).start(); - tracer.scopeManager().activate(span); + Span span = newSpanAsChildOf(tracer, req, "router.status").startSpan(); - try { + try (Scope scope = tracer.withSpan(span)) { DistributorStatus status; try { status = EXECUTOR_SERVICE.submit(new TracedCallable<>(tracer, span, distributor::getStatus)).get(2, SECONDS); @@ -168,11 +166,10 @@ public HttpResponse execute(HttpRequest req) { .collect(toList())); HttpResponse res = new HttpResponse().setContent(utf8String(json.toJson(ImmutableMap.of("value", value.build())))); - span.setTag(Tags.HTTP_STATUS, res.getStatus()); + HTTP_RESPONSE.accept(span, res); return res; } finally { - span.finish(); - tracer.scopeManager().activate(previousSpan); + span.end(); } } diff --git a/java/server/src/org/openqa/selenium/grid/router/HandleSession.java b/java/server/src/org/openqa/selenium/grid/router/HandleSession.java index 6920ff795761f..2ab70b08cd8d5 100644 --- a/java/server/src/org/openqa/selenium/grid/router/HandleSession.java +++ b/java/server/src/org/openqa/selenium/grid/router/HandleSession.java @@ -19,10 +19,9 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.tag.Tags; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.grid.data.Session; import org.openqa.selenium.grid.sessionmap.SessionMap; @@ -42,6 +41,9 @@ import java.util.concurrent.ExecutionException; import static org.openqa.selenium.remote.HttpSessionId.getSessionId; +import static org.openqa.selenium.remote.RemoteTags.SESSION_ID; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_REQUEST; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_RESPONSE; class HandleSession implements HttpHandler { @@ -65,30 +67,25 @@ public HandleSession( @Override public HttpResponse execute(HttpRequest req) { - Span previousSpan = tracer.scopeManager().activeSpan(); - SpanContext parent = HttpTracing.extract(tracer, req); - Span span = tracer.buildSpan("router.handle_session").asChildOf(parent).start(); - try { - tracer.scopeManager().activate(span); - - span.setTag(Tags.HTTP_METHOD, req.getMethod().toString()); - span.setTag(Tags.HTTP_URL, req.getUri()); + Span span = HttpTracing.newSpanAsChildOf(tracer, req, "router.handle_session").startSpan(); + try (Scope scope = tracer.withSpan(span)) { + HTTP_REQUEST.accept(span, req); SessionId id = getSessionId(req.getUri()).map(SessionId::new) .orElseThrow(() -> new NoSuchSessionException("Cannot find session: " + req)); - span.setTag("session.id", id.toString()); + SESSION_ID.accept(span, id); try { HttpTracing.inject(tracer, span, req); HttpResponse res = knownSessions.get(id, loadSessionId(tracer, span, id)).execute(req); - span.setTag(Tags.HTTP_STATUS, res.getStatus()); + HTTP_RESPONSE.accept(span, res); return res; } catch (ExecutionException e) { - span.setTag(Tags.ERROR, true); - span.setTag("error.message", e.getMessage()); + span.setAttribute("error", true); + span.setAttribute("error.message", e.getMessage()); Throwable cause = e.getCause(); if (cause instanceof RuntimeException) { @@ -97,8 +94,7 @@ public HttpResponse execute(HttpRequest req) { throw new RuntimeException(cause); } } finally { - span.finish(); - tracer.scopeManager().activate(previousSpan); + span.end(); } } diff --git a/java/server/src/org/openqa/selenium/grid/router/Router.java b/java/server/src/org/openqa/selenium/grid/router/Router.java index fcd65e4014932..93d0f082ddf7e 100644 --- a/java/server/src/org/openqa/selenium/grid/router/Router.java +++ b/java/server/src/org/openqa/selenium/grid/router/Router.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.router; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.distributor.Distributor; import org.openqa.selenium.grid.sessionmap.SessionMap; import org.openqa.selenium.json.Json; diff --git a/java/server/src/org/openqa/selenium/grid/router/httpd/RouterServer.java b/java/server/src/org/openqa/selenium/grid/router/httpd/RouterServer.java index 3c24295403814..fab97cb39c0a1 100644 --- a/java/server/src/org/openqa/selenium/grid/router/httpd/RouterServer.java +++ b/java/server/src/org/openqa/selenium/grid/router/httpd/RouterServer.java @@ -20,7 +20,7 @@ import com.beust.jcommander.JCommander; import com.beust.jcommander.ParameterException; import com.google.auto.service.AutoService; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.BuildInfo; import org.openqa.selenium.cli.CliCommand; import org.openqa.selenium.grid.config.AnnotatedConfig; diff --git a/java/server/src/org/openqa/selenium/grid/server/NetworkOptions.java b/java/server/src/org/openqa/selenium/grid/server/NetworkOptions.java index b9a7ba4bed6bf..372b59d7e3241 100644 --- a/java/server/src/org/openqa/selenium/grid/server/NetworkOptions.java +++ b/java/server/src/org/openqa/selenium/grid/server/NetworkOptions.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.server; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.config.Config; import org.openqa.selenium.grid.log.LoggingOptions; import org.openqa.selenium.remote.http.HttpClient; diff --git a/java/server/src/org/openqa/selenium/grid/session/remote/RemoteSession.java b/java/server/src/org/openqa/selenium/grid/session/remote/RemoteSession.java index 00777188ebf2c..3a434598282dd 100644 --- a/java/server/src/org/openqa/selenium/grid/session/remote/RemoteSession.java +++ b/java/server/src/org/openqa/selenium/grid/session/remote/RemoteSession.java @@ -19,7 +19,7 @@ import com.google.common.base.Preconditions; import com.google.common.base.StandardSystemProperty; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.WebDriver; diff --git a/java/server/src/org/openqa/selenium/grid/session/remote/ServicedSession.java b/java/server/src/org/openqa/selenium/grid/session/remote/ServicedSession.java index 559d3bf8be1e9..f465ae11e8559 100644 --- a/java/server/src/org/openqa/selenium/grid/session/remote/ServicedSession.java +++ b/java/server/src/org/openqa/selenium/grid/session/remote/ServicedSession.java @@ -20,7 +20,7 @@ import static java.util.concurrent.TimeUnit.SECONDS; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.InvalidArgumentException; import org.openqa.selenium.SessionNotCreatedException; diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/AddToSessionMap.java b/java/server/src/org/openqa/selenium/grid/sessionmap/AddToSessionMap.java index 5d39d17b2533d..14fd5f2ff921b 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/AddToSessionMap.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/AddToSessionMap.java @@ -18,22 +18,23 @@ package org.openqa.selenium.grid.sessionmap; import com.google.common.collect.ImmutableMap; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.data.Session; import org.openqa.selenium.json.Json; import org.openqa.selenium.remote.http.HttpHandler; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; -import org.openqa.selenium.remote.tracing.HttpTracing; import java.util.Objects; -import static io.opentracing.tag.Tags.HTTP_METHOD; -import static io.opentracing.tag.Tags.HTTP_URL; +import static org.openqa.selenium.remote.RemoteTags.CAPABILITIES; +import static org.openqa.selenium.remote.RemoteTags.SESSION_ID; import static org.openqa.selenium.remote.http.Contents.string; import static org.openqa.selenium.remote.http.Contents.utf8String; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_REQUEST; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; class AddToSessionMap implements HttpHandler { @@ -49,27 +50,22 @@ class AddToSessionMap implements HttpHandler { @Override public HttpResponse execute(HttpRequest req) { - SpanContext parent = HttpTracing.extract(tracer, req); - Span current = tracer.scopeManager().activeSpan(); - Span span = tracer.buildSpan("sessions.add_session").asChildOf(parent).start(); - tracer.scopeManager().activate(span); - try { - HTTP_METHOD.set(span, req.getMethod().toString()); - HTTP_URL.set(span, req.getUri()); + Span span = newSpanAsChildOf(tracer, req, "sessions.add_session").startSpan(); + try (Scope scope = tracer.withSpan(span)) { + HTTP_REQUEST.accept(span, req); Session session = json.toType(string(req), Session.class); Objects.requireNonNull(session, "Session to add must be set"); - span.setTag("session.id", session.getId().toString()); - span.setTag("session.capabilities", session.getCapabilities().toString()); - span.setTag("session.uri", session.getUri().toString()); + SESSION_ID.accept(span, session.getId()); + CAPABILITIES.accept(span, session.getCapabilities()); + span.setAttribute("session.uri", session.getUri().toString()); sessions.add(session); return new HttpResponse().setContent(utf8String(json.toJson(ImmutableMap.of("value", true)))); } finally { - span.finish(); - tracer.scopeManager().activate(current); + span.end(); } } } diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/GetFromSessionMap.java b/java/server/src/org/openqa/selenium/grid/sessionmap/GetFromSessionMap.java index e296cd818df19..075fcbc37752d 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/GetFromSessionMap.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/GetFromSessionMap.java @@ -18,22 +18,23 @@ package org.openqa.selenium.grid.sessionmap; import com.google.common.collect.ImmutableMap; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.grid.data.Session; import org.openqa.selenium.json.Json; import org.openqa.selenium.remote.SessionId; import org.openqa.selenium.remote.http.HttpHandler; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; -import org.openqa.selenium.remote.tracing.HttpTracing; import java.util.Objects; -import static io.opentracing.tag.Tags.HTTP_METHOD; -import static io.opentracing.tag.Tags.HTTP_URL; +import static org.openqa.selenium.remote.RemoteTags.CAPABILITIES; +import static org.openqa.selenium.remote.RemoteTags.SESSION_ID; import static org.openqa.selenium.remote.http.Contents.utf8String; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_REQUEST; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; class GetFromSessionMap implements HttpHandler { @@ -51,25 +52,20 @@ public GetFromSessionMap(Tracer tracer, Json json, SessionMap sessions, SessionI @Override public HttpResponse execute(HttpRequest req) { - SpanContext parent = HttpTracing.extract(tracer, req); - Span current = tracer.scopeManager().activeSpan(); - Span span = tracer.buildSpan("sessions.get_session").asChildOf(parent).start(); - tracer.scopeManager().activate(span); + Span span = newSpanAsChildOf(tracer, req, "sessions.get_session").startSpan(); - try { - HTTP_METHOD.set(span, req.getMethod().toString()); - HTTP_URL.set(span, req.getUri()); + try (Scope scope = tracer.withSpan(span)) { + HTTP_REQUEST.accept(span, req); Session session = sessions.get(id); - span.setTag("session.id", session.getId().toString()); - span.setTag("session.capabilities", session.getCapabilities().toString()); - span.setTag("session.uri", session.getUri().toString()); + SESSION_ID.accept(span, session.getId()); + CAPABILITIES.accept(span, session.getCapabilities()); + span.setAttribute("session.uri", session.getUri().toString()); return new HttpResponse().setContent(utf8String(json.toJson(ImmutableMap.of("value", session)))); } finally { - span.finish(); - tracer.scopeManager().activate(current); + span.end(); } } } diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/RemoveFromSession.java b/java/server/src/org/openqa/selenium/grid/sessionmap/RemoveFromSession.java index f0ac4919cec6c..655ec75d15d51 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/RemoveFromSession.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/RemoveFromSession.java @@ -17,19 +17,19 @@ package org.openqa.selenium.grid.sessionmap; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.remote.SessionId; import org.openqa.selenium.remote.http.HttpHandler; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; -import org.openqa.selenium.remote.tracing.HttpTracing; import java.util.Objects; -import static io.opentracing.tag.Tags.HTTP_METHOD; -import static io.opentracing.tag.Tags.HTTP_URL; +import static org.openqa.selenium.remote.RemoteTags.SESSION_ID; +import static org.openqa.selenium.remote.tracing.HttpTags.HTTP_REQUEST; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; class RemoveFromSession implements HttpHandler { @@ -46,21 +46,16 @@ public RemoveFromSession(Tracer tracer, SessionMap sessions, SessionId id) { @Override public HttpResponse execute(HttpRequest req) { - SpanContext parent = HttpTracing.extract(tracer, req); - Span current = tracer.scopeManager().activeSpan(); - Span span = tracer.buildSpan("sessions.remove_session").asChildOf(parent).start(); - tracer.scopeManager().activate(span); + Span span = newSpanAsChildOf(tracer, req, "sessions.remove_session").startSpan(); - try { - HTTP_METHOD.set(span, req.getMethod().toString()); - HTTP_URL.set(span, req.getUri()); - span.setTag("session.id", String.valueOf(id)); + try (Scope scope = tracer.withSpan(span)) { + HTTP_REQUEST.accept(span, req); + SESSION_ID.accept(span, id); sessions.remove(id); return new HttpResponse(); } finally { - span.finish(); - tracer.scopeManager().activate(current); + span.end(); } } } diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/SessionMap.java b/java/server/src/org/openqa/selenium/grid/sessionmap/SessionMap.java index f11500cf12a45..a24b7a8a54aea 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/SessionMap.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/SessionMap.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.sessionmap; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.grid.data.Session; import org.openqa.selenium.json.Json; diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/config/BUILD.bazel b/java/server/src/org/openqa/selenium/grid/sessionmap/config/BUILD.bazel index 8e29578231e46..1393cc2487f00 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/config/BUILD.bazel +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/config/BUILD.bazel @@ -11,6 +11,6 @@ java_library( "//java/server/src/org/openqa/selenium/grid/config", "//java/server/src/org/openqa/selenium/grid/sessionmap", artifact("com.beust:jcommander"), - artifact("io.opentracing:opentracing-api"), + artifact("io.opentelemetry:opentelemetry-api"), ], ) diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/httpd/SessionMapServer.java b/java/server/src/org/openqa/selenium/grid/sessionmap/httpd/SessionMapServer.java index 3bd35b2c92fd4..e6db972dba307 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/httpd/SessionMapServer.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/httpd/SessionMapServer.java @@ -22,7 +22,7 @@ import com.google.auto.service.AutoService; import com.google.common.collect.ImmutableMap; import com.google.common.net.MediaType; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.BuildInfo; import org.openqa.selenium.cli.CliCommand; import org.openqa.selenium.events.EventBus; diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/local/LocalSessionMap.java b/java/server/src/org/openqa/selenium/grid/sessionmap/local/LocalSessionMap.java index 0f98c0453026c..c65671e852b03 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/local/LocalSessionMap.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/local/LocalSessionMap.java @@ -17,7 +17,7 @@ package org.openqa.selenium.grid.sessionmap.local; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.events.EventBus; import org.openqa.selenium.grid.config.Config; diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMap.java b/java/server/src/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMap.java index afbf6efb26d79..f6a1f604122d8 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMap.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMap.java @@ -23,7 +23,7 @@ import io.lettuce.core.RedisURI; import io.lettuce.core.api.StatefulRedisConnection; import io.lettuce.core.api.sync.RedisCommands; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.NoSuchSessionException; diff --git a/java/server/src/org/openqa/selenium/grid/sessionmap/remote/RemoteSessionMap.java b/java/server/src/org/openqa/selenium/grid/sessionmap/remote/RemoteSessionMap.java index 8d6360a366782..413786961968a 100644 --- a/java/server/src/org/openqa/selenium/grid/sessionmap/remote/RemoteSessionMap.java +++ b/java/server/src/org/openqa/selenium/grid/sessionmap/remote/RemoteSessionMap.java @@ -17,8 +17,8 @@ package org.openqa.selenium.grid.sessionmap.remote; -import io.opentracing.Span; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.NoSuchSessionException; import org.openqa.selenium.grid.config.Config; import org.openqa.selenium.grid.data.Session; @@ -108,7 +108,7 @@ public void remove(SessionId id) { } private T makeRequest(HttpRequest request, Type typeOfT) { - Span activeSpan = tracer.scopeManager().activeSpan(); + Span activeSpan = tracer.getCurrentSpan(); HttpTracing.inject(tracer, activeSpan, request); HttpResponse response = client.execute(request); diff --git a/java/server/src/org/openqa/selenium/grid/web/ProtocolConverter.java b/java/server/src/org/openqa/selenium/grid/web/ProtocolConverter.java index 52e18c025ff1e..7bbabe9635a54 100644 --- a/java/server/src/org/openqa/selenium/grid/web/ProtocolConverter.java +++ b/java/server/src/org/openqa/selenium/grid/web/ProtocolConverter.java @@ -22,10 +22,9 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.net.MediaType; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.tag.Tags; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.json.Json; import org.openqa.selenium.remote.Command; import org.openqa.selenium.remote.CommandCodec; @@ -55,6 +54,7 @@ import static org.openqa.selenium.remote.Dialect.W3C; import static org.openqa.selenium.remote.http.Contents.bytes; import static org.openqa.selenium.remote.http.Contents.string; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; public class ProtocolConverter implements HttpHandler { @@ -105,15 +105,11 @@ public ProtocolConverter( @Override public HttpResponse execute(HttpRequest req) throws UncheckedIOException { - Span previousSpan = tracer.scopeManager().activeSpan(); - SpanContext parent = HttpTracing.extract(tracer, req); - Span span = tracer.buildSpan("protocol_converter").asChildOf(parent).start(); - try { - tracer.scopeManager().activate(span); - + Span span = newSpanAsChildOf(tracer, req, "protocol_converter").startSpan(); + try (Scope scope = tracer.withSpan(span)) { Command command = downstream.decode(req); - span.setTag("session.id", String.valueOf(command.getSessionId())); - span.setTag("command.name", command.getName()); + span.setAttribute("session.id", String.valueOf(command.getSessionId())); + span.setAttribute("command.name", command.getName()); // Massage the webelements @SuppressWarnings("unchecked") @@ -127,8 +123,8 @@ public HttpResponse execute(HttpRequest req) throws UncheckedIOException { HttpTracing.inject(tracer, span, request); HttpResponse res = makeRequest(request); - span.setTag(Tags.HTTP_STATUS, res.getStatus()); - span.setTag(Tags.ERROR, !res.isSuccessful()); + span.setAttribute("http.status", res.getStatus()); + span.setAttribute("error", !res.isSuccessful()); HttpResponse toReturn; if (DriverCommand.NEW_SESSION.equals(command.getName()) && res.getStatus() == HTTP_OK) { @@ -146,8 +142,7 @@ public HttpResponse execute(HttpRequest req) throws UncheckedIOException { return toReturn; } finally { - span.finish(); - tracer.scopeManager().activate(previousSpan); + span.end(); } } diff --git a/java/server/src/org/openqa/selenium/grid/web/ReverseProxyHandler.java b/java/server/src/org/openqa/selenium/grid/web/ReverseProxyHandler.java index 5bdcb5334844e..8a4cf9ab58f32 100644 --- a/java/server/src/org/openqa/selenium/grid/web/ReverseProxyHandler.java +++ b/java/server/src/org/openqa/selenium/grid/web/ReverseProxyHandler.java @@ -18,20 +18,20 @@ package org.openqa.selenium.grid.web; import com.google.common.collect.ImmutableSet; -import io.opentracing.Span; -import io.opentracing.SpanContext; -import io.opentracing.Tracer; -import io.opentracing.tag.Tags; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.remote.http.HttpClient; import org.openqa.selenium.remote.http.HttpHandler; import org.openqa.selenium.remote.http.HttpRequest; import org.openqa.selenium.remote.http.HttpResponse; -import org.openqa.selenium.remote.tracing.HttpTracing; import java.io.UncheckedIOException; import java.util.Objects; import java.util.logging.Logger; +import static org.openqa.selenium.remote.tracing.HttpTracing.newSpanAsChildOf; + public class ReverseProxyHandler implements HttpHandler { private final static Logger LOG = Logger.getLogger(ReverseProxyHandler.class.getName()); @@ -58,14 +58,11 @@ public ReverseProxyHandler(Tracer tracer, HttpClient httpClient) { @Override public HttpResponse execute(HttpRequest req) throws UncheckedIOException { - Span previous = tracer.scopeManager().activeSpan(); - SpanContext parent = HttpTracing.extract(tracer, req); - Span span = tracer.buildSpan("reverse_proxy").asChildOf(parent).start(); - try { - tracer.scopeManager().activate(span); + Span span = newSpanAsChildOf(tracer, req, "reverse_proxy").startSpan(); - span.setTag(Tags.HTTP_METHOD, req.getMethod().toString()); - span.setTag(Tags.HTTP_URL, req.getUri()); + try (Scope scope = tracer.withSpan(span)) { + span.setAttribute("http.method", req.getMethod().toString()); + span.setAttribute("http.url", req.getUri()); HttpRequest toUpstream = new HttpRequest(req.getMethod(), req.getUri()); @@ -90,7 +87,7 @@ public HttpResponse execute(HttpRequest req) throws UncheckedIOException { toUpstream.setContent(req.getContent()); HttpResponse resp = upstream.execute(toUpstream); - span.setTag(Tags.HTTP_STATUS, resp.getStatus()); + span.setAttribute("http.status", resp.getStatus()); // clear response defaults. resp.removeHeader("Date"); @@ -100,8 +97,7 @@ public HttpResponse execute(HttpRequest req) throws UncheckedIOException { return resp; } finally { - span.finish(); - tracer.scopeManager().activate(previous); + span.end(); } } } diff --git a/java/server/src/org/openqa/selenium/remote/server/ActiveSessionFactory.java b/java/server/src/org/openqa/selenium/remote/server/ActiveSessionFactory.java index 634ab423be597..37387fa877bc0 100644 --- a/java/server/src/org/openqa/selenium/remote/server/ActiveSessionFactory.java +++ b/java/server/src/org/openqa/selenium/remote/server/ActiveSessionFactory.java @@ -20,7 +20,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import io.opentracing.Tracer; +import io.opentelemetry.trace.Tracer; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.WebDriver; diff --git a/java/server/test/com/thoughtworks/selenium/webdriven/BUILD.bazel b/java/server/test/com/thoughtworks/selenium/webdriven/BUILD.bazel index e3d0a519cc566..a9f3f375379a3 100644 --- a/java/server/test/com/thoughtworks/selenium/webdriven/BUILD.bazel +++ b/java/server/test/com/thoughtworks/selenium/webdriven/BUILD.bazel @@ -18,7 +18,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/remote/server", "//java/server/src/org/openqa/selenium/grid/config", "//java/server/src/org/openqa/selenium/jre/server", - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("junit:junit"), ], ) diff --git a/java/server/test/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandlerTest.java b/java/server/test/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandlerTest.java index 1091a099bfd10..bee37dc715251 100644 --- a/java/server/test/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandlerTest.java +++ b/java/server/test/com/thoughtworks/selenium/webdriven/WebDriverBackedSeleniumHandlerTest.java @@ -18,35 +18,31 @@ package com.thoughtworks.selenium.webdriven; -import static java.util.concurrent.TimeUnit.MINUTES; -import static org.junit.Assert.assertTrue; -import static org.openqa.selenium.remote.http.Route.combine; -import static org.openqa.selenium.testing.Safely.safelyCall; - import com.thoughtworks.selenium.DefaultSelenium; import com.thoughtworks.selenium.Selenium; - -import io.opentracing.noop.NoopTracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.openqa.selenium.environment.webserver.JreAppServer; -import org.openqa.selenium.grid.config.MapConfig; -import org.openqa.selenium.grid.server.BaseServerOptions; -import org.openqa.selenium.grid.server.Server; -import org.openqa.selenium.jre.server.JreServer; -import org.openqa.selenium.testing.Pages; import org.openqa.selenium.environment.GlobalTestEnvironment; import org.openqa.selenium.environment.InProcessTestEnvironment; import org.openqa.selenium.environment.TestEnvironment; import org.openqa.selenium.environment.webserver.AppServer; +import org.openqa.selenium.grid.config.MapConfig; +import org.openqa.selenium.grid.server.BaseServerOptions; +import org.openqa.selenium.grid.server.Server; +import org.openqa.selenium.jre.server.JreServer; import org.openqa.selenium.remote.server.ActiveSessions; +import org.openqa.selenium.testing.Pages; import java.net.MalformedURLException; -import java.net.URL; import java.util.Map; +import static java.util.concurrent.TimeUnit.MINUTES; +import static org.junit.Assert.assertTrue; +import static org.openqa.selenium.testing.Safely.safelyCall; + public class WebDriverBackedSeleniumHandlerTest { private Server server; @@ -56,7 +52,7 @@ public class WebDriverBackedSeleniumHandlerTest { @Before public void setUpServer() throws MalformedURLException { - NoopTracer tracer = NoopTracerFactory.create(); + Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); // Register the emulator ActiveSessions sessions = new ActiveSessions(3, MINUTES); diff --git a/java/server/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java b/java/server/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java index 40ce355c55072..8674859bbe414 100644 --- a/java/server/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java +++ b/java/server/test/org/openqa/selenium/grid/distributor/AddingNodesTest.java @@ -19,8 +19,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Capabilities; @@ -82,7 +82,7 @@ public class AddingNodesTest { @Before public void setUpDistributor() throws MalformedURLException { - tracer = NoopTracerFactory.create(); + tracer = OpenTelemetry.getTracerFactory().get("default"); bus = new GuavaEventBus(); handler = new CombinedHandler(); @@ -194,7 +194,7 @@ protected CustomNode( UUID nodeId, URI uri, Function factory) { - super(NoopTracerFactory.create(), nodeId, uri); + super(OpenTelemetry.getTracerFactory().get("default"), nodeId, uri); this.bus = bus; this.factory = Objects.requireNonNull(factory); diff --git a/java/server/test/org/openqa/selenium/grid/distributor/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/distributor/BUILD.bazel index a88561fba644f..23bdff927c3ce 100644 --- a/java/server/test/org/openqa/selenium/grid/distributor/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/distributor/BUILD.bazel @@ -23,7 +23,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/grid/web", "//java/server/test/org/openqa/selenium/grid/testing", artifact("com.google.guava:guava"), - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("junit:junit"), artifact("org.assertj:assertj-core"), ], diff --git a/java/server/test/org/openqa/selenium/grid/distributor/DistributorTest.java b/java/server/test/org/openqa/selenium/grid/distributor/DistributorTest.java index bdbc3e98be990..da4df78132b60 100644 --- a/java/server/test/org/openqa/selenium/grid/distributor/DistributorTest.java +++ b/java/server/test/org/openqa/selenium/grid/distributor/DistributorTest.java @@ -19,8 +19,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -90,7 +90,7 @@ public class DistributorTest { @Before public void setUp() { - tracer = NoopTracerFactory.create(); + tracer = OpenTelemetry.getTracerFactory().get("default"); bus = new GuavaEventBus(); clientFactory = HttpClient.Factory.createDefault(); LocalSessionMap sessions = new LocalSessionMap(tracer, bus); diff --git a/java/server/test/org/openqa/selenium/grid/distributor/local/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/distributor/local/BUILD.bazel index b912e09dfb7aa..c8753efb0adb8 100644 --- a/java/server/test/org/openqa/selenium/grid/distributor/local/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/distributor/local/BUILD.bazel @@ -17,7 +17,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/grid/sessionmap/local", "//java/server/test/org/openqa/selenium/grid/testing", artifact("com.google.guava:guava"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("org.assertj:assertj-core"), - artifact("io.opentracing:opentracing-noop"), ], ) diff --git a/java/server/test/org/openqa/selenium/grid/distributor/local/LocalDistributorTest.java b/java/server/test/org/openqa/selenium/grid/distributor/local/LocalDistributorTest.java index 4e4fb441796b1..eabb6d57135c9 100644 --- a/java/server/test/org/openqa/selenium/grid/distributor/local/LocalDistributorTest.java +++ b/java/server/test/org/openqa/selenium/grid/distributor/local/LocalDistributorTest.java @@ -17,8 +17,8 @@ package org.openqa.selenium.grid.distributor.local; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Capabilities; @@ -63,7 +63,7 @@ public class LocalDistributorTest { @Before public void setUp() throws URISyntaxException { - tracer = NoopTracerFactory.create(); + tracer = OpenTelemetry.getTracerFactory().get("default"); bus = new GuavaEventBus(); clientFactory = HttpClient.Factory.createDefault(); diff --git a/java/server/test/org/openqa/selenium/grid/node/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/node/BUILD.bazel index dbf8c1141b04e..a40c888fca5f0 100644 --- a/java/server/test/org/openqa/selenium/grid/node/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/node/BUILD.bazel @@ -18,7 +18,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/grid/web", "//java/server/test/org/openqa/selenium/grid/testing", artifact("com.google.guava:guava"), - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("junit:junit"), artifact("org.assertj:assertj-core"), ], diff --git a/java/server/test/org/openqa/selenium/grid/node/NodeTest.java b/java/server/test/org/openqa/selenium/grid/node/NodeTest.java index f4214ed11e754..162c2040a710a 100644 --- a/java/server/test/org/openqa/selenium/grid/node/NodeTest.java +++ b/java/server/test/org/openqa/selenium/grid/node/NodeTest.java @@ -19,8 +19,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Capabilities; @@ -76,7 +76,7 @@ public class NodeTest { @Before public void setUp() throws URISyntaxException { - tracer = NoopTracerFactory.create(); + tracer = OpenTelemetry.getTracerFactory().get("default"); bus = new GuavaEventBus(); clientFactory = HttpClient.Factory.createDefault(); diff --git a/java/server/test/org/openqa/selenium/grid/node/local/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/node/local/BUILD.bazel index 795d239746c41..8150425975f77 100644 --- a/java/server/test/org/openqa/selenium/grid/node/local/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/node/local/BUILD.bazel @@ -14,7 +14,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/grid/node/local", "//java/server/test/org/openqa/selenium/grid/testing", artifact("com.google.guava:guava"), - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("junit:junit"), artifact("org.assertj:assertj-core"), ], diff --git a/java/server/test/org/openqa/selenium/grid/node/local/CreateSessionTest.java b/java/server/test/org/openqa/selenium/grid/node/local/CreateSessionTest.java index c8d6e38764a09..fbed3620023a3 100644 --- a/java/server/test/org/openqa/selenium/grid/node/local/CreateSessionTest.java +++ b/java/server/test/org/openqa/selenium/grid/node/local/CreateSessionTest.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; import org.junit.Test; import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; @@ -63,7 +63,7 @@ public void shouldAcceptAW3CPayload() throws URISyntaxException { URI uri = new URI("http://example.com"); Node node = LocalNode.builder( - NoopTracerFactory.create(), + OpenTelemetry.getTracerFactory().get("default"), new GuavaEventBus(), HttpClient.Factory.createDefault(), uri, @@ -114,7 +114,7 @@ public void ifOnlyJWPPayloadSentResponseShouldBeJWPOnlyIfJWPConfigured() URI uri = new URI("http://example.com"); Node node = LocalNode.builder( - NoopTracerFactory.create(), + OpenTelemetry.getTracerFactory().get("default"), new GuavaEventBus(), HttpClient.Factory.createDefault(), uri, @@ -157,7 +157,7 @@ public void shouldPreferUsingTheW3CProtocol() throws URISyntaxException { URI uri = new URI("http://example.com"); Node node = LocalNode.builder( - NoopTracerFactory.create(), + OpenTelemetry.getTracerFactory().get("default"), new GuavaEventBus(), HttpClient.Factory.createDefault(), uri, diff --git a/java/server/test/org/openqa/selenium/grid/router/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/router/BUILD.bazel index 67d0579626dff..56c4d82a7fffd 100644 --- a/java/server/test/org/openqa/selenium/grid/router/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/router/BUILD.bazel @@ -31,7 +31,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/netty/server", "//java/server/test/org/openqa/selenium/grid/testing", artifact("com.google.guava:guava"), - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("junit:junit"), artifact("org.assertj:assertj-core"), artifact("org.zeromq:jeromq"), diff --git a/java/server/test/org/openqa/selenium/grid/router/EndToEndTest.java b/java/server/test/org/openqa/selenium/grid/router/EndToEndTest.java index d02c7724e2d5a..9af5bb42e31f3 100644 --- a/java/server/test/org/openqa/selenium/grid/router/EndToEndTest.java +++ b/java/server/test/org/openqa/selenium/grid/router/EndToEndTest.java @@ -19,9 +19,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -65,7 +64,6 @@ import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; -import java.security.cert.CertificateException; import java.util.Collection; import java.util.Map; import java.util.UUID; @@ -83,8 +81,6 @@ import static org.openqa.selenium.remote.http.HttpMethod.GET; import static org.openqa.selenium.remote.http.HttpMethod.POST; -import javax.net.ssl.SSLException; - @RunWith(Parameterized.class) public class EndToEndTest { @@ -97,7 +93,7 @@ public static Collection> buildGrids() { () -> { try { return createRemotes(); - } catch (CertificateException | SSLException | URISyntaxException e) { + } catch (URISyntaxException e) { throw new RuntimeException(e); } }, @@ -124,8 +120,8 @@ public void setFields() { this.clientFactory = (HttpClient.Factory) raw[1]; } - private static Object[] createInMemory() throws CertificateException, MalformedURLException, SSLException, URISyntaxException { - Tracer tracer = NoopTracerFactory.create(); + private static Object[] createInMemory() throws MalformedURLException, URISyntaxException { + Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); EventBus bus = ZeroMqEventBus.create( new ZContext(), "inproc://end-to-end-pub", @@ -159,8 +155,8 @@ private static Object[] createInMemory() throws CertificateException, MalformedU return new Object[] { server, clientFactory }; } - private static Object[] createRemotes() throws URISyntaxException, SSLException, CertificateException { - Tracer tracer = NoopTracerFactory.create(); + private static Object[] createRemotes() throws URISyntaxException { + Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); EventBus bus = ZeroMqEventBus.create( new ZContext(), "tcp://localhost:" + PortProber.findFreePort(), @@ -212,7 +208,7 @@ private static Object[] createRemotes() throws URISyntaxException, SSLException, return new Object[] { routerServer, clientFactory }; } - private static Server createServer(HttpHandler handler) throws CertificateException, SSLException{ + private static Server createServer(HttpHandler handler) { int port = PortProber.findFreePort(); return new NettyServer( new BaseServerOptions( diff --git a/java/server/test/org/openqa/selenium/grid/router/RouterTest.java b/java/server/test/org/openqa/selenium/grid/router/RouterTest.java index d774e262fe40b..4489876edcce1 100644 --- a/java/server/test/org/openqa/selenium/grid/router/RouterTest.java +++ b/java/server/test/org/openqa/selenium/grid/router/RouterTest.java @@ -17,8 +17,8 @@ package org.openqa.selenium.grid.router; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Capabilities; @@ -64,7 +64,7 @@ public class RouterTest { @Before public void setUp() { - tracer = NoopTracerFactory.create(); + tracer = OpenTelemetry.getTracerFactory().get("default"); bus = new GuavaEventBus(); handler = new CombinedHandler(); diff --git a/java/server/test/org/openqa/selenium/grid/sessionmap/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/sessionmap/BUILD.bazel index 20d84af9195d0..b949ce14c6351 100644 --- a/java/server/test/org/openqa/selenium/grid/sessionmap/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/sessionmap/BUILD.bazel @@ -16,7 +16,7 @@ java_test_suite( "//java/server/src/org/openqa/selenium/grid/sessionmap/remote", "//java/server/test/org/openqa/selenium/grid/testing", artifact("junit:junit"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("org.assertj:assertj-core"), - artifact("io.opentracing:opentracing-noop"), ], ) diff --git a/java/server/test/org/openqa/selenium/grid/sessionmap/SessionMapTest.java b/java/server/test/org/openqa/selenium/grid/sessionmap/SessionMapTest.java index f1a58ad9215d5..c94745ab3f02f 100644 --- a/java/server/test/org/openqa/selenium/grid/sessionmap/SessionMapTest.java +++ b/java/server/test/org/openqa/selenium/grid/sessionmap/SessionMapTest.java @@ -17,8 +17,8 @@ package org.openqa.selenium.grid.sessionmap; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.ImmutableCapabilities; @@ -65,7 +65,7 @@ public void setUp() throws URISyntaxException { new URI("http://localhost:1234"), new ImmutableCapabilities()); - Tracer tracer = NoopTracerFactory.create(); + Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); bus = new GuavaEventBus(); local = new LocalSessionMap(tracer, bus); diff --git a/java/server/test/org/openqa/selenium/grid/sessionmap/redis/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/sessionmap/redis/BUILD.bazel index aef2e2a82b4bc..c5e49f3dfc456 100644 --- a/java/server/test/org/openqa/selenium/grid/sessionmap/redis/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/sessionmap/redis/BUILD.bazel @@ -9,8 +9,7 @@ java_test_suite( "//java/client/src/org/openqa/selenium/remote", "//java/client/test/org/openqa/selenium/testing:test-base", "//java/server/src/org/openqa/selenium/grid/sessionmap/redis", - artifact("io.opentracing:opentracing-api"), - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), artifact("it.ozimov:embedded-redis"), artifact("junit:junit"), artifact("org.assertj:assertj-core"), diff --git a/java/server/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java b/java/server/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java index e0596b18fc62c..50cd3bef4a20a 100644 --- a/java/server/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java +++ b/java/server/test/org/openqa/selenium/grid/sessionmap/redis/RedisBackedSessionMapTest.java @@ -17,8 +17,8 @@ package org.openqa.selenium.grid.sessionmap.redis; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -41,7 +41,7 @@ public class RedisBackedSessionMapTest { private static RedisServer server; - private static Tracer tracer = NoopTracerFactory.create(); + private static Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); private static URI uri; @BeforeClass diff --git a/java/server/test/org/openqa/selenium/grid/web/BUILD.bazel b/java/server/test/org/openqa/selenium/grid/web/BUILD.bazel index 288fb8ae29fc3..bdf5e885004ae 100644 --- a/java/server/test/org/openqa/selenium/grid/web/BUILD.bazel +++ b/java/server/test/org/openqa/selenium/grid/web/BUILD.bazel @@ -17,6 +17,6 @@ java_test_suite( artifact("junit:junit"), artifact("org.assertj:assertj-core"), artifact("org.mockito:mockito-core"), - artifact("io.opentracing:opentracing-noop"), + artifact("io.opentelemetry:opentelemetry-api"), ], ) diff --git a/java/server/test/org/openqa/selenium/grid/web/ProtocolConverterTest.java b/java/server/test/org/openqa/selenium/grid/web/ProtocolConverterTest.java index 124e0a8a97535..f833646b953cd 100644 --- a/java/server/test/org/openqa/selenium/grid/web/ProtocolConverterTest.java +++ b/java/server/test/org/openqa/selenium/grid/web/ProtocolConverterTest.java @@ -21,8 +21,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.net.MediaType; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.Test; import org.mockito.Mockito; import org.openqa.selenium.WebDriverException; @@ -65,7 +65,7 @@ public class ProtocolConverterTest { private final Json json = new Json(); - private final Tracer tracer = NoopTracerFactory.create(); + private final Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); @Test public void shouldRoundTripASimpleCommand() throws IOException { diff --git a/java/server/test/org/openqa/selenium/grid/web/ReverseProxyHandlerTest.java b/java/server/test/org/openqa/selenium/grid/web/ReverseProxyHandlerTest.java index 90bdd92b8edaa..cfed3bcc1b805 100644 --- a/java/server/test/org/openqa/selenium/grid/web/ReverseProxyHandlerTest.java +++ b/java/server/test/org/openqa/selenium/grid/web/ReverseProxyHandlerTest.java @@ -20,8 +20,8 @@ import com.google.common.io.ByteStreams; import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpServer; -import io.opentracing.Tracer; -import io.opentracing.noop.NoopTracerFactory; +import io.opentelemetry.OpenTelemetry; +import io.opentelemetry.trace.Tracer; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -49,7 +49,7 @@ public class ReverseProxyHandlerTest { private Server server; - private Tracer tracer = NoopTracerFactory.create(); + private Tracer tracer = OpenTelemetry.getTracerFactory().get("default"); private HttpClient.Factory factory = HttpClient.Factory.createDefault(); @Before