Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 62 additions & 7 deletions dd-java-agent-ittests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>com.datadoghq</groupId>
<artifactId>dd-trace-java</artifactId>
<version>0.0.7-SNAPSHOT</version>
<version>0.0.8-SNAPSHOT</version>
</parent>

<artifactId>dd-java-agent-ittests</artifactId>
Expand All @@ -15,7 +15,7 @@


<properties>
<dd-trace.version>0.0.7-SNAPSHOT</dd-trace.version>
<dd-trace.version>0.0.8-SNAPSHOT</dd-trace.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -94,7 +94,7 @@
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.132</version>
<version>1.11.119</version>
<scope>test</scope>
<exclusions>
<exclusion>
Expand All @@ -120,6 +120,22 @@
<scope>test</scope>
</dependency>


<!-- Cassandra BD -->
<!--<dependency>-->
<!--<groupId>com.datastax.cassandra</groupId>-->
<!--<artifactId>cassandra-driver-core</artifactId>-->
<!--<version>3.2.0</version>-->
<!--<scope>test</scope>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>org.cassandraunit</groupId>-->
<!--<artifactId>cassandra-unit</artifactId>-->
<!--<version>3.1.3.2</version>-->
<!--<scope>test</scope>-->
<!--</dependency>-->


</dependencies>
<build>
<plugins>
Expand All @@ -141,17 +157,56 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<includes>
<include>*Test.java</include>
</includes>
<!--<includes>-->
<!--<include>*Test.java</include>-->
<!--</includes>-->
<excludes>
<exclude>*Test.java</exclude>
</excludes>
<!-- <forkCount>1</forkCount> -->
<!-- <reuseForks>false</reuseForks> -->
<argLine>
-javaagent:${M2_REPO}/com/datadoghq/dd-java-agent/${project.version}/dd-java-agent-${project.version}.jar
-javaagent:${M2_REPO}/com/datadoghq/dd-java-agent/${project.version}/dd-java-agent-${project.version}.jar -Dorg.jboss.byteman.verbose
</argLine>
<!-- <workingDirectory>target/FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory> -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<!-- <exclude>ch.qos.logback:*</exclude> -->
<!-- <exclude>org.slf4j:*</exclude> -->
</excludes>
</artifactSet>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>otarules.btm</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Agent-Class>io.opentracing.contrib.agent.AnnotationsTracingAgent</Agent-Class>
<Premain-Class>io.opentracing.contrib.agent.AnnotationsTracingAgent
</Premain-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
<Boot-Class-Path>./${project.artifactId}.jar</Boot-Class-Path>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

import org.junit.Before;

import io.opentracing.mock.MockTracer;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.writer.ListWriter;

import io.opentracing.util.GlobalTracer;

public class AAgentIntegration {

protected static MockTracer tracer = new MockTracer();
protected static ListWriter writer = new ListWriter();
protected static DDTracer tracer = new DDTracer(writer);

@Before
public void beforeTest() throws Exception {
Expand All @@ -16,7 +19,7 @@ public void beforeTest() throws Exception {
}catch(Exception e){
//DO NOTHING IF ALREADY REGISTERED
}
tracer.reset();
writer.start();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,16 @@
public class AWSInstrumentationTest {


@Test
public void test() {

// Build AWS client with TracingRequestHandler e.g.
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.withRegion(Regions.US_EAST_1);
builder.build();

assertThat(builder.getRequestHandlers()).isNotNull();
assertThat(builder.getRequestHandlers().size()).isEqualTo(1);
assertThat(builder.getRequestHandlers().get(0).getClass()).isEqualTo(TracingRequestHandler.class);
}


public static void main(String[] args) {
new AWSInstrumentationTest().test();
}
@Test
public void test() {

// Build AWS client with TracingRequestHandler e.g.
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.withRegion(Regions.US_EAST_1);
builder.build();

assertThat(builder.getRequestHandlers()).isNotNull();
assertThat(builder.getRequestHandlers().size()).isEqualTo(1);
assertThat(builder.getRequestHandlers().get(0).getClass()).isEqualTo(TracingRequestHandler.class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public void test() throws Exception{
result.append(line);
}

assertThat(tracer.finishedSpans().size()).isEqualTo(2);
assertThat(writer.firstTrace().size()).isEqualTo(2);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
//package com.datadoghq.trace.instrument;
//
//import com.datastax.driver.core.Cluster;
//import com.datastax.driver.core.Session;
//import org.apache.cassandra.exceptions.ConfigurationException;
//import org.apache.thrift.transport.TTransportException;
//import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
//import org.junit.After;
//import org.junit.Before;
//import org.junit.Test;
//
//import java.io.IOException;
//import java.util.concurrent.ExecutionException;
//
//import static org.assertj.core.api.Assertions.assertThat;
//
///**
// * Created by gpolaert on 6/2/17.
// */
//public class CassandraIntegrationTest {
//
//
// @Before
// public void start() throws InterruptedException, TTransportException, ConfigurationException, IOException {
// EmbeddedCassandraServerHelper.startEmbeddedCassandra(20000L);
// }
//
// @After
// public void stop() {
// EmbeddedCassandraServerHelper.cleanEmbeddedCassandra();
// }
//
//
// @Test
// public void testNewSessionSync() throws ClassNotFoundException {
// Cluster cluster = EmbeddedCassandraServerHelper.getCluster();
// Session session = cluster.newSession();
// assertThat(session).isInstanceOf(Class.forName("io.opentracing.contrib.cassandra.TracingSession"));
//
//
// }
//
// @Test
// public void testNewSessionAsync() throws ClassNotFoundException, ExecutionException, InterruptedException {
// Cluster cluster = EmbeddedCassandraServerHelper.getCluster();
// Session session = cluster.connectAsync().get();
// assertThat(session).isInstanceOf(Class.forName("io.opentracing.contrib.cassandra.TracingSession"));
//
//
// }
//}
Original file line number Diff line number Diff line change
Expand Up @@ -19,35 +19,31 @@ public void testAnnotations() {
//Test single span in new trace
SayTracedHello.sayHello();

assertThat(tracer.finishedSpans().size()).isEqualTo(1);
assertThat(tracer.finishedSpans().get(0).operationName()).isEqualTo("SAY_HELLO");
assertThat(tracer.finishedSpans().get(0).tags().get("service-name")).isEqualTo("test");
assertThat(writer.firstTrace().size()).isEqualTo(1);
assertThat(writer.firstTrace().get(0).getOperationName()).isEqualTo("SAY_HELLO");
assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test");

tracer.reset();
writer.start();

//Test new trace with 2 children spans
SayTracedHello.sayHELLOsayHA();
assertThat(tracer.finishedSpans().size()).isEqualTo(3);
assertThat(tracer.finishedSpans().get(0).operationName()).isEqualTo("SAY_HELLO");
assertThat(tracer.finishedSpans().get(0).tags().get("service-name")).isEqualTo("test");
assertThat(writer.firstTrace().size()).isEqualTo(3);
long parentId = writer.firstTrace().get(0).context().getTraceId();

long traceId = tracer.finishedSpans().get(0).context().traceId();
long parentId = tracer.finishedSpans().get(0).parentId();
assertThat(writer.firstTrace().get(0).getOperationName()).isEqualTo("NEW_TRACE");
assertThat(writer.firstTrace().get(0).getParentId()).isEqualTo(0);//ROOT / no parent
assertThat(writer.firstTrace().get(0).context().getParentId()).isEqualTo(0);
assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test2");

assertThat(tracer.finishedSpans().get(1).operationName()).isEqualTo("SAY_HA");
assertThat(tracer.finishedSpans().get(1).parentId()).isEqualTo(parentId);
assertThat(tracer.finishedSpans().get(1).context().traceId()).isEqualTo(traceId);
assertThat(tracer.finishedSpans().get(1).tags().get("span-type")).isEqualTo("DB");
assertThat(tracer.finishedSpans().get(1).tags().get("service-name")).isEqualTo("test");
assertThat(writer.firstTrace().get(1).getOperationName()).isEqualTo("SAY_HELLO");
assertThat(writer.firstTrace().get(1).getServiceName()).isEqualTo("test");
assertThat(writer.firstTrace().get(1).getParentId()).isEqualTo(parentId);

assertThat(tracer.finishedSpans().get(2).operationName()).isEqualTo("NEW_TRACE");
assertThat(tracer.finishedSpans().get(2).parentId()).isEqualTo(0);//ROOT / no parent
assertThat(tracer.finishedSpans().get(2).context().traceId()).isEqualTo(traceId);
assertThat(tracer.finishedSpans().get(2).tags().get("service-name")).isEqualTo("test2");
assertThat(writer.firstTrace().get(2).getOperationName()).isEqualTo("SAY_HA");
assertThat(writer.firstTrace().get(2).getParentId()).isEqualTo(parentId);
assertThat(writer.firstTrace().get(2).context().getSpanType()).isEqualTo("DB");


System.out.println(tracer.finishedSpans());
tracer.reset();
writer.start();
}

}
5 changes: 3 additions & 2 deletions dd-java-agent/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,10 @@ Modern web application frameworks such as Dropwizard or Spring Boot are automati
### Databases
| DB | Versions | Comments |
| ------------- |:-------------:| ----- |
|Spring JDBC| 4.x | Please check the following [JDBC instrumentation](#jdbc-instrumentation) section |
|Hibernate| 5.x | Please check the following [JDBC instrumentation](#jdbc-instrumentation) section |
| Spring JDBC| 4.x | Please check the following [JDBC instrumentation](#jdbc-instrumentation) section |
| Hibernate| 5.x | Please check the following [JDBC instrumentation](#jdbc-instrumentation) section |
| MongoDB | 3.x | Intercepts all the calls from the MongoDB client |
| Cassandra | 3.2.x | Intercepts all the calls from the Cassandra client |

#### JDBC instrumentation

Expand Down
39 changes: 29 additions & 10 deletions dd-java-agent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>com.datadoghq</groupId>
<artifactId>dd-trace-java</artifactId>
<version>0.0.7-SNAPSHOT</version>
<version>0.0.8-SNAPSHOT</version>
</parent>

<artifactId>dd-java-agent</artifactId>
Expand All @@ -16,16 +16,16 @@

<properties>
<!-- Datadog versions -->
<dd-trace.version>0.0.7-SNAPSHOT</dd-trace.version>
<dd-trace.version>0.0.8-SNAPSHOT</dd-trace.version>
<!-- Opentracing versions -->
<opentracing.version>0.22.0</opentracing.version>
<ot.agent.version>0.0.12</ot.agent.version>
<ot.contrib.webservlet.version>0.0.8</ot.contrib.webservlet.version>
<ot.contrib.mongo.version>0.0.1</ot.contrib.mongo.version>
<ot.contrib.okhttp.version>0.0.4</ot.contrib.okhttp.version>
<ot.contrib.jdbc.version>0.0.1</ot.contrib.jdbc.version>
<ot.contrib.aws.version>0.0.1</ot.contrib.aws.version>
<ot.contrib.httpclient.version>0.0.1</ot.contrib.httpclient.version>
<ot.agent.version>0.1.0</ot.agent.version>
<ot.contrib.webservlet.version>0.0.9</ot.contrib.webservlet.version>
<ot.contrib.mongo.version>0.0.2</ot.contrib.mongo.version>
<ot.contrib.okhttp.version>0.0.5</ot.contrib.okhttp.version>
<ot.contrib.jdbc.version>0.0.2</ot.contrib.jdbc.version>
<ot.contrib.aws.version>0.0.2</ot.contrib.aws.version>
<ot.contrib.httpclient.version>0.0.2</ot.contrib.httpclient.version>
<ot.contrib.cassandra.version>0.0.2</ot.contrib.cassandra.version>
<!-- Others versions -->
<java.version>1.7</java.version>
</properties>
Expand Down Expand Up @@ -124,6 +124,25 @@
</exclusions>
</dependency>

<!-- Cassandra instrumentation -->
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-cassandra-driver</artifactId>
<version>${ot.contrib.cassandra.version}</version>
<exclusions>
<exclusion>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.2.0</version>
<scope>provided</scope>
</dependency>

<!-- Apache HTTP instrumentation -->
<dependency>
<groupId>io.opentracing.contrib</groupId>
Expand Down
Loading