From 736c70ffe0147653a772d6172d93c207c0734752 Mon Sep 17 00:00:00 2001 From: Pontus Rydin Date: Thu, 16 Jan 2020 22:36:32 -0500 Subject: [PATCH] Refactored spymemcached (#67) * Refactored spymemcached * Fixed formatting issues * Fixed formatting in an accidentally changed file Co-authored-by: Trask Stalnaker --- .../BulkGetCompletionListener.java | 4 +-- .../spymemcached/CompletionListener.java | 25 +++++++++---------- .../spymemcached/GetCompletionListener.java | 4 +-- .../spymemcached/MemcacheClientDecorator.java | 8 ++++-- .../OperationCompletionListener.java | 4 +-- .../spymemcached/SyncCompletionListener.java | 4 +-- 6 files changed, 26 insertions(+), 23 deletions(-) diff --git a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/BulkGetCompletionListener.java b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/BulkGetCompletionListener.java index 0a5a5e4c19..79c38c52af 100644 --- a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/BulkGetCompletionListener.java +++ b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/BulkGetCompletionListener.java @@ -1,6 +1,6 @@ package io.opentelemetry.auto.instrumentation.spymemcached; -import io.opentelemetry.auto.instrumentation.api.AgentSpan; +import io.opentelemetry.trace.Span; import java.util.concurrent.ExecutionException; import net.spy.memcached.MemcachedConnection; import net.spy.memcached.internal.BulkGetFuture; @@ -18,7 +18,7 @@ public class BulkGetCompletionListener extends CompletionListener future) + protected void processResult(final Span span, final BulkGetFuture future) throws ExecutionException, InterruptedException { /* Note: for now we do not have an affective way of representing results of bulk operations, diff --git a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/CompletionListener.java b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/CompletionListener.java index 9c3c4b011c..c9057092f4 100644 --- a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/CompletionListener.java +++ b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/CompletionListener.java @@ -1,11 +1,10 @@ package io.opentelemetry.auto.instrumentation.spymemcached; -import static io.opentelemetry.auto.instrumentation.api.AgentTracer.activateSpan; -import static io.opentelemetry.auto.instrumentation.api.AgentTracer.startSpan; import static io.opentelemetry.auto.instrumentation.spymemcached.MemcacheClientDecorator.DECORATE; +import static io.opentelemetry.auto.instrumentation.spymemcached.MemcacheClientDecorator.TRACER; -import io.opentelemetry.auto.instrumentation.api.AgentScope; -import io.opentelemetry.auto.instrumentation.api.AgentSpan; +import io.opentelemetry.context.Scope; +import io.opentelemetry.trace.Span; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import lombok.extern.slf4j.Slf4j; @@ -26,12 +25,12 @@ public abstract class CompletionListener { static final String MISS = "miss"; private final MemcachedConnection connection; - private final AgentSpan span; + private final Span span; public CompletionListener(final MemcachedConnection connection, final String methodName) { this.connection = connection; - span = startSpan(OPERATION_NAME); - try (final AgentScope scope = activateSpan(span, false)) { + span = TRACER.spanBuilder(OPERATION_NAME).startSpan(); + try (final Scope scope = TRACER.withSpan(span)) { DECORATE.afterStart(span); DECORATE.onConnection(span, connection); DECORATE.onOperation(span, methodName); @@ -39,7 +38,7 @@ public abstract class CompletionListener { } protected void closeAsyncSpan(final T future) { - try (final AgentScope scope = activateSpan(span, false)) { + try (final Scope scope = TRACER.withSpan(span)) { try { processResult(span, future); } catch (final CancellationException e) { @@ -61,23 +60,23 @@ public abstract class CompletionListener { DECORATE.onError(span, e); } finally { DECORATE.beforeFinish(span); - span.finish(); + span.end(); } } } protected void closeSyncSpan(final Throwable thrown) { - try (final AgentScope scope = activateSpan(span, false)) { + try (final Scope scope = TRACER.withSpan(span)) { DECORATE.onError(span, thrown); DECORATE.beforeFinish(span); - span.finish(); + span.end(); } } - protected abstract void processResult(AgentSpan span, T future) + protected abstract void processResult(Span span, T future) throws ExecutionException, InterruptedException; - protected void setResultTag(final AgentSpan span, final boolean hit) { + protected void setResultTag(final Span span, final boolean hit) { span.setAttribute(MEMCACHED_RESULT, hit ? HIT : MISS); } } diff --git a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/GetCompletionListener.java b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/GetCompletionListener.java index c4b93c59c7..74fb4d573e 100644 --- a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/GetCompletionListener.java +++ b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/GetCompletionListener.java @@ -1,6 +1,6 @@ package io.opentelemetry.auto.instrumentation.spymemcached; -import io.opentelemetry.auto.instrumentation.api.AgentSpan; +import io.opentelemetry.trace.Span; import java.util.concurrent.ExecutionException; import net.spy.memcached.MemcachedConnection; import net.spy.memcached.internal.GetFuture; @@ -17,7 +17,7 @@ public class GetCompletionListener extends CompletionListener> } @Override - protected void processResult(final AgentSpan span, final GetFuture future) + protected void processResult(final Span span, final GetFuture future) throws ExecutionException, InterruptedException { final Object result = future.get(); setResultTag(span, result != null); diff --git a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/MemcacheClientDecorator.java b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/MemcacheClientDecorator.java index f76e117a70..140a6f41e6 100644 --- a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/MemcacheClientDecorator.java +++ b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/MemcacheClientDecorator.java @@ -1,14 +1,18 @@ package io.opentelemetry.auto.instrumentation.spymemcached; +import io.opentelemetry.OpenTelemetry; import io.opentelemetry.auto.api.MoreTags; import io.opentelemetry.auto.api.SpanTypes; import io.opentelemetry.auto.decorator.DatabaseClientDecorator; -import io.opentelemetry.auto.instrumentation.api.AgentSpan; +import io.opentelemetry.trace.Span; +import io.opentelemetry.trace.Tracer; import net.spy.memcached.MemcachedConnection; public class MemcacheClientDecorator extends DatabaseClientDecorator { public static final MemcacheClientDecorator DECORATE = new MemcacheClientDecorator(); + public static final Tracer TRACER = OpenTelemetry.getTracerFactory().get("io.opentelemetry.auto"); + @Override protected String[] instrumentationNames() { return new String[] {"spymemcached"}; @@ -44,7 +48,7 @@ public class MemcacheClientDecorator extends DatabaseClientDecorator future) + protected void processResult(final Span span, final OperationFuture future) throws ExecutionException, InterruptedException { future.get(); } diff --git a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/SyncCompletionListener.java b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/SyncCompletionListener.java index ec1df5311a..afa2fa0736 100644 --- a/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/SyncCompletionListener.java +++ b/java-agent/instrumentation/spymemcached-2.12/src/main/java/io/opentelemetry/auto/instrumentation/spymemcached/SyncCompletionListener.java @@ -1,6 +1,6 @@ package io.opentelemetry.auto.instrumentation.spymemcached; -import io.opentelemetry.auto.instrumentation.api.AgentSpan; +import io.opentelemetry.trace.Span; import java.util.concurrent.ExecutionException; import lombok.extern.slf4j.Slf4j; import net.spy.memcached.MemcachedConnection; @@ -12,7 +12,7 @@ public class SyncCompletionListener extends CompletionListener { } @Override - protected void processResult(final AgentSpan span, final Void future) + protected void processResult(final Span span, final Void future) throws ExecutionException, InterruptedException { log.error("processResult was called on SyncCompletionListener. This should never happen. "); }