Skip to content

Commit a3be0cb

Browse files
committed
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/config-file
2 parents d0b3214 + e8246f6 commit a3be0cb

55 files changed

Lines changed: 2152 additions & 660 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/collect_reports.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# This folder will be saved by circleci and available after test runs.
55

66
set -e
7+
#Enable '**' support
8+
shopt -s globstar
79

810
REPORTS_DIR=./reports
911
mkdir -p $REPORTS_DIR >/dev/null 2>&1

.circleci/collect_results.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# This folder will be saved by circleci and available after test runs.
55

66
set -e
7+
#Enable '**' support
8+
shopt -s globstar
79

810
TEST_RESULTS_DIR=./results
911
mkdir -p $TEST_RESULTS_DIR >/dev/null 2>&1

.circleci/config.yml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ jobs:
3838
- persist_to_workspace:
3939
root: .
4040
paths:
41+
- .gradle
4142
- workspace
4243

4344
- save_cache:
@@ -93,7 +94,13 @@ jobs:
9394
<<: *default_test_job
9495
environment:
9596
# We are building on Java8, this is our default JVM so no need to set more homes
96-
- TEST_TASK: test latestDepTest jacocoTestReport jacocoTestCoverageVerification
97+
- TEST_TASK: test jacocoTestReport jacocoTestCoverageVerification
98+
99+
test_latest8:
100+
<<: *default_test_job
101+
environment:
102+
# We are building on Java8, this is our default JVM so no need to set more homes
103+
- TEST_TASK: latestDepTest
97104

98105
test_ibm8:
99106
<<: *default_test_job
@@ -249,6 +256,12 @@ workflows:
249256
filters:
250257
tags:
251258
only: /.*/
259+
- test_latest8:
260+
requires:
261+
- build
262+
filters:
263+
tags:
264+
only: /.*/
252265
- test_ibm8:
253266
requires:
254267
- build
@@ -305,6 +318,7 @@ workflows:
305318
requires:
306319
- test_7
307320
- test_8
321+
- test_latest8
308322
- test_ibm8
309323
- test_9
310324
- test_10
@@ -322,6 +336,7 @@ workflows:
322336
requires:
323337
- test_7
324338
- test_8
339+
- test_latest8
325340
- test_ibm8
326341
- test_9
327342
- test_10

dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/decorator/DatabaseClientDecorator.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package datadog.trace.agent.decorator;
22

3+
import datadog.trace.api.Config;
4+
import datadog.trace.api.DDTags;
35
import io.opentracing.Span;
46
import io.opentracing.tag.Tags;
57

@@ -29,7 +31,11 @@ public Span onConnection(final Span span, final CONNECTION connection) {
2931
assert span != null;
3032
if (connection != null) {
3133
Tags.DB_USER.set(span, dbUser(connection));
32-
Tags.DB_INSTANCE.set(span, dbInstance(connection));
34+
final String instanceName = dbInstance(connection);
35+
Tags.DB_INSTANCE.set(span, instanceName);
36+
if (instanceName != null && Config.get().isDbClientSplitByInstance()) {
37+
span.setTag(DDTags.SERVICE_NAME, instanceName);
38+
}
3339
}
3440
return span;
3541
}

dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,10 @@ public void visitFieldInsn(
260260
// * DONE field-source class (descriptor)
261261
// * DONE field-source visibility from this point (PRIVATE?)
262262

263-
final Type ownerType = Type.getType("L" + owner + ";");
263+
final Type ownerType =
264+
owner.startsWith("[")
265+
? underlyingType(Type.getType(owner))
266+
: Type.getType("L" + owner + ";");
264267
final Type fieldType = Type.getType(descriptor);
265268

266269
final List<Reference.Flag> fieldFlags = new ArrayList<>();
@@ -334,7 +337,10 @@ public void visitMethodInsn(
334337
}
335338
}
336339

337-
final Type ownerType = Type.getType("L" + owner + ";");
340+
final Type ownerType =
341+
owner.startsWith("[")
342+
? underlyingType(Type.getType(owner))
343+
: Type.getType("L" + owner + ";");
338344

339345
final List<Reference.Flag> methodFlags = new ArrayList<>();
340346
methodFlags.add(

dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/decorator/DatabaseClientDecoratorTest.groovy

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package datadog.trace.agent.decorator
22

3+
import datadog.trace.api.Config
34
import datadog.trace.api.DDTags
45
import io.opentracing.Span
56
import io.opentracing.tag.Tags
67

8+
import static datadog.trace.agent.test.utils.ConfigUtils.withConfigOverride
9+
710
class DatabaseClientDecoratorTest extends ClientDecoratorTest {
811

912
def span = Mock(Span)
@@ -35,21 +38,26 @@ class DatabaseClientDecoratorTest extends ClientDecoratorTest {
3538
def decorator = newDecorator()
3639

3740
when:
38-
decorator.onConnection(span, session)
41+
withConfigOverride(Config.DB_CLIENT_HOST_SPLIT_BY_INSTANCE, "$renameService") {
42+
decorator.onConnection(span, session)
43+
}
3944

4045
then:
4146
if (session) {
4247
1 * span.setTag(Tags.DB_USER.key, session.user)
4348
1 * span.setTag(Tags.DB_INSTANCE.key, session.instance)
49+
if (renameService && session.instance) {
50+
1 * span.setTag(DDTags.SERVICE_NAME, session.instance)
51+
}
4452
}
4553
0 * _
4654

4755
where:
48-
session | _
49-
null | _
50-
[user: "test-user"] | _
51-
[instance: "test-instance"] | _
52-
[user: "test-user", instance: "test-instance"] | _
56+
renameService | session
57+
false | null
58+
true | [user: "test-user"]
59+
false | [instance: "test-instance"]
60+
true | [user: "test-user", instance: "test-instance"]
5361
}
5462

5563
def "test onStatement"() {

dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/decorator/HttpClientDecoratorTest.groovy

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
2626

2727
then:
2828
if (req) {
29-
1 * span.setTag(Tags.HTTP_METHOD.key, "test-method")
30-
1 * span.setTag(Tags.HTTP_URL.key, "$testUrl")
31-
1 * span.setTag(Tags.PEER_HOSTNAME.key, "test-host")
32-
1 * span.setTag(Tags.PEER_PORT.key, 555)
29+
1 * span.setTag(Tags.HTTP_METHOD.key, req.method)
30+
1 * span.setTag(Tags.HTTP_URL.key, "$req.url")
31+
1 * span.setTag(Tags.PEER_HOSTNAME.key, req.host)
32+
1 * span.setTag(Tags.PEER_PORT.key, req.port)
3333
if (renameService) {
34-
1 * span.setTag(DDTags.SERVICE_NAME, "test-host")
34+
1 * span.setTag(DDTags.SERVICE_NAME, req.host)
3535
}
3636
}
3737
0 * _

dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/decorator/OrmClientDecoratorTest.groovy

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package datadog.trace.agent.decorator
22

33
import datadog.trace.api.DDTags
4-
import io.opentracing.Span
54

65
class OrmClientDecoratorTest extends DatabaseClientDecoratorTest {
76

8-
def span = Mock(Span)
9-
107
def "test onOperation #testName"() {
118
setup:
129
decorator = newDecorator({ e -> entityName })

dd-java-agent/dd-java-agent.gradle

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,6 @@ dependencies {
9797
testCompile deps.opentracingMock
9898
testCompile deps.testLogging
9999
testCompile deps.guava
100-
testCompile group: 'org.assertj', name: 'assertj-core', version: '2.9.+'
101-
testCompile group: 'org.mockito', name: 'mockito-core', version: '2.19.0'
102-
103-
testCompile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2'
104-
testCompile group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2'
105-
// run embedded mongodb for integration testing
106-
testCompile group: 'de.flapdoodle.embed', name: 'de.flapdoodle.embed.mongo', version: '1.50.5'
107100
}
108101

109102
tasks.withType(Test).configureEach {

dd-java-agent/instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpClientInstrumentationTest.groovy

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@ class AkkaHttpClientInstrumentationTest extends HttpClientTest<AkkaHttpClientDec
2323
.withMethod(HttpMethods.lookup(method).get())
2424
.addHeaders(headers.collect { RawHeader.create(it.key, it.value) })
2525

26-
def response = Http.get(system).singleRequest(request, materializer).toCompletableFuture().get()
27-
blockUntilChildSpansFinished(1)
26+
def response
27+
try {
28+
response = Http.get(system).singleRequest(request, materializer).toCompletableFuture().get()
29+
} finally {
30+
blockUntilChildSpansFinished(1)
31+
}
2832
callback?.call()
2933
return response.status().intValue()
3034
}

0 commit comments

Comments
 (0)