add version to rediscala instrumentation name, update referenced dd class names, use random port for test

This commit is contained in:
Richard Startin 2020-04-20 22:54:21 +01:00
parent f56abf2f04
commit a969c15040
5 changed files with 31 additions and 26 deletions

View File

@ -1,10 +1,16 @@
package datadog.trace.instrumentation.rediscala; package datadog.trace.instrumentation.rediscala;
import datadog.trace.agent.decorator.DatabaseClientDecorator;
import datadog.trace.api.DDSpanTypes; import datadog.trace.api.DDSpanTypes;
import datadog.trace.bootstrap.instrumentation.decorator.DatabaseClientDecorator;
import redis.RedisCommand; import redis.RedisCommand;
import redis.protocol.RedisReply;
public class RediscalaClientDecorator
extends DatabaseClientDecorator<RedisCommand<? extends RedisReply, ?>> {
private static final String SERVICE_NAME = "redis";
private static final String COMPONENT_NAME = SERVICE_NAME + "-command";
public class RediscalaClientDecorator extends DatabaseClientDecorator<RedisCommand> {
public static final RediscalaClientDecorator DECORATE = new RediscalaClientDecorator(); public static final RediscalaClientDecorator DECORATE = new RediscalaClientDecorator();
@Override @Override
@ -14,12 +20,12 @@ public class RediscalaClientDecorator extends DatabaseClientDecorator<RedisComma
@Override @Override
protected String service() { protected String service() {
return "redis"; return SERVICE_NAME;
} }
@Override @Override
protected String component() { protected String component() {
return "redis-command"; return COMPONENT_NAME;
} }
@Override @Override
@ -33,12 +39,12 @@ public class RediscalaClientDecorator extends DatabaseClientDecorator<RedisComma
} }
@Override @Override
protected String dbUser(final RedisCommand session) { protected String dbUser(final RedisCommand<? extends RedisReply, ?> session) {
return null; return null;
} }
@Override @Override
protected String dbInstance(final RedisCommand session) { protected String dbInstance(final RedisCommand<? extends RedisReply, ?> session) {
return null; return null;
} }
} }

View File

@ -1,9 +1,9 @@
package datadog.trace.instrumentation.rediscala; package datadog.trace.instrumentation.rediscala;
import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.safeHasSuperType;
import static datadog.trace.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
import static datadog.trace.instrumentation.api.AgentTracer.activeScope; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
import static datadog.trace.instrumentation.api.AgentTracer.startSpan; import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
import static datadog.trace.instrumentation.rediscala.RediscalaClientDecorator.DECORATE; import static datadog.trace.instrumentation.rediscala.RediscalaClientDecorator.DECORATE;
import static java.util.Collections.singletonMap; import static java.util.Collections.singletonMap;
import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -14,9 +14,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.context.TraceScope; import datadog.trace.context.TraceScope;
import datadog.trace.instrumentation.api.AgentScope;
import datadog.trace.instrumentation.api.AgentSpan;
import java.util.Map; import java.util.Map;
import net.bytebuddy.asm.Advice; import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.method.MethodDescription;
@ -31,9 +31,6 @@ import scala.util.Try;
@AutoService(Instrumenter.class) @AutoService(Instrumenter.class)
public final class RediscalaInstrumentation extends Instrumenter.Default { public final class RediscalaInstrumentation extends Instrumenter.Default {
private static final String SERVICE_NAME = "redis";
private static final String COMPONENT_NAME = SERVICE_NAME + "-command";
public RediscalaInstrumentation() { public RediscalaInstrumentation() {
super("rediscala", "redis"); super("rediscala", "redis");
} }
@ -50,9 +47,9 @@ public final class RediscalaInstrumentation extends Instrumenter.Default {
public String[] helperClassNames() { public String[] helperClassNames() {
return new String[] { return new String[] {
RediscalaInstrumentation.class.getName() + "$OnCompleteHandler", RediscalaInstrumentation.class.getName() + "$OnCompleteHandler",
"datadog.trace.agent.decorator.BaseDecorator", "datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator",
"datadog.trace.agent.decorator.ClientDecorator", "datadog.trace.bootstrap.instrumentation.decorator.ClientDecorator",
"datadog.trace.agent.decorator.DatabaseClientDecorator", "datadog.trace.bootstrap.instrumentation.decorator.DatabaseClientDecorator",
packageName + ".RediscalaClientDecorator", packageName + ".RediscalaClientDecorator",
}; };
} }

View File

@ -1,8 +1,9 @@
import akka.actor.ActorSystem import akka.actor.ActorSystem
import datadog.trace.agent.test.AgentTestRunner import datadog.trace.agent.test.AgentTestRunner
import datadog.trace.agent.test.utils.PortUtils
import datadog.trace.api.Config import datadog.trace.api.Config
import datadog.trace.api.DDSpanTypes import datadog.trace.api.DDSpanTypes
import datadog.trace.instrumentation.api.Tags import datadog.trace.bootstrap.instrumentation.api.Tags
import redis.ByteStringSerializerLowPriority import redis.ByteStringSerializerLowPriority
import redis.ByteStringDeserializerDefault import redis.ByteStringDeserializerDefault
import redis.RedisClient import redis.RedisClient
@ -15,7 +16,8 @@ import spock.lang.Shared
class RediscalaClientTest extends AgentTestRunner { class RediscalaClientTest extends AgentTestRunner {
public static final int PORT = 6399 @Shared
int port = PortUtils.randomOpenPort()
@Shared @Shared
RedisServer redisServer = RedisServer.builder() RedisServer redisServer = RedisServer.builder()
@ -23,7 +25,7 @@ class RediscalaClientTest extends AgentTestRunner {
.setting("bind 127.0.0.1") .setting("bind 127.0.0.1")
// set max memory to avoid problems in CI // set max memory to avoid problems in CI
.setting("maxmemory 128M") .setting("maxmemory 128M")
.port(PORT).build() .port(port).build()
@Shared @Shared
ActorSystem system ActorSystem system
@ -34,7 +36,7 @@ class RediscalaClientTest extends AgentTestRunner {
def setupSpec() { def setupSpec() {
system = ActorSystem.create() system = ActorSystem.create()
redisClient = new RedisClient("localhost", redisClient = new RedisClient("localhost",
PORT, port,
Option.apply(null), Option.apply(null),
Option.apply(null), Option.apply(null),
"RedisClient", "RedisClient",
@ -81,8 +83,8 @@ class RediscalaClientTest extends AgentTestRunner {
spanType DDSpanTypes.REDIS spanType DDSpanTypes.REDIS
tags { tags {
"$Tags.COMPONENT" "redis-command" "$Tags.COMPONENT" "redis-command"
"$Tags.DB_TYPE" "redis"
"$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT "$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT
"$Tags.DB_TYPE" "redis"
defaultTags() defaultTags()
} }
} }
@ -113,8 +115,8 @@ class RediscalaClientTest extends AgentTestRunner {
spanType DDSpanTypes.REDIS spanType DDSpanTypes.REDIS
tags { tags {
"$Tags.COMPONENT" "redis-command" "$Tags.COMPONENT" "redis-command"
"$Tags.DB_TYPE" "redis"
"$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT "$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT
"$Tags.DB_TYPE" "redis"
defaultTags() defaultTags()
} }
} }
@ -127,8 +129,8 @@ class RediscalaClientTest extends AgentTestRunner {
spanType DDSpanTypes.REDIS spanType DDSpanTypes.REDIS
tags { tags {
"$Tags.COMPONENT" "redis-command" "$Tags.COMPONENT" "redis-command"
"$Tags.DB_TYPE" "redis"
"$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT "$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT
"$Tags.DB_TYPE" "redis"
defaultTags() defaultTags()
} }
} }

View File

@ -126,7 +126,7 @@ include ':dd-java-agent:instrumentation:play-ws-2'
include ':dd-java-agent:instrumentation:play-ws-2.1' include ':dd-java-agent:instrumentation:play-ws-2.1'
include ':dd-java-agent:instrumentation:rabbitmq-amqp-2.7' include ':dd-java-agent:instrumentation:rabbitmq-amqp-2.7'
include ':dd-java-agent:instrumentation:ratpack-1.4' include ':dd-java-agent:instrumentation:ratpack-1.4'
include ':dd-java-agent:instrumentation:rediscala' include ':dd-java-agent:instrumentation:rediscala-1.8.1'
include ':dd-java-agent:instrumentation:reactor-core-3.1' include ':dd-java-agent:instrumentation:reactor-core-3.1'
include ':dd-java-agent:instrumentation:rmi' include ':dd-java-agent:instrumentation:rmi'
include ':dd-java-agent:instrumentation:rxjava-1' include ':dd-java-agent:instrumentation:rxjava-1'