Merge pull request #184 from DataDog/tyler/move-stuff

Lots of renaming
This commit is contained in:
Tyler Benson 2018-01-09 10:14:11 +10:00 committed by GitHub
commit 5b4c965c5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
200 changed files with 651 additions and 617 deletions

View File

@ -33,7 +33,7 @@ function save_libs () {
save_reports dd-java-agent save_reports dd-java-agent
save_reports dd-java-agent/tooling save_reports dd-java-agent/tooling
# Save reports for all instrumentation projects # Save reports for all instrumentation projects
for integration_path in dd-java-agent/integrations/*; do for integration_path in dd-java-agent/instrumentation/*; do
save_reports $integration_path save_reports $integration_path
done done
save_reports dd-java-agent-ittests save_reports dd-java-agent-ittests

6
.gitignore vendored
View File

@ -11,7 +11,7 @@ target
/.gradle /.gradle
*/.gradle */.gradle
**/build/ **/build/
dd-trace-examples/**/build/ examples/**/build/
# Eclipse # # Eclipse #
########### ###########
@ -49,9 +49,9 @@ Thumbs.db
/bin /bin
/out /out
*/out */out
dd-java-agent/integrations/*/out dd-java-agent/instrumentation/*/out
dd-java-agent/benchmark-integration/perf-test-settings.rc dd-java-agent/benchmark-integration/perf-test-settings.rc
dd-trace-examples/*/out examples/*/out
derby.log derby.log
!dd-java-agent/benchmark/releases/*.jar !dd-java-agent/benchmark/releases/*.jar

View File

@ -17,7 +17,7 @@ These three things help you instrument Java applications:
**Note:** dd-java-agent is considered experimental. Some integrations may not activate in all cases. Additional manual instrumentation using the [Opentracing API](https://github.com/opentracing/opentracing-java) is strongly encouraged. **Note:** dd-java-agent is considered experimental. Some integrations may not activate in all cases. Additional manual instrumentation using the [Opentracing API](https://github.com/opentracing/opentracing-java) is strongly encouraged.
**[Datadog Tracer](https://github.com/DataDog/dd-trace-java/tree/master/dd-trace)**: an OpenTracing-compatible library that lets you trace any piece of your Java code, not just whole methods. **[Datadog Tracer](https://github.com/DataDog/dd-trace-java/tree/master/dd-trace-ot)**: an OpenTracing-compatible library that lets you trace any piece of your Java code, not just whole methods.
**[Datadog APM Agent](https://github.com/DataDog/datadog-trace-agent)**: a (non-Java) service that runs on your application servers, accepting trace data from the Datadog Java Agent and/or Datadog Tracer and sending it to Datadog. (The APM Agent is not part of this repo; it's the same Agent to which all Datadog tracers—Go, Python, etc—send data) **[Datadog APM Agent](https://github.com/DataDog/datadog-trace-agent)**: a (non-Java) service that runs on your application servers, accepting trace data from the Datadog Java Agent and/or Datadog Tracer and sending it to Datadog. (The APM Agent is not part of this repo; it's the same Agent to which all Datadog tracers—Go, Python, etc—send data)
@ -91,12 +91,12 @@ The Java Agent lets you add a `@Trace` annotation to any method to measure its e
#### Setup #### Setup
Add the `dd-trace-annotations` dependency to your project. For Maven, add this to pom.xml: Add the `dd-trace-api` dependency to your project. For Maven, add this to pom.xml:
```xml ```xml
<dependency> <dependency>
<groupId>com.datadoghq</groupId> <groupId>com.datadoghq</groupId>
<artifactId>dd-trace-annotations</artifactId> <artifactId>dd-trace-api</artifactId>
<version>{version}</version> <version>{version}</version>
</dependency> </dependency>
``` ```
@ -104,7 +104,7 @@ Add the `dd-trace-annotations` dependency to your project. For Maven, add this t
For gradle, add: For gradle, add:
```gradle ```gradle
compile group: 'com.datadoghq', name: 'dd-trace-annotations', version: {version} compile group: 'com.datadoghq', name: 'dd-trace-api', version: {version}
``` ```
The Java Agent lets you use `@Trace` not just for `com.example.myproject`, but also for any application whose name _begins_ like that, e.g. `com.example.myproject.foobar`. If you're tempted to list something like `["com", "io"]` to avoid having to fuss with this configuration as you add new projects, be careful; providing `@Trace`-ability to too many applications could hurt your package's build time. The Java Agent lets you use `@Trace` not just for `com.example.myproject`, but also for any application whose name _begins_ like that, e.g. `com.example.myproject.foobar`. If you're tempted to list something like `["com", "io"]` to avoid having to fuss with this configuration as you add new projects, be careful; providing `@Trace`-ability to too many applications could hurt your package's build time.
@ -133,7 +133,7 @@ When you don't pass an `operationName`, the Java Agent sets it to the method nam
### Manual Instrumentation ### Manual Instrumentation
You can use the Datadog Tracer (`dd-trace`) library to measure execution times for specific pieces of code. This lets you trace your application more precisely than you can with the Java Agent alone. You can use the Datadog Tracer (`dd-trace-ot`) library to measure execution times for specific pieces of code. This lets you trace your application more precisely than you can with the Java Agent alone.
#### Setup #### Setup
@ -157,7 +157,7 @@ For Maven, add this to pom.xml:
<!-- Datadog Tracer (only needed if you do not use dd-java-agent) --> <!-- Datadog Tracer (only needed if you do not use dd-java-agent) -->
<dependency> <dependency>
<groupId>com.datadoghq</groupId> <groupId>com.datadoghq</groupId>
<artifactId>dd-trace</artifactId> <artifactId>dd-trace-ot</artifactId>
<version>${dd-trace-java.version}</version> <version>${dd-trace-java.version}</version>
</dependency> </dependency>
``` ```
@ -167,14 +167,14 @@ For gradle, add:
``` ```
compile group: 'io.opentracing', name: 'opentracing-api', version: "0.30.0" compile group: 'io.opentracing', name: 'opentracing-api', version: "0.30.0"
compile group: 'io.opentracing', name: 'opentracing-util', version: "0.30.0" compile group: 'io.opentracing', name: 'opentracing-util', version: "0.30.0"
compile group: 'com.datadoghq', name: 'dd-trace', version: "${dd-trace-java.version}" compile group: 'com.datadoghq', name: 'dd-trace-ot', version: "${dd-trace-java.version}"
``` ```
Configure your application using environment variables or system properties as discussed in the [config](#configuration) section. Configure your application using environment variables or system properties as discussed in the [config](#configuration) section.
#### Examples #### Examples
Rather than referencing classes directly from `dd-trace` (other than registering `DDTracer`), we strongly suggest using the [OpenTracing API](https://github.com/opentracing/opentracing-java). Rather than referencing classes directly from `dd-trace-ot` (other than registering `DDTracer`), we strongly suggest using the [OpenTracing API](https://github.com/opentracing/opentracing-java).
[Additional documentation on the api](docs/opentracing-api.md) is also available. [Additional documentation on the api](docs/opentracing-api.md) is also available.
Let's look at a simple example. Let's look at a simple example.
@ -230,9 +230,9 @@ public class Application {
io.opentracing.util.GlobalTracer.register(tracer); io.opentracing.util.GlobalTracer.register(tracer);
// OR from the API // OR from the API
Writer writer = new com.datadoghq.trace.writer.DDAgentWriter(); Writer writer = new datadog.trace.api.writer.DDAgentWriter();
Sampler sampler = new com.datadoghq.trace.sampling.AllSampler(); Sampler sampler = new datadog.trace.api.sampling.AllSampler();
Tracer tracer = new com.datadoghq.trace.DDTracer(writer, sampler); Tracer tracer = new datadog.opentracing.DDTracer(writer, sampler);
io.opentracing.util.GlobalTracer.register(tracer); io.opentracing.util.GlobalTracer.register(tracer);
// ... // ...
@ -242,7 +242,7 @@ public class Application {
## Further Reading ## Further Reading
- Browse the [example applications](dd-trace-examples) in this repository to see Java tracing in action - Browse the [example applications](examples) in this repository to see Java tracing in action
- Read [OpenTracing's documentation](https://github.com/opentracing/opentracing-java); feel free to use the Trace Java API to customize your instrumentation. - Read [OpenTracing's documentation](https://github.com/opentracing/opentracing-java); feel free to use the Trace Java API to customize your instrumentation.
- Brush up on [Datadog APM Terminology](https://docs.datadoghq.com/tracing/terminology/) - Brush up on [Datadog APM Terminology](https://docs.datadoghq.com/tracing/terminology/)
- Read the [Datadog APM FAQ](https://docs.datadoghq.com/tracing/faq/) - Read the [Datadog APM FAQ](https://docs.datadoghq.com/tracing/faq/)

View File

@ -6,12 +6,16 @@ evaluationDependsOn(':dd-java-agent:tooling')
compileTestJava.dependsOn tasks.getByPath(':dd-java-agent:tooling:testClasses') compileTestJava.dependsOn tasks.getByPath(':dd-java-agent:tooling:testClasses')
dependencies { dependencies {
testCompile project(':dd-trace-annotations') testCompile project(':dd-trace-api')
testCompile project(':dd-trace') testCompile project(':dd-trace-ot')
testCompile deps.opentracingMock testCompile deps.opentracingMock
testCompile project(':dd-java-agent:testing') testCompile(project(':dd-java-agent:testing')) {
// Otherwise this can bring in classes that aren't "shadowed"
// that conflicts with those that are which are in the agent.
transitive = false
}
testCompile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2' testCompile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2'
testCompile group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2' testCompile group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2'
@ -54,7 +58,7 @@ test {
} }
if (project.hasProperty("disableShadowRelocate") && disableShadowRelocate) { if (project.hasProperty("disableShadowRelocate") && disableShadowRelocate) {
exclude 'com/datadoghq/agent/ShadowPackageRenamingTest.class' exclude 'datadog/trace/agent/ShadowPackageRenamingTest.class'
} }
} }

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration package datadog.trace.agent.integration
import io.opentracing.ActiveSpan import io.opentracing.ActiveSpan
import io.opentracing.SpanContext import io.opentracing.SpanContext

View File

@ -1,10 +1,10 @@
package com.datadoghq.agent.integration.httpclient package datadog.trace.agent.integration.httpclient
import com.datadoghq.agent.integration.TestHttpServer import datadog.opentracing.DDBaseSpan
import com.datadoghq.trace.DDBaseSpan import datadog.opentracing.DDTracer
import com.datadoghq.trace.DDTracer import datadog.trace.agent.integration.TestHttpServer
import com.datadoghq.trace.writer.ListWriter import datadog.trace.agent.test.TestUtils
import dd.test.TestUtils import datadog.trace.common.writer.ListWriter
import io.opentracing.tag.Tags import io.opentracing.tag.Tags
import org.apache.http.HttpResponse import org.apache.http.HttpResponse
import org.apache.http.client.HttpClient import org.apache.http.client.HttpClient

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent.integration.jdbc package datadog.trace.agent.integration.jdbc
import com.datadoghq.trace.DDTracer import datadog.opentracing.DDTracer
import com.datadoghq.trace.writer.ListWriter import datadog.trace.agent.test.TestUtils
import dd.test.TestUtils import datadog.trace.common.writer.ListWriter
import org.apache.derby.jdbc.EmbeddedDriver import org.apache.derby.jdbc.EmbeddedDriver
import org.h2.Driver import org.h2.Driver
import org.hsqldb.jdbc.JDBCDriver import org.hsqldb.jdbc.JDBCDriver

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent.integration.servlet package datadog.trace.agent.integration.servlet
import com.datadoghq.trace.DDBaseSpan import datadog.opentracing.DDBaseSpan
import com.datadoghq.trace.DDTracer import datadog.opentracing.DDTracer
import com.datadoghq.trace.writer.ListWriter import datadog.trace.common.writer.ListWriter
import io.opentracing.util.GlobalTracer import io.opentracing.util.GlobalTracer
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -15,6 +15,7 @@ import spock.lang.Unroll
import java.lang.reflect.Field import java.lang.reflect.Field
import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
class JettyServletTest extends Specification { class JettyServletTest extends Specification {
@ -27,7 +28,7 @@ class JettyServletTest extends Specification {
@Override @Override
Response intercept(Interceptor.Chain chain) throws IOException { Response intercept(Interceptor.Chain chain) throws IOException {
def response = chain.proceed(chain.request()) def response = chain.proceed(chain.request())
JettyServletTest.latch.await() JettyServletTest.latch.await(10, TimeUnit.SECONDS) // don't block forever or test never fails.
return response return response
} }
}) })

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration.servlet package datadog.trace.agent.integration.servlet
import groovy.servlet.AbstractHttpServlet import groovy.servlet.AbstractHttpServlet

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent.integration.servlet package datadog.trace.agent.integration.servlet
import com.datadoghq.trace.DDTracer
import com.datadoghq.trace.writer.ListWriter
import com.google.common.io.Files import com.google.common.io.Files
import datadog.opentracing.DDTracer
import datadog.trace.common.writer.ListWriter
import io.opentracing.util.GlobalTracer import io.opentracing.util.GlobalTracer
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent; package datadog.trace.agent;
import static dd.test.TestUtils.createJarWithClasses; import static datadog.trace.agent.test.TestUtils.createJarWithClasses;
import com.datadoghq.trace.Trace; import datadog.trace.api.Trace;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import org.junit.Assert; import org.junit.Assert;
@ -13,17 +13,17 @@ public class ClassLoaderTest {
/** Assert that we can instrument classloaders which cannot resolve agent advice classes. */ /** Assert that we can instrument classloaders which cannot resolve agent advice classes. */
@Test @Test
public void instrumentClassLoadersWithoutAgentClasses() throws Exception { public void instrumentClassLoadersWithoutAgentClasses() throws Exception {
URL[] classpath = new URL[] {createJarWithClasses(ClassToInstrument.class, Trace.class)}; final URL[] classpath = new URL[] {createJarWithClasses(ClassToInstrument.class, Trace.class)};
URLClassLoader loader = new URLClassLoader(classpath, null); final URLClassLoader loader = new URLClassLoader(classpath, null);
try { try {
loader.loadClass("com.datadoghq.agent.TracingAgent"); loader.loadClass("datadog.agent.TracingAgent");
Assert.fail("loader should not see agent classes."); Assert.fail("loader should not see agent classes.");
} catch (ClassNotFoundException cnfe) { } catch (final ClassNotFoundException cnfe) {
// Good. loader can't see agent classes. // Good. loader can't see agent classes.
} }
Class<?> instrumentedClass = loader.loadClass(ClassToInstrument.class.getName()); final Class<?> instrumentedClass = loader.loadClass(ClassToInstrument.class.getName());
Assert.assertEquals( Assert.assertEquals(
"Class must be loaded by loader.", loader, instrumentedClass.getClassLoader()); "Class must be loaded by loader.", loader, instrumentedClass.getClassLoader());

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent; package datadog.trace.agent;
import com.google.common.collect.MapMaker; import com.google.common.collect.MapMaker;
import org.junit.Assert; import org.junit.Assert;
@ -8,14 +8,14 @@ public class ShadowPackageRenamingTest {
@Test @Test
public void agentDependenciesRenamed() throws Exception { public void agentDependenciesRenamed() throws Exception {
final Class<?> ddClass = final Class<?> ddClass =
ClassLoader.getSystemClassLoader().loadClass("com.datadoghq.agent.TracingAgent"); ClassLoader.getSystemClassLoader().loadClass("datadog.trace.agent.TracingAgent");
final String userGuava = final String userGuava =
MapMaker.class.getProtectionDomain().getCodeSource().getLocation().getFile(); MapMaker.class.getProtectionDomain().getCodeSource().getLocation().getFile();
final String agentGuavaDep = final String agentGuavaDep =
ddClass ddClass
.getClassLoader() .getClassLoader()
.loadClass("dd.deps." + MapMaker.class.getName()) .loadClass("datadog.trace.agent.deps.google.common.collect.MapMaker")
.getProtectionDomain() .getProtectionDomain()
.getCodeSource() .getCodeSource()
.getLocation() .getLocation()

View File

@ -1,13 +1,13 @@
package com.datadoghq.agent.instrumentation.annotation; package datadog.trace.agent.instrumentation.annotation;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import com.datadoghq.agent.test.SayTracedHello; import datadog.opentracing.DDBaseSpan;
import com.datadoghq.trace.DDBaseSpan; import datadog.opentracing.DDTracer;
import com.datadoghq.trace.DDTracer; import datadog.opentracing.decorators.ErrorFlag;
import com.datadoghq.trace.integration.ErrorFlag; import datadog.trace.agent.test.SayTracedHello;
import com.datadoghq.trace.writer.ListWriter; import datadog.trace.agent.test.TestUtils;
import dd.test.TestUtils; import datadog.trace.common.writer.ListWriter;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
@ -32,8 +32,7 @@ public class TraceAnnotationsTest {
SayTracedHello.sayHello(); SayTracedHello.sayHello();
assertThat(writer.firstTrace().size()).isEqualTo(1); assertThat(writer.firstTrace().size()).isEqualTo(1);
assertThat(writer.firstTrace().get(0).getOperationName()) assertThat(writer.firstTrace().get(0).getOperationName()).isEqualTo("SayTracedHello.sayHello");
.isEqualTo("com.datadoghq.agent.test.SayTracedHello.sayHello");
assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test"); assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test");
} }
@ -50,8 +49,7 @@ public class TraceAnnotationsTest {
assertThat(writer.firstTrace().get(0).context().getParentId()).isEqualTo(0); assertThat(writer.firstTrace().get(0).context().getParentId()).isEqualTo(0);
assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test2"); assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test2");
assertThat(writer.firstTrace().get(1).getOperationName()) assertThat(writer.firstTrace().get(1).getOperationName()).isEqualTo("SayTracedHello.sayHello");
.isEqualTo("com.datadoghq.agent.test.SayTracedHello.sayHello");
assertThat(writer.firstTrace().get(1).getServiceName()).isEqualTo("test"); assertThat(writer.firstTrace().get(1).getServiceName()).isEqualTo("test");
assertThat(writer.firstTrace().get(1).getParentId()).isEqualTo(parentId); assertThat(writer.firstTrace().get(1).getParentId()).isEqualTo(parentId);

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration; package datadog.trace.agent.integration;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@ -12,7 +12,7 @@ public class AWSInstrumentationTest {
public void test() { public void test() {
// Build AWS client with TracingRequestHandler e.g. // Build AWS client with TracingRequestHandler e.g.
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard(); final AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.withRegion(Regions.US_EAST_1); builder.withRegion(Regions.US_EAST_1);
builder.build(); builder.build();

View File

@ -1,17 +1,17 @@
package com.datadoghq.agent.integration; package datadog.trace.agent.integration;
import static com.datadoghq.agent.integration.MongoClientInstrumentationTest.MONGO_DB_NAME; import static datadog.trace.agent.integration.MongoClientInstrumentationTest.MONGO_DB_NAME;
import static com.datadoghq.agent.integration.MongoClientInstrumentationTest.MONGO_HOST; import static datadog.trace.agent.integration.MongoClientInstrumentationTest.MONGO_HOST;
import static com.datadoghq.agent.integration.MongoClientInstrumentationTest.MONGO_PORT; import static datadog.trace.agent.integration.MongoClientInstrumentationTest.MONGO_PORT;
import com.datadoghq.trace.DDBaseSpan;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.writer.ListWriter;
import com.mongodb.async.SingleResultCallback; import com.mongodb.async.SingleResultCallback;
import com.mongodb.async.client.MongoClient; import com.mongodb.async.client.MongoClient;
import com.mongodb.async.client.MongoClients; import com.mongodb.async.client.MongoClients;
import com.mongodb.async.client.MongoDatabase; import com.mongodb.async.client.MongoDatabase;
import dd.test.TestUtils; import datadog.opentracing.DDBaseSpan;
import datadog.opentracing.DDTracer;
import datadog.trace.agent.test.TestUtils;
import datadog.trace.common.writer.ListWriter;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;
import java.net.InetAddress; import java.net.InetAddress;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;

View File

@ -1,12 +1,12 @@
package com.datadoghq.agent.integration; package datadog.trace.agent.integration;
import com.datadoghq.trace.DDBaseSpan;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.writer.ListWriter;
import com.mongodb.MongoClient; import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoDatabase;
import dd.test.TestUtils; import datadog.opentracing.DDBaseSpan;
import datadog.opentracing.DDTracer;
import datadog.trace.agent.test.TestUtils;
import datadog.trace.common.writer.ListWriter;
import de.flapdoodle.embed.mongo.MongodExecutable; import de.flapdoodle.embed.mongo.MongodExecutable;
import de.flapdoodle.embed.mongo.MongodProcess; import de.flapdoodle.embed.mongo.MongodProcess;
import de.flapdoodle.embed.mongo.MongodStarter; import de.flapdoodle.embed.mongo.MongodStarter;

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration; package datadog.trace.agent.integration;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;

View File

@ -1,7 +1,7 @@
package com.datadoghq.agent.test; package datadog.trace.agent.test;
import com.datadoghq.trace.DDTags; import datadog.trace.api.DDTags;
import com.datadoghq.trace.Trace; import datadog.trace.api.Trace;
import io.opentracing.tag.StringTag; import io.opentracing.tag.StringTag;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;

View File

@ -1,9 +1,9 @@
package dd.perftest; package datadog.perftest;
public class Worker { public class Worker {
/** Simulate work for the give number of milliseconds. */ /** Simulate work for the give number of milliseconds. */
public static void doWork(long workTimeMS) { public static void doWork(final long workTimeMS) {
final long doneTimestamp = System.currentTimeMillis() + workTimeMS; final long doneTimestamp = System.currentTimeMillis() + workTimeMS;
while (System.currentTimeMillis() < doneTimestamp) { while (System.currentTimeMillis() < doneTimestamp) {
// busy-wait to simulate work // busy-wait to simulate work

View File

@ -1,6 +1,6 @@
package dd.perftest.jetty; package datadog.perftest.jetty;
import dd.perftest.Worker; import datadog.perftest.Worker;
import java.io.IOException; import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet; import javax.servlet.annotation.WebServlet;
@ -16,7 +16,7 @@ public class JettyPerftest {
private static final Server jettyServer = new Server(PORT); private static final Server jettyServer = new Server(PORT);
private static final ServletContextHandler servletContext = new ServletContextHandler(); private static final ServletContextHandler servletContext = new ServletContextHandler();
public static void main(String[] args) throws Exception { public static void main(final String[] args) throws Exception {
servletContext.addServlet(PerfServlet.class, PATH); servletContext.addServlet(PerfServlet.class, PATH);
jettyServer.setHandler(servletContext); jettyServer.setHandler(servletContext);
jettyServer.start(); jettyServer.start();
@ -24,11 +24,12 @@ public class JettyPerftest {
Runtime.getRuntime() Runtime.getRuntime()
.addShutdownHook( .addShutdownHook(
new Thread() { new Thread() {
@Override
public void run() { public void run() {
try { try {
jettyServer.stop(); jettyServer.stop();
jettyServer.destroy(); jettyServer.destroy();
} catch (Exception e) { } catch (final Exception e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} }
} }
@ -36,10 +37,9 @@ public class JettyPerftest {
} }
@WebServlet @WebServlet
@SuppressWarnings("serial")
public static class PerfServlet extends HttpServlet { public static class PerfServlet extends HttpServlet {
@Override @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) protected void doGet(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException { throws ServletException, IOException {
if (request.getParameter("error") != null) { if (request.getParameter("error") != null) {
throw new RuntimeException("some sync error"); throw new RuntimeException("some sync error");

View File

@ -5,7 +5,7 @@ plugins {
apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
jmh project(':dd-trace-annotations') jmh project(':dd-trace-api')
jmh group: 'net.bytebuddy', name: 'byte-buddy-agent', version: '1.7.6' jmh group: 'net.bytebuddy', name: 'byte-buddy-agent', version: '1.7.6'
// Add a bunch of dependencies so instrumentation is not disabled. // Add a bunch of dependencies so instrumentation is not disabled.

View File

@ -1 +1 @@
enableCustomAnnotationTracingOver: ["com.datadoghq.benchmark"] enableCustomAnnotationTracingOver: ["datadog.benchmark"]

View File

@ -1,5 +0,0 @@
package com.datadoghq.benchmark.classes;
public interface A {
void a();
}

View File

@ -1,7 +1,7 @@
package com.datadoghq.benchmark; package datadog.benchmark;
import com.datadoghq.benchmark.classes.TracedClass; import datadog.benchmark.classes.TracedClass;
import com.datadoghq.benchmark.classes.UntracedClass; import datadog.benchmark.classes.UntracedClass;
import java.lang.instrument.Instrumentation; import java.lang.instrument.Instrumentation;
import java.lang.instrument.UnmodifiableClassException; import java.lang.instrument.UnmodifiableClassException;
import java.lang.reflect.Field; import java.lang.reflect.Field;

View File

@ -0,0 +1,5 @@
package datadog.benchmark.classes;
public interface A {
void a();
}

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
public interface B extends A { public interface B extends A {
void b(); void b();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
public interface C extends B { public interface C extends B {
void c(); void c();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
public interface D extends C { public interface D extends C {
void d(); void d();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
public interface E extends D { public interface E extends D {
void e(); void e();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
public abstract class F implements E { public abstract class F implements E {
public abstract void f(); public abstract void f();

View File

@ -1,6 +1,6 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
import com.datadoghq.trace.Trace; import datadog.trace.api.Trace;
public class TracedClass extends UntracedClass { public class TracedClass extends UntracedClass {
@Trace @Trace

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes; package datadog.benchmark.classes;
public class UntracedClass extends F { public class UntracedClass extends F {
@Override @Override

View File

@ -1 +1 @@
enableCustomAnnotationTracingOver: ["com.datadoghq.benchmark"] enableCustomAnnotationTracingOver: ["datadog.benchmark"]

View File

@ -10,16 +10,16 @@ apply from: "${rootDir}/gradle/jacoco.gradle"
jacocoTestReport.dependsOn ':dd-java-agent-ittests:test' jacocoTestReport.dependsOn ':dd-java-agent-ittests:test'
whitelistedInstructionClasses += whitelistedBranchClasses += [ whitelistedInstructionClasses += whitelistedBranchClasses += [
'com.datadoghq.agent.*', 'datadog.agent.*',
'com.datadoghq.agent.integration.*', 'datadog.agent.decorators.*',
'io.opentracing.contrib.*', 'io.opentracing.contrib.*',
'dd.opentracing.contrib.*', 'dd.opentracing.contrib.*',
] ]
dependencies { dependencies {
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile project(':dd-trace-annotations') compile project(':dd-trace-api')
compile deps.bytebuddy compile deps.bytebuddy
@ -31,10 +31,10 @@ dependencies {
testCompile deps.opentracingMock testCompile deps.opentracingMock
} }
// add all subprojects under 'integrations' to the agent's dependencies // add all subprojects under 'instrumentation' to the agent's dependencies
Project java_agent_project = project Project java_agent_project = project
subprojects { subProj -> subprojects { subProj ->
if (subProj.getPath().startsWith(java_agent_project.getPath() + ':integrations:')) { if (subProj.getPath().startsWith(java_agent_project.getPath() + ':instrumentation:')) {
java_agent_project.dependencies { java_agent_project.dependencies {
compile(project(subProj.getPath())) compile(project(subProj.getPath()))
} }
@ -46,10 +46,9 @@ jar {
manifest { manifest {
attributes( attributes(
"Main-Class": "com.datadoghq.agent.DDJavaAgentInfo", "Main-Class": "datadog.trace.agent.DDJavaAgentInfo",
// I don't think we want to define this since we can't really load after startup: "Agent-Class": "datadog.trace.agent.TracingAgent",
//"Agent-Class": "com.datadoghq.trace.agent.TracingAgent", "Premain-Class": "datadog.trace.agent.TracingAgent",
"Premain-Class": "com.datadoghq.agent.TracingAgent",
"Can-Redefine-Classes": true, "Can-Redefine-Classes": true,
"Can-Retransform-Classes": true, "Can-Retransform-Classes": true,
) )
@ -61,24 +60,26 @@ shadowJar {
mergeServiceFiles() // This triggers shadow to also apply the relocate rules below to the service files. mergeServiceFiles() // This triggers shadow to also apply the relocate rules below to the service files.
relocate 'org.slf4j', 'dd.slf4j' // Prevents conflict with other SLF4J instances. Important for premain. relocate 'org.slf4j', 'datadog.slf4j' // Prevents conflict with other SLF4J instances. Important for premain.
if (!project.hasProperty("disableShadowRelocate") || !disableShadowRelocate) { if (!project.hasProperty("disableShadowRelocate") || !disableShadowRelocate) {
// These need to be relocated to prevent conflicts in case the regular dd-trace is already on the classpath. // These need to be relocated to prevent conflicts in case the regular dd-trace is already on the classpath.
relocate('com.datadoghq.trace', 'com.datadoghq.agent.tracer') { relocate('datadog.trace.api', 'datadog.trace.agent.api') {
// We want to ensure to not miss if a user is using the annotation. // We want to ensure to not miss if a user is using the annotation.
exclude 'com.datadoghq.trace.Trace' exclude 'datadog.trace.api.Trace'
} }
relocate 'datadog.trace.common', 'datadog.trace.agent.common'
relocate 'datadog.opentracing', 'datadog.trace.agent.ot'
relocate 'io.opentracing.contrib', 'dd.opentracing.contrib' relocate 'io.opentracing.contrib', 'datadog.trace.agent.opentracing.contrib'
relocate 'org.yaml', 'dd.deps.org.yaml' relocate 'org.yaml', 'datadog.trace.agent.deps.yaml'
relocate 'org.msgpack', 'dd.deps.org.msgpack' relocate 'org.msgpack', 'datadog.trace.agent.deps.msgpack'
relocate 'com.fasterxml', 'dd.deps.com.fasterxml' relocate 'com.fasterxml', 'datadog.trace.agent.deps.fasterxml'
relocate 'net.bytebuddy', 'dd.deps.net.bytebuddy' relocate 'net.bytebuddy', 'datadog.trace.agent.deps.bytebuddy'
relocate('com.google', 'dd.deps.com.google') { relocate('com.google', 'datadog.trace.agent.deps.google') {
// This is used in the Cassandra Cluster.connectAsync signature so we can't relocate it. :fingers_crossed: // This is used in the Cassandra Cluster.connectAsync signature so we can't relocate it. :fingers_crossed:
exclude 'com.google.common.util.concurrent.ListenableFuture' exclude 'com.google.common.util.concurrent.ListenableFuture'
} }

View File

@ -27,7 +27,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3' compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3'
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,12 +1,13 @@
package dd.inst.apachehttpclient; package datadog.trace.instrumentation.apachehttpclient;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.*; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.named;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.agent.builder.AgentBuilder;
import net.bytebuddy.asm.Advice; import net.bytebuddy.asm.Advice;
@ -17,7 +18,7 @@ import org.apache.http.impl.execchain.ClientExecChain;
public class ApacheHttpClientInstrumentation implements Instrumenter { public class ApacheHttpClientInstrumentation implements Instrumenter {
@Override @Override
public AgentBuilder instrument(AgentBuilder agentBuilder) { public AgentBuilder instrument(final AgentBuilder agentBuilder) {
return agentBuilder return agentBuilder
.type( .type(
named("org.apache.http.impl.client.HttpClientBuilder"), named("org.apache.http.impl.client.HttpClientBuilder"),
@ -31,7 +32,9 @@ public class ApacheHttpClientInstrumentation implements Instrumenter {
"org.apache.http.client.protocol.HttpClientContext", "org.apache.http.client.protocol.HttpClientContext",
"org.apache.http.conn.routing.HttpRoute", "org.apache.http.conn.routing.HttpRoute",
"org.apache.http.impl.execchain.ClientExecChain")) "org.apache.http.impl.execchain.ClientExecChain"))
.transform(new HelperInjector("dd.inst.apachehttpclient.DDTracingClientExec")) .transform(
new HelperInjector(
"datadog.trace.instrumentation.apachehttpclient.DDTracingClientExec"))
.transform( .transform(
DDAdvice.create() DDAdvice.create()
.advice( .advice(

View File

@ -1,4 +1,4 @@
package dd.inst.apachehttpclient; package datadog.trace.instrumentation.apachehttpclient;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.Tracer; import io.opentracing.Tracer;

View File

@ -21,7 +21,7 @@ dependencies {
transitive = false transitive = false
} }
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.aws; package datadog.trace.instrumentation.aws;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
@ -8,9 +8,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.handlers.RequestHandler2; import com.amazonaws.handlers.RequestHandler2;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.contrib.aws.TracingRequestHandler; import io.opentracing.contrib.aws.TracingRequestHandler;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.util.Arrays; import java.util.Arrays;

View File

@ -37,7 +37,7 @@ dependencies {
transitive = false transitive = false
} }
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,13 +1,16 @@
package dd.inst.datastax.cassandra; package datadog.trace.instrumentation.datastax.cassandra;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.*; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.isPrivate;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datastax.driver.core.Session; import com.datastax.driver.core.Session;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.Tracer; import io.opentracing.Tracer;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
@ -17,7 +20,7 @@ import net.bytebuddy.asm.Advice;
@AutoService(Instrumenter.class) @AutoService(Instrumenter.class)
public class CassandraClientInstrumentation implements Instrumenter { public class CassandraClientInstrumentation implements Instrumenter {
@Override @Override
public AgentBuilder instrument(AgentBuilder agentBuilder) { public AgentBuilder instrument(final AgentBuilder agentBuilder) {
return agentBuilder return agentBuilder
.type( .type(
named("com.datastax.driver.core.Cluster$Manager"), named("com.datastax.driver.core.Cluster$Manager"),
@ -68,8 +71,8 @@ public class CassandraClientInstrumentation implements Instrumenter {
return; return;
} }
Class<?> clazz = Class.forName("io.opentracing.contrib.cassandra.TracingSession"); final Class<?> clazz = Class.forName("io.opentracing.contrib.cassandra.TracingSession");
Constructor<?> constructor = clazz.getDeclaredConstructor(Session.class, Tracer.class); final Constructor<?> constructor = clazz.getDeclaredConstructor(Session.class, Tracer.class);
constructor.setAccessible(true); constructor.setAccessible(true);
session = (Session) constructor.newInstance(session, GlobalTracer.get()); session = (Session) constructor.newInstance(session, GlobalTracer.get());
} }

View File

@ -1,8 +1,8 @@
import com.datadoghq.trace.DDBaseSpan
import com.datadoghq.trace.DDTracer
import com.datastax.driver.core.Cluster import com.datastax.driver.core.Cluster
import com.datastax.driver.core.Session import com.datastax.driver.core.Session
import dd.test.AgentTestRunner import datadog.opentracing.DDBaseSpan
import datadog.opentracing.DDTracer
import datadog.trace.agent.test.AgentTestRunner
import io.opentracing.tag.Tags import io.opentracing.tag.Tags
import org.cassandraunit.utils.EmbeddedCassandraServerHelper import org.cassandraunit.utils.EmbeddedCassandraServerHelper

View File

@ -1,7 +1,7 @@
apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,4 +1,4 @@
package dd.trace.instrumentation.jdbc; package datadog.trace.instrumentation.jdbc;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isConstructor; import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
@ -10,8 +10,8 @@ import static net.bytebuddy.matcher.ElementMatchers.returns;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.util.Map; import java.util.Map;

View File

@ -1,4 +1,4 @@
package dd.trace.instrumentation.jdbc; package datadog.trace.instrumentation.jdbc;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
@ -8,10 +8,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.NoopActiveSpanSource; import io.opentracing.NoopActiveSpanSource;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;

View File

@ -1,4 +1,4 @@
package dd.trace.instrumentation.jdbc; package datadog.trace.instrumentation.jdbc;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
@ -8,10 +8,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.NoopActiveSpanSource; import io.opentracing.NoopActiveSpanSource;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;

View File

@ -20,7 +20,7 @@ dependencies {
compile deps.opentracing compile deps.opentracing
compile deps.autoservice compile deps.autoservice
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
testCompile project(':dd-java-agent:testing') testCompile project(':dd-java-agent:testing')

View File

@ -1,4 +1,4 @@
package dd.inst.jms.util; package datadog.trace.instrumentation.jms.util;
import javax.jms.Destination; import javax.jms.Destination;
import javax.jms.Message; import javax.jms.Message;

View File

@ -1,4 +1,4 @@
package dd.inst.jms.util; package datadog.trace.instrumentation.jms.util;
import io.opentracing.propagation.TextMap; import io.opentracing.propagation.TextMap;
import java.util.Enumeration; import java.util.Enumeration;

View File

@ -1,7 +1,7 @@
package dd.inst.jms1; package datadog.trace.instrumentation.jms1;
import static dd.inst.jms.util.JmsUtil.toResourceName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,12 +9,12 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.Instrumenter;
import dd.trace.Instrumenter; import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;
@ -30,7 +30,9 @@ import net.bytebuddy.asm.Advice;
@AutoService(Instrumenter.class) @AutoService(Instrumenter.class)
public final class JMS1MessageConsumerInstrumentation implements Instrumenter { public final class JMS1MessageConsumerInstrumentation implements Instrumenter {
public static final HelperInjector JMS1_HELPER_INJECTOR = public static final HelperInjector JMS1_HELPER_INJECTOR =
new HelperInjector("dd.inst.jms.util.JmsUtil", "dd.inst.jms.util.MessagePropertyTextMap"); new HelperInjector(
"datadog.trace.instrumentation.jms.util.JmsUtil",
"datadog.trace.instrumentation.jms.util.MessagePropertyTextMap");
@Override @Override
public AgentBuilder instrument(final AgentBuilder agentBuilder) { public AgentBuilder instrument(final AgentBuilder agentBuilder) {

View File

@ -1,7 +1,7 @@
package dd.inst.jms1; package datadog.trace.instrumentation.jms1;
import static dd.inst.jms.util.JmsUtil.toResourceName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.Instrumenter;
import dd.trace.Instrumenter; import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;

View File

@ -1,7 +1,7 @@
package dd.inst.jms1; package datadog.trace.instrumentation.jms1;
import static dd.inst.jms.util.JmsUtil.toResourceName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.Instrumenter;
import dd.trace.Instrumenter; import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;

View File

@ -1,4 +1,4 @@
import dd.test.AgentTestRunner import datadog.trace.agent.test.AgentTestRunner
import org.apache.activemq.ActiveMQConnectionFactory import org.apache.activemq.ActiveMQConnectionFactory
import org.apache.activemq.ActiveMQMessageConsumer import org.apache.activemq.ActiveMQMessageConsumer
import org.apache.activemq.ActiveMQMessageProducer import org.apache.activemq.ActiveMQMessageProducer

View File

@ -15,7 +15,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
// use jms1 helpers // use jms1 helpers
compile(project(':dd-java-agent:integrations:jms-1')) { compile(project(':dd-java-agent:instrumentation:jms-1')) {
transitive = false transitive = false
} }
compileOnly group: 'javax.jms', name: 'javax.jms-api', version: '2.0.1' compileOnly group: 'javax.jms', name: 'javax.jms-api', version: '2.0.1'
@ -24,7 +24,7 @@ dependencies {
compile deps.opentracing compile deps.opentracing
compile deps.autoservice compile deps.autoservice
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
testCompile project(':dd-java-agent:testing') testCompile project(':dd-java-agent:testing')

View File

@ -1,7 +1,7 @@
package dd.inst.jms2; package datadog.trace.instrumentation.jms2;
import static dd.inst.jms.util.JmsUtil.toResourceName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,12 +9,12 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.Instrumenter;
import dd.trace.Instrumenter; import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;
@ -30,7 +30,9 @@ import net.bytebuddy.asm.Advice;
@AutoService(Instrumenter.class) @AutoService(Instrumenter.class)
public final class JMS2MessageConsumerInstrumentation implements Instrumenter { public final class JMS2MessageConsumerInstrumentation implements Instrumenter {
public static final HelperInjector JMS2_HELPER_INJECTOR = public static final HelperInjector JMS2_HELPER_INJECTOR =
new HelperInjector("dd.inst.jms.util.JmsUtil", "dd.inst.jms.util.MessagePropertyTextMap"); new HelperInjector(
"datadog.trace.instrumentation.jms.util.JmsUtil",
"datadog.trace.instrumentation.jms.util.MessagePropertyTextMap");
@Override @Override
public AgentBuilder instrument(final AgentBuilder agentBuilder) { public AgentBuilder instrument(final AgentBuilder agentBuilder) {

View File

@ -1,7 +1,7 @@
package dd.inst.jms2; package datadog.trace.instrumentation.jms2;
import static dd.inst.jms.util.JmsUtil.toResourceName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.Instrumenter;
import dd.trace.Instrumenter; import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;

View File

@ -1,7 +1,7 @@
package dd.inst.jms2; package datadog.trace.instrumentation.jms2;
import static dd.inst.jms.util.JmsUtil.toResourceName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.Instrumenter;
import dd.trace.Instrumenter; import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;

View File

@ -1,5 +1,5 @@
import dd.test.AgentTestRunner
import com.google.common.io.Files import com.google.common.io.Files
import datadog.trace.agent.test.AgentTestRunner
import org.hornetq.api.core.TransportConfiguration import org.hornetq.api.core.TransportConfiguration
import org.hornetq.api.core.client.HornetQClient import org.hornetq.api.core.client.HornetQClient
import org.hornetq.api.jms.HornetQJMSClient import org.hornetq.api.jms.HornetQJMSClient

View File

@ -15,7 +15,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
compileOnly group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2' compileOnly group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2'
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,10 +1,10 @@
package dd.inst.mongo; package datadog.trace.instrumentation.mongo;
import com.datadoghq.trace.DDTags;
import com.mongodb.event.CommandFailedEvent; import com.mongodb.event.CommandFailedEvent;
import com.mongodb.event.CommandListener; import com.mongodb.event.CommandListener;
import com.mongodb.event.CommandStartedEvent; import com.mongodb.event.CommandStartedEvent;
import com.mongodb.event.CommandSucceededEvent; import com.mongodb.event.CommandSucceededEvent;
import datadog.trace.api.DDTags;
import io.opentracing.Span; import io.opentracing.Span;
import io.opentracing.Tracer; import io.opentracing.Tracer;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;

View File

@ -1,4 +1,4 @@
package dd.inst.mongo; package datadog.trace.instrumentation.mongo;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod; import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -8,9 +8,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import com.mongodb.MongoClientOptions; import com.mongodb.MongoClientOptions;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.Collections; import java.util.Collections;
@ -21,7 +21,7 @@ import net.bytebuddy.description.type.TypeDescription;
@AutoService(Instrumenter.class) @AutoService(Instrumenter.class)
public final class MongoClientInstrumentation implements Instrumenter { public final class MongoClientInstrumentation implements Instrumenter {
public static final HelperInjector MONGO_HELPER_INJECTOR = public static final HelperInjector MONGO_HELPER_INJECTOR =
new HelperInjector("dd.inst.mongo.DDTracingCommandListener"); new HelperInjector("datadog.trace.instrumentation.mongo.DDTracingCommandListener");
@Override @Override
public AgentBuilder instrument(final AgentBuilder agentBuilder) { public AgentBuilder instrument(final AgentBuilder agentBuilder) {

View File

@ -1,14 +1,14 @@
package dd.inst.mongo; package datadog.trace.instrumentation.mongo;
import static org.assertj.core.api.Java6Assertions.assertThat; import static org.assertj.core.api.Java6Assertions.assertThat;
import com.datadoghq.trace.DDSpan;
import com.datadoghq.trace.DDTracer;
import com.mongodb.ServerAddress; import com.mongodb.ServerAddress;
import com.mongodb.connection.ClusterId; import com.mongodb.connection.ClusterId;
import com.mongodb.connection.ConnectionDescription; import com.mongodb.connection.ConnectionDescription;
import com.mongodb.connection.ServerId; import com.mongodb.connection.ServerId;
import com.mongodb.event.CommandStartedEvent; import com.mongodb.event.CommandStartedEvent;
import datadog.opentracing.DDSpan;
import datadog.opentracing.DDTracer;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -39,14 +39,14 @@ public class MongoClientInstrumentationTest {
@Test @Test
public void queryScrubbing() { public void queryScrubbing() {
// all "secret" strings should be scrubbed out of these queries // all "secret" strings should be scrubbed out of these queries
BsonDocument query1 = new BsonDocument("find", new BsonString("show")); final BsonDocument query1 = new BsonDocument("find", new BsonString("show"));
query1.put("stuff", new BsonString("secret")); query1.put("stuff", new BsonString("secret"));
BsonDocument query2 = new BsonDocument("insert", new BsonString("table")); final BsonDocument query2 = new BsonDocument("insert", new BsonString("table"));
BsonDocument query2_1 = new BsonDocument("count", new BsonString("show")); final BsonDocument query2_1 = new BsonDocument("count", new BsonString("show"));
query2_1.put("id", new BsonString("secret")); query2_1.put("id", new BsonString("secret"));
query2.put("docs", new BsonArray(Arrays.asList(new BsonString("secret"), query2_1))); query2.put("docs", new BsonArray(Arrays.asList(new BsonString("secret"), query2_1)));
List<BsonDocument> queries = Arrays.asList(query1, query2); final List<BsonDocument> queries = Arrays.asList(query1, query2);
for (BsonDocument query : queries) { for (final BsonDocument query : queries) {
final CommandStartedEvent cmd = final CommandStartedEvent cmd =
new CommandStartedEvent(1, makeConnection(), "databasename", "query", query); new CommandStartedEvent(1, makeConnection(), "databasename", "query", query);

View File

@ -14,12 +14,12 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
// use mongo listener // use mongo listener
compile(project(':dd-java-agent:integrations:mongo-3.1')) { compile(project(':dd-java-agent:instrumentation:mongo-3.1')) {
transitive = false transitive = false
} }
compileOnly group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2' compileOnly group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2'
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,4 +1,4 @@
package dd.inst.mongo; package datadog.trace.instrumentation.mongo;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod; import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -8,8 +8,8 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import com.mongodb.async.client.MongoClientSettings; import com.mongodb.async.client.MongoClientSettings;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.Collections; import java.util.Collections;

View File

@ -20,7 +20,7 @@ dependencies {
transitive = false transitive = false
} }
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,15 +1,15 @@
package dd.inst.okhttp3; package datadog.trace.instrumentation.okhttp3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static io.opentracing.contrib.okhttp3.OkHttpClientSpanDecorator.STANDARD_TAGS; import static io.opentracing.contrib.okhttp3.OkHttpClientSpanDecorator.STANDARD_TAGS;
import static net.bytebuddy.matcher.ElementMatchers.isConstructor; import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.contrib.okhttp3.TracingInterceptor; import io.opentracing.contrib.okhttp3.TracingInterceptor;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.util.Collections; import java.util.Collections;

View File

@ -1,5 +1,5 @@
import com.datadoghq.trace.DDTags import datadog.trace.api.DDTags
import dd.test.AgentTestRunner import datadog.trace.agent.test.AgentTestRunner
import io.opentracing.tag.Tags import io.opentracing.tag.Tags
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request

View File

@ -18,7 +18,7 @@ dependencies {
transitive = false transitive = false
} }
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.servlet2; package datadog.trace.instrumentation.servlet2;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter; import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -1,6 +1,6 @@
package dd.inst.servlet2; package datadog.trace.instrumentation.servlet2;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isProtected; import static net.bytebuddy.matcher.ElementMatchers.isProtected;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter; import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -19,7 +19,7 @@ dependencies {
transitive = false transitive = false
} }
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.servlet3; package datadog.trace.instrumentation.servlet3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter; import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -1,6 +1,6 @@
package dd.inst.servlet3; package datadog.trace.instrumentation.servlet3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isProtected; import static net.bytebuddy.matcher.ElementMatchers.isProtected;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.HelperInjector; import datadog.trace.agent.tooling.HelperInjector;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter; import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -19,7 +19,7 @@ dependencies {
// compileOnly group: 'org.springframework', name: 'spring-webmvc', version: '2.5.6' // compileOnly group: 'org.springframework', name: 'spring-webmvc', version: '2.5.6'
// compileOnly group: 'javax.servlet', name: 'servlet-api', version: '2.4' // compileOnly group: 'javax.servlet', name: 'servlet-api', version: '2.4'
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.springweb; package datadog.trace.instrumentation.springweb;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClassWithField; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClassWithField;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -10,10 +10,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;

View File

@ -1,13 +1,13 @@
package dd.trace.instrumentation.trace_annotation; package datadog.trace.instrumentation.trace_annotation;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod; import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
import com.datadoghq.trace.Trace;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import dd.trace.DDAdvice; import datadog.trace.agent.tooling.DDAdvice;
import dd.trace.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.Trace;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.tag.Tags; import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
@ -39,7 +39,7 @@ public final class TraceAnnotationInstrumentation implements Instrumenter {
final Trace trace = method.getAnnotation(Trace.class); final Trace trace = method.getAnnotation(Trace.class);
String operationName = trace == null ? null : trace.operationName(); String operationName = trace == null ? null : trace.operationName();
if (operationName == null || operationName.isEmpty()) { if (operationName == null || operationName.isEmpty()) {
operationName = method.getDeclaringClass().getName() + "." + method.getName(); operationName = method.getDeclaringClass().getSimpleName() + "." + method.getName();
} }
return GlobalTracer.get().buildSpan(operationName).startActive(); return GlobalTracer.get().buildSpan(operationName).startActive();

View File

@ -1,8 +1,8 @@
apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-trace-annotations') compile project(':dd-trace-api')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
compile deps.bytebuddy compile deps.bytebuddy

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent; package datadog.trace.agent;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;

View File

@ -14,10 +14,11 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.datadoghq.agent; package datadog.trace.agent;
import com.datadoghq.trace.DDTraceAnnotationsInfo; import datadog.opentracing.DDTraceOTInfo;
import com.datadoghq.trace.DDTraceInfo; import datadog.trace.agent.tooling.AgentInstaller;
import datadog.trace.api.DDTraceApiInfo;
import io.opentracing.Tracer; import io.opentracing.Tracer;
import io.opentracing.contrib.tracerresolver.TracerResolver; import io.opentracing.contrib.tracerresolver.TracerResolver;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
@ -27,7 +28,7 @@ import lombok.extern.slf4j.Slf4j;
/** Entry point for initializing the agent. */ /** Entry point for initializing the agent. */
@Slf4j @Slf4j
public class TracingAgent { public class TracingAgent {
public static void premain(String agentArgs, final Instrumentation inst) throws Exception { public static void premain(final String agentArgs, final Instrumentation inst) throws Exception {
log.debug("Using premain for loading {}", TracingAgent.class.getName()); log.debug("Using premain for loading {}", TracingAgent.class.getName());
AgentInstaller.installBytebuddyAgent(inst); AgentInstaller.installBytebuddyAgent(inst);
logVersionInfo(); logVersionInfo();
@ -46,8 +47,8 @@ public class TracingAgent {
// version classes log important info // version classes log important info
// in static initializers // in static initializers
DDJavaAgentInfo.VERSION.toString(); DDJavaAgentInfo.VERSION.toString();
DDTraceInfo.VERSION.toString(); DDTraceOTInfo.VERSION.toString();
DDTraceAnnotationsInfo.VERSION.toString(); DDTraceApiInfo.VERSION.toString();
} }
/** Register a global tracer if no global tracer is already registered. */ /** Register a global tracer if no global tracer is already registered. */

View File

@ -1,39 +0,0 @@
unsupportedRuleOne:
- artifact: artifact-1
- artifact: artifact-2
identifying_present_classes:
identifying_missing_classes:
unsupportedRuleTwo:
- artifact: artifact-1
supported_version: 2\.3\.
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1: missingMethod
supportedRuleOne:
- artifact: artifact-3
supported_version: 5\..*
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass2:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass3:
supportedRuleTwo:
- artifact: artifact-1
supported_version: 1\.2\.3\..*
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1: testMethod
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass2:
- artifact: artifact-2
supported_version: 4\..*
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass3: missingMethod
unsupportedRuleThree:
- artifact: foo
supported_version: 1
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1:
com.datadoghq.agent.InstrumentationCheckerTest$MissingClass:

View File

@ -1,8 +1,9 @@
package dd.test; package datadog.trace.agent.test;
import com.datadoghq.agent.AgentInstaller; import datadog.opentracing.DDTracer;
import com.datadoghq.trace.DDTracer; import datadog.trace.agent.tooling.AgentInstaller;
import com.datadoghq.trace.writer.ListWriter; import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.common.writer.ListWriter;
import io.opentracing.Tracer; import io.opentracing.Tracer;
import java.lang.instrument.ClassFileTransformer; import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.Instrumentation; import java.lang.instrument.Instrumentation;
@ -22,8 +23,8 @@ import spock.lang.Specification;
* This will cause the following to occur before test startup: * This will cause the following to occur before test startup:
* *
* <ul> * <ul>
* <li>All {@link dd.trace.Instrumenter}s on the test classpath will be applied. Matching * <li>All {@link Instrumenter}s on the test classpath will be applied. Matching preloaded classes
* preloaded classes will be retransformed. * will be retransformed.
* <li>{@link AgentTestRunner#TEST_WRITER} will be registerd with the global tracer and available * <li>{@link AgentTestRunner#TEST_WRITER} will be registerd with the global tracer and available
* in an initialized state. * in an initialized state.
* </ul> * </ul>

View File

@ -1,6 +1,6 @@
package dd.test; package datadog.trace.agent.test;
import com.datadoghq.agent.Utils; import datadog.trace.agent.tooling.Utils;
import io.opentracing.ActiveSpan; import io.opentracing.ActiveSpan;
import io.opentracing.Tracer; import io.opentracing.Tracer;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
@ -29,7 +29,7 @@ public class TestUtils {
} }
} }
public static void registerOrReplaceGlobalTracer(Tracer tracer) { public static void registerOrReplaceGlobalTracer(final Tracer tracer) {
try { try {
GlobalTracer.register(tracer); GlobalTracer.register(tracer);
} catch (final Exception e) { } catch (final Exception e) {
@ -39,7 +39,7 @@ public class TestUtils {
field = GlobalTracer.class.getDeclaredField("tracer"); field = GlobalTracer.class.getDeclaredField("tracer");
field.setAccessible(true); field.setAccessible(true);
field.set(null, tracer); field.set(null, tracer);
} catch (Exception e2) { } catch (final Exception e2) {
throw new IllegalStateException(e2); throw new IllegalStateException(e2);
} finally { } finally {
if (null != field) { if (null != field) {
@ -54,12 +54,12 @@ public class TestUtils {
} }
public static <T extends Object> Object runUnderTrace( public static <T extends Object> Object runUnderTrace(
final String rootOperationName, Callable<T> r) { final String rootOperationName, final Callable<T> r) {
ActiveSpan rootSpan = GlobalTracer.get().buildSpan(rootOperationName).startActive(); final ActiveSpan rootSpan = GlobalTracer.get().buildSpan(rootOperationName).startActive();
try { try {
try { try {
return r.call(); return r.call();
} catch (Exception e) { } catch (final Exception e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} }
} finally { } finally {
@ -67,10 +67,10 @@ public class TestUtils {
} }
} }
public static boolean isClassLoaded(String className, ClassLoader classLoader) { public static boolean isClassLoaded(final String className, final ClassLoader classLoader) {
try { try {
findLoadedClassMethod.setAccessible(true); findLoadedClassMethod.setAccessible(true);
Class<?> loadedClass = (Class<?>) findLoadedClassMethod.invoke(classLoader, className); final Class<?> loadedClass = (Class<?>) findLoadedClassMethod.invoke(classLoader, className);
return null != loadedClass && loadedClass.getClassLoader() == classLoader; return null != loadedClass && loadedClass.getClassLoader() == classLoader;
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
@ -88,13 +88,13 @@ public class TestUtils {
* @return the location of the newly created jar. * @return the location of the newly created jar.
* @throws IOException * @throws IOException
*/ */
public static URL createJarWithClasses(Class<?>... classes) throws IOException { public static URL createJarWithClasses(final Class<?>... classes) throws IOException {
final File tmpJar = File.createTempFile(UUID.randomUUID().toString() + "", ".jar"); final File tmpJar = File.createTempFile(UUID.randomUUID().toString() + "", ".jar");
tmpJar.deleteOnExit(); tmpJar.deleteOnExit();
final Manifest manifest = new Manifest(); final Manifest manifest = new Manifest();
JarOutputStream target = new JarOutputStream(new FileOutputStream(tmpJar), manifest); final JarOutputStream target = new JarOutputStream(new FileOutputStream(tmpJar), manifest);
for (Class<?> clazz : classes) { for (final Class<?> clazz : classes) {
addToJar(clazz, target); addToJar(clazz, target);
} }
target.close(); target.close();
@ -102,17 +102,18 @@ public class TestUtils {
return tmpJar.toURI().toURL(); return tmpJar.toURI().toURL();
} }
private static void addToJar(Class<?> clazz, JarOutputStream jarOutputStream) throws IOException { private static void addToJar(final Class<?> clazz, final JarOutputStream jarOutputStream)
throws IOException {
InputStream inputStream = null; InputStream inputStream = null;
try { try {
JarEntry entry = new JarEntry(Utils.getResourceName(clazz.getName())); final JarEntry entry = new JarEntry(Utils.getResourceName(clazz.getName()));
jarOutputStream.putNextEntry(entry); jarOutputStream.putNextEntry(entry);
inputStream = inputStream =
clazz.getClassLoader().getResourceAsStream(Utils.getResourceName(clazz.getName())); clazz.getClassLoader().getResourceAsStream(Utils.getResourceName(clazz.getName()));
byte[] buffer = new byte[1024]; final byte[] buffer = new byte[1024];
while (true) { while (true) {
int count = inputStream.read(buffer); final int count = inputStream.read(buffer);
if (count == -1) { if (count == -1) {
break; break;
} }

View File

@ -7,6 +7,6 @@ dependencies {
compile deps.opentracing compile deps.opentracing
compile deps.spock compile deps.spock
compile project(':dd-trace') compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling') compile project(':dd-java-agent:tooling')
} }

View File

@ -1,14 +1,13 @@
package com.datadoghq.agent; package datadog.trace.agent.tooling;
import static dd.trace.ClassLoaderMatcher.classLoaderWithName; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderWithName;
import static dd.trace.ClassLoaderMatcher.isReflectionClassLoader; import static datadog.trace.agent.tooling.ClassLoaderMatcher.isReflectionClassLoader;
import static net.bytebuddy.matcher.ElementMatchers.any; import static net.bytebuddy.matcher.ElementMatchers.any;
import static net.bytebuddy.matcher.ElementMatchers.isBootstrapClassLoader; import static net.bytebuddy.matcher.ElementMatchers.isBootstrapClassLoader;
import static net.bytebuddy.matcher.ElementMatchers.nameContains; import static net.bytebuddy.matcher.ElementMatchers.nameContains;
import static net.bytebuddy.matcher.ElementMatchers.nameMatches; import static net.bytebuddy.matcher.ElementMatchers.nameMatches;
import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
import dd.trace.Instrumenter;
import java.lang.instrument.Instrumentation; import java.lang.instrument.Instrumentation;
import java.util.ServiceLoader; import java.util.ServiceLoader;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -22,8 +21,7 @@ import net.bytebuddy.utility.JavaModule;
public class AgentInstaller { public class AgentInstaller {
/** /**
* Install the core bytebuddy agent along with all implementations of {@link * Install the core bytebuddy agent along with all implementations of {@link Instrumenter}.
* dd.trace.Instrumenter}.
* *
* @param inst Java Instrumentation used to install bytebuddy * @param inst Java Instrumentation used to install bytebuddy
* @return the agent's class transformer * @return the agent's class transformer
@ -34,10 +32,9 @@ public class AgentInstaller {
.disableClassFormatChanges() .disableClassFormatChanges()
.with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION) .with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
.with(new LoggingListener()) .with(new LoggingListener())
.ignore(nameStartsWith("com.datadoghq.agent.integration")) .ignore(nameStartsWith("datadog.trace."))
.or(nameStartsWith("dd.trace")) .or(nameStartsWith("datadog.opentracing."))
.or(nameStartsWith("dd.inst")) .or(nameStartsWith("datadog.slf4j."))
.or(nameStartsWith("dd.deps"))
.or(nameStartsWith("java.")) .or(nameStartsWith("java."))
.or(nameStartsWith("com.sun.")) .or(nameStartsWith("com.sun."))
.or(nameStartsWith("sun.")) .or(nameStartsWith("sun."))

View File

@ -1,4 +1,4 @@
package dd.trace; package datadog.trace.agent.tooling;
import java.util.WeakHashMap; import java.util.WeakHashMap;
import net.bytebuddy.matcher.ElementMatcher; import net.bytebuddy.matcher.ElementMatcher;

View File

@ -1,6 +1,5 @@
package dd.trace; package datadog.trace.agent.tooling;
import com.datadoghq.agent.Utils;
import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.agent.builder.AgentBuilder;
import net.bytebuddy.agent.builder.AgentBuilder.LocationStrategy; import net.bytebuddy.agent.builder.AgentBuilder.LocationStrategy;
import net.bytebuddy.dynamic.ClassFileLocator; import net.bytebuddy.dynamic.ClassFileLocator;

View File

@ -1,4 +1,4 @@
package dd.trace; package datadog.trace.agent.tooling;
import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.implementation.bytecode.StackManipulation; import net.bytebuddy.implementation.bytecode.StackManipulation;

View File

@ -1,6 +1,5 @@
package dd.trace; package datadog.trace.agent.tooling;
import com.datadoghq.agent.Utils;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
@ -27,7 +26,7 @@ public class HelperInjector implements Transformer {
* Construct HelperInjector. * Construct HelperInjector.
* *
* @param helperClassNames binary names of the helper classes to inject. These class names must be * @param helperClassNames binary names of the helper classes to inject. These class names must be
* resolvable by the classloader returned by dd.trace.DDAdvice#getAgentClassLoader() * resolvable by the classloader returned by DDAdvice#getAgentClassLoader()
*/ */
public HelperInjector(final String... helperClassNames) { public HelperInjector(final String... helperClassNames) {
this.helperClassNames = new HashSet<>(Arrays.asList(helperClassNames)); this.helperClassNames = new HashSet<>(Arrays.asList(helperClassNames));

View File

@ -1,4 +1,4 @@
package dd.trace; package datadog.trace.agent.tooling;
import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.agent.builder.AgentBuilder;

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent; package datadog.trace.agent.tooling;
public class Utils { public class Utils {
/** Return the classloader the core agent is running on. */ /** Return the classloader the core agent is running on. */
@ -7,7 +7,7 @@ public class Utils {
} }
/** com.foo.Bar -> com/foo/Bar.class */ /** com.foo.Bar -> com/foo/Bar.class */
public static String getResourceName(String className) { public static String getResourceName(final String className) {
return className.replace('.', '/') + ".class"; return className.replace('.', '/') + ".class";
} }

View File

@ -1,4 +1,4 @@
package dd.test; package datadog.trace.agent.test;
/** Used by {@link HelperInjectionTest} */ /** Used by {@link HelperInjectionTest} */
class HelperClass {} class HelperClass {}

View File

@ -1,11 +1,10 @@
package dd.test package datadog.trace.agent.test
import com.datadoghq.agent.Utils import datadog.trace.agent.tooling.HelperInjector
import dd.trace.HelperInjector import datadog.trace.agent.tooling.Utils
import java.lang.reflect.Method
import spock.lang.Specification import spock.lang.Specification
import static net.bytebuddy.matcher.ElementMatchers.* import java.lang.reflect.Method
class HelperInjectionTest extends Specification { class HelperInjectionTest extends Specification {
@ -13,7 +12,7 @@ class HelperInjectionTest extends Specification {
setup: setup:
String helperClassName = HelperInjectionTest.getPackage().getName() + '.HelperClass' String helperClassName = HelperInjectionTest.getPackage().getName() + '.HelperClass'
HelperInjector injector = new HelperInjector(helperClassName) HelperInjector injector = new HelperInjector(helperClassName)
URLClassLoader emptyLoader = new URLClassLoader(new URL[0], (ClassLoader)null) URLClassLoader emptyLoader = new URLClassLoader(new URL[0], (ClassLoader) null)
when: when:
emptyLoader.loadClass(helperClassName) emptyLoader.loadClass(helperClassName)
@ -31,7 +30,7 @@ class HelperInjectionTest extends Specification {
cleanup: cleanup:
emptyLoader?.close() emptyLoader?.close()
} }
private static boolean isClassLoaded(String className, ClassLoader classLoader) { private static boolean isClassLoaded(String className, ClassLoader classLoader) {
final Method findLoadedClassMethod = ClassLoader.getDeclaredMethod("findLoadedClass", String) final Method findLoadedClassMethod = ClassLoader.getDeclaredMethod("findLoadedClass", String)
try { try {

View File

@ -2,7 +2,7 @@ apply from: "${rootDir}/gradle/java.gradle"
apply from: "${rootDir}/gradle/publish.gradle" apply from: "${rootDir}/gradle/publish.gradle"
apply from: "${rootDir}/gradle/jacoco.gradle" apply from: "${rootDir}/gradle/jacoco.gradle"
description = 'dd-trace-annotations' description = 'dd-trace-api'
dependencies { dependencies {
compile deps.slf4j compile deps.slf4j
testCompile deps.junit testCompile deps.junit

View File

@ -1,4 +1,4 @@
package com.datadoghq.trace; package datadog.trace.api;
public class DDTags { public class DDTags {
public static final String SPAN_TYPE = "span.type"; public static final String SPAN_TYPE = "span.type";

View File

@ -1,11 +1,11 @@
package com.datadoghq.trace; package datadog.trace.api;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class DDTraceAnnotationsInfo { public class DDTraceApiInfo {
public static final String VERSION; public static final String VERSION;
static { static {
@ -16,8 +16,7 @@ public class DDTraceAnnotationsInfo {
final BufferedReader br = final BufferedReader br =
new BufferedReader( new BufferedReader(
new InputStreamReader( new InputStreamReader(
DDTraceAnnotationsInfo.class.getResourceAsStream("/dd-trace-annotations.version"), DDTraceApiInfo.class.getResourceAsStream("/dd-trace-api.version"), "UTF-8"));
"UTF-8"));
for (int c = br.read(); c != -1; c = br.read()) sb.append((char) c); for (int c = br.read(); c != -1; c = br.read()) sb.append((char) c);
v = sb.toString().trim(); v = sb.toString().trim();
@ -25,10 +24,10 @@ public class DDTraceAnnotationsInfo {
v = "unknown"; v = "unknown";
} }
VERSION = v; VERSION = v;
log.info("dd-trace-annotations - version: {}", v); log.info("dd-trace-api - version: {}", v);
} }
public static void main(String... args) { public static void main(final String... args) {
System.out.println(VERSION); System.out.println(VERSION);
} }
} }

View File

@ -1,4 +1,4 @@
package com.datadoghq.trace; package datadog.trace.api;
import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME; import static java.lang.annotation.RetentionPolicy.RUNTIME;

View File

@ -1,5 +0,0 @@
logging:
level: INFO
loggers:
"com.datadoghq.trace": DEBUG
"io.opentracing": DEBUG

View File

@ -15,7 +15,7 @@ plugins {
allprojects { allprojects {
group = 'com.datadoghq' group = 'com.datadoghq'
version = '0.2.13-SNAPSHOT' version = '0.3.0.RC1-SNAPSHOT'
apply from: "${rootDir}/gradle/dependencies.gradle" apply from: "${rootDir}/gradle/dependencies.gradle"
} }

View File

@ -2,7 +2,7 @@ plugins {
id "me.champeau.gradle.jmh" version "0.4.4" id "me.champeau.gradle.jmh" version "0.4.4"
} }
description = 'dd-trace' description = 'dd-trace-ot'
apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/java.gradle"
apply from: "${rootDir}/gradle/publish.gradle" apply from: "${rootDir}/gradle/publish.gradle"
@ -10,16 +10,14 @@ apply from: "${rootDir}/gradle/jacoco.gradle"
minimumBranchCoverage = 0.3 minimumBranchCoverage = 0.3
minimumInstructionCoverage = 0.5 minimumInstructionCoverage = 0.5
whitelistedInstructionClasses += whitelistedBranchClasses += [ whitelistedInstructionClasses += whitelistedBranchClasses += [
'com.datadoghq.trace.integration.*', 'datadog.opentracing.decorators.*',
'com.datadoghq.trace.resolver.DecoratorsConfig', 'datadog.trace.common.writer.ListWriter',
'com.datadoghq.trace.writer.ListWriter', 'datadog.trace.common.util.Clock',
'com.datadoghq.trace.DDTags', 'datadog.trace.api.DDTags',
'com.datadoghq.trace.DDTraceInfo',
'com.datadoghq.trace.util.Clock',
'com.datadoghq.trace.resolver.FactoryUtils',
] ]
dependencies { dependencies {
compile project(':dd-trace-api')
compile deps.opentracing compile deps.opentracing
compile group: 'io.opentracing.contrib', name: 'opentracing-tracerresolver', version: '0.1.0' compile group: 'io.opentracing.contrib', name: 'opentracing-tracerresolver', version: '0.1.0'

Some files were not shown because too many files have changed in this diff Show More