Laplie Anderson
ba6ff678db
Change agent jar inclusion in tests that launch a process
...
The tests were the main problem. By using a different approach to pass in the agent jar, the TracingAgent code can be much simpler
2019-08-05 12:06:43 -04:00
Tyler Benson
c5ccc67743
Migrate Akka-Http Server tests and add ignoreParent()
2019-08-05 08:42:46 -07:00
Tyler Benson
c60e1dbcba
Set ignoreActiveSpan for Servlet 2 and capture status code
...
This change wraps the servlet response object in order to collect the status code. This can be risky if the code is expecting a raw type object. We are extending a standard “HttpServletResponseWrapper” though, so it should be easy to work around.
This change also moves to the standard HttpServerTest for Servlet 2.
2019-08-05 08:42:46 -07:00
Tyler Benson
2aa69d8203
Merge pull request #932 from DataDog/tyler/servlet-testing
...
Migrate servlet tests to HttpServerTest and ignoreActiveSpan for "root"
2019-08-05 08:35:48 -07:00
Laplie Anderson
a9d0d2cbbe
Use CodeSource instead of javaagent arg
...
Check both TracingAgent.class and DatadogClassloader.class for code source
2019-08-05 10:41:05 -04:00
Laplie Anderson
8d41e60182
Simple test to check loading of bootstrap in a launched vm
2019-08-02 15:39:36 -04:00
Tyler Benson
6f229305bb
Review fixes
2019-08-02 10:01:03 -07:00
Laplie Anderson
1381e718fe
More complicated logic to reflectively get VM args on different jdks
...
Support the differences between IBM and Oracle jdks along with differences between 8 and 12
2019-08-02 10:27:45 -04:00
Luca Abbati
097c8186ba
Merge pull request #906 from DataDog/labbati/atlas-1.1.0-compatibility
...
Make netty 4.0 attributes definition compatible with Apache Atlas 1.1.0
2019-08-02 16:27:23 +02:00
Laplie Anderson
a6ba2d25fe
A more reliable way to get the agent jar without breaking logging
2019-08-01 12:45:17 -04:00
Laplie Anderson
21b12328fa
OSGI bootstrap delegation
2019-07-31 11:32:20 -04:00
Laplie Anderson
e8e4f2649b
Bootstrap prefixes need to be in *3* places
2019-07-31 10:41:42 -04:00
Laplie Anderson
5c73935178
Bootstrap prefixes need to be in 2 places
2019-07-30 21:05:38 -04:00
Laplie Anderson
273feafa94
Use the bootstrapProxy to load jars. Better bootstrap url algo
2019-07-30 19:50:16 -04:00
Laplie Anderson
cf98110991
JMXFetch loading threw permission errors
2019-07-30 16:56:49 -04:00
Laplie Anderson
c41536cbe2
Fix failing tests
...
Add TracingAgent to list of bootstrap class
Fix renaming tests
Fix JMXFetch path splitting
2019-07-30 15:27:47 -04:00
Tyler Benson
9681b91f3e
Fix test. Format.
2019-07-29 15:27:26 -07:00
Laplie Anderson
c275143eae
Shadow the bootstrap jar into the main agent jar
2019-07-29 17:01:55 -04:00
Laplie Anderson
a1f8cad2e8
Tooling and jmxfetch temp jars removed
...
Enhanced the DatadogClassloader to work with jars inside other jars. No need to create the jars in a temp directory anymore
2019-07-29 17:01:55 -04:00
Laplie Anderson
7e1266b39f
Use try with resources to read agent version
...
More compact and gets rid of warnings
2019-07-29 17:01:55 -04:00
Tyler Benson
d6b903665e
Copy servlet listener over to new context on dispatch.
...
This allows it to finish the span with the correct response.
2019-07-26 16:30:23 -07:00
Tyler Benson
c3203dace8
Migrate servlet tests to HttpServerTest
...
Currently missing the authentication tests which need to be added to the parent, but other than that, testing is more thorough.
Discovered that trace propagation for Jetty Async is currently busted so I commented that portion of the test out until we can get it fixed.
2019-07-26 16:01:06 -07:00
Tyler Benson
023fb397b5
Merge pull request #928 from DataDog/tyler/http-server-testing
...
Base HttpServerTest and updated Netty test
2019-07-26 12:59:49 -07:00
Luca Abbati
8609a07eaf
Merge branch 'master' of github.com:DataDog/dd-trace-java into labbati/atlas-1.1.0-compatibility
2019-07-26 11:23:06 +02:00
Tyler Benson
0d1bf5edd7
Limit Vert.x tests to 3.x
...
4.0.0-milestone1 was just released and is incompatible.
2019-07-25 15:32:54 -07:00
Tyler Benson
c1ec277944
Base HttpServerTest and updated Netty test
2019-07-24 15:54:07 -07:00
Tyler Benson
aaba3fc095
Fix trace propagation
2019-07-22 11:02:24 -07:00
Johan Vandeweerd
fff8006e51
Remove unused private method
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
0043efa164
Add documentation on conditions when DefaultWebClientAdvice is not applied
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
633db43cb1
Fix typo rawStatusCode in javadoc
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
bc51f04bd3
Replace hasSuperType with safeHasSuperType
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
8f96205579
Add Javadoc to rawStatusCode method that is not part of ClientResponse in spring-webflux-5.0
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
7059cca3cc
Add test for spring webflux webclient
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
872a099722
Remove onPeerConnection decorator call
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
23b8caa27c
Add decorator hooks during lifecycle of Publisher
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
ac11bba616
Replace operation name with static value
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
35b924b397
Replace span.log with span.tag
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
f5f8fe1c96
Add javadoc to clarify usage of this class
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
e4560ba50f
Instrument all subtypes of ExchangeFunction instead of only ExchangeFunctions$DefaultExchangeFunction
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
0e9edb1205
Aligned instrumentation names between DefaultWebClientInstrumentation and SpringWebfluxHttpClientDecorator
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
091648d4c7
Enable tracing for Spring Webflux WebClient
2019-07-22 11:01:41 -07:00
Johan Vandeweerd
797003b585
Moved Spring Webflux instrumentation code to server subpackage
2019-07-22 11:01:41 -07:00
Tyler Benson
7571b778ad
Merge pull request #886 from DataDog/tyler/netty-client-callback
...
Change the scope for the netty client callback
2019-07-22 11:00:17 -07:00
Luca Abbati
0ff56b0a9f
Improve tests readability moving common instance to test class
2019-07-22 11:19:13 +02:00
Luca Abbati
3817e76130
Apply doubled-check locking + same approach to attributes definition for netty-4.1
2019-07-22 11:15:33 +02:00
Laplie Anderson
22dc30526a
Merge pull request #925 from DataDog/landerson/resourcename-on-annotation
...
Add resource name to the @Trace annotation
2019-07-19 12:43:19 -04:00
Tyler Benson
ea4fc4ab28
Use NoopSpan instead of null for null parent.
...
Fix some more tests.
2019-07-19 09:26:40 -07:00
Tyler Benson
e692605a3b
Fix formatting
2019-07-19 09:26:40 -07:00
Tyler Benson
53ef8f020f
Additional testing for Vert.x
...
Adds reactive/circuitbreaker tests.
2019-07-19 09:26:40 -07:00
Tyler Benson
0e83304a87
Update Ratpack latest test
2019-07-19 09:26:40 -07:00
Tyler Benson
6ccb0d71d8
Change the scope for the netty client callback
...
Previously the scope was the http client span, which could result in deep nesting. Now it is the parent span.
Before
[——————Parent—————]
[ ^ ———Client—————]
[ ^—Child—]
Now:
[——————Parent—————]
[ ^ —Client—] [ ^—Child—]
Also improve the tests.
2019-07-19 09:26:40 -07:00
Laplie Anderson
cad2a3d4a4
Set resource name in a way that doesn't need to reference DDSpanBuilder
2019-07-19 12:26:17 -04:00
Luca Abbati
5921ed3ed1
Remove code not intended to be there
2019-07-19 18:14:48 +02:00
Laplie Anderson
d101bea085
Add DDSpanBuilder to helper classes of both instrumentations
2019-07-19 12:11:10 -04:00
Pedro Silva
ef5a006df2
changes requested: remove iterator() implementation from TracingList. refactor unit tests to expect only one element to be consumed. Kafka embedded instance as a Rule
2019-07-19 16:45:34 +01:00
Luca Abbati
9f0ec7ec49
Update helper classes
2019-07-19 17:24:58 +02:00
Luca Abbati
95a963a364
Fix build with additional WeakHash map implementation
2019-07-19 17:05:40 +02:00
Luca Abbati
edacd7a41d
Refactor weak hash map to be able to reuse functionalities
2019-07-19 16:18:38 +02:00
Laplie Anderson
331b8c8e99
Add resource name to the @Trace annotation
2019-07-19 09:52:19 -04:00
Pedro Silva
2627a452c0
unit tests for records(TopicPartition) method of kafka-clients instrumentation. introduce safeguards when instrumenting iterator() so that duplication of traces is not allowed. do not allow subList() to be instrumented
2019-07-18 23:09:33 +01:00
Luca Abbati
35b928be7c
Refactor ClassLoaderScopeWekaMap
2019-07-18 15:34:26 +02:00
Nikolay Martynov
05af20d29c
Merge pull request #921 from DataDog/mar-kolya/fix-javadoc
...
Minor javadoc fix
2019-07-18 09:03:37 -04:00
Nikolay Martynov
ab7786d352
Minor javadoc fix
2019-07-17 16:58:29 -04:00
Laplie Anderson
0f9b28df27
Merge pull request #914 from DataDog/landerson/google-http-client
...
Instrumentation of Google Http Client
2019-07-17 16:17:38 -04:00
Luca Abbati
e3a6d40e77
Add tests for ClassLoaderScoperWeakMap
2019-07-17 12:46:24 +02:00
Luca Abbati
48aff5f754
Add all helpers required for ClassLoaderScopedWeakMap usage + re-enable all tests
2019-07-17 09:49:26 +02:00
Luca Abbati
840b8b407d
No matter what, it won't work :) I am now in the mood 'try everything in the world until it works'
2019-07-16 15:39:00 +02:00
Luca Abbati
cb430c566b
Remove obsolete test
2019-07-16 11:53:22 +02:00
Luca Abbati
bfa5712c04
Add comments to ClassLoader scoped weak map
2019-07-16 11:02:26 +02:00
Luca Abbati
de6f33c035
Draft of per-classloader netty AttributeKey definition
2019-07-16 11:02:25 +02:00
Luca Abbati
fac3a93445
Make netty 4.0 attributes definition compatible with Apache Atlas 1.1.0
...
The issue we are trying to fix here seems to be a result of two concurrent issues.
Cassandra driver's used by atlas 1.1.0 brings in a old version of netty < 4.0.23.
In version 4.0.25 netty raised exception in `UniqueName` class for duplicate name
```
if (map.putIfAbsent(name, Boolean.TRUE) != null) {
throw new IllegalArgumentException(String.format("'%s' is already in use", name));
}
```
This changed in 4.0.26 where exception was not thrown, instead the duplicate key was just ignored.
```
protected UniqueName(String name) {
this.name = checkNotNull(name, "name");
id = nextId.incrementAndGet();
}
```
Now this alone would not be enough. The only way I was able to reproduce is if two different class loaders tries to load the
same class `AttributeKeys` twice.
I tried to look into Atlas source code (which is huge) and I could not find a clear path of how this would be possible.
Further more, looking at some build scripts that a user experiencing this issue provided,
it looks like they are doing everything correctly and there is nothing they should change.
In conclusion, I believe that even if this is not a very clean approach,
we should be resilient to this use case, when a customer using netty <4.0.25 in an
older version of Apache Atlas (or with some sort of class loader behavior).
2019-07-16 11:02:25 +02:00
Tyler Benson
747f758a70
Remove default instance
...
It’s not very interesting and breaks the definition of “instance” when we want to see the db name when no instance name is defined.
2019-07-15 12:52:57 -07:00
Nikolay Martynov
1fbe395586
Avoid Jetty 10 in servlet-3 test
...
Alpha version of Jetty 10 was released and it seems to be compiled for
java versions above 8 so tests fail on java8.
Limit latest dep Jetty tests to Jetty 9 for now.
2019-07-15 10:15:21 -04:00
Nikolay Martynov
3191eb7058
Avoid Jetty 10
...
Alpha version of Jetty 10 was released and it seems to be compiled for
java versions above 8 so tests fail on java8.
Limit latest dep Jetty tests to Jetty 9 for now.
2019-07-15 10:15:16 -04:00
Luca Abbati
5b3d4b8e35
Merge pull request #905 from DataDog/labbati/jmx-as-daemon
...
Run JmxFetch app as a daemon
2019-07-15 08:18:09 -04:00
Tyler Benson
ec931463a4
Merge pull request #885 from DataDog/tyler/instance-name-testing
...
Additional testing for split-by-instance config
2019-07-15 01:27:49 -04:00
Laplie Anderson
0eab4688cd
Remove unnecessary semicolons
2019-07-12 16:36:02 -04:00
Nikolay Martynov
6516bd7ad7
Minor comment update
2019-07-12 16:26:39 -04:00
Laplie Anderson
8a7336a017
Use 1.19.0 as first supported version
2019-07-12 16:06:19 -04:00
Laplie Anderson
82ee01cadf
Implement instrumentation for async requests
2019-07-12 15:41:14 -04:00
Nikolay Martynov
f4aa8be7c5
Make kafka streams test more stable
2019-07-11 11:07:17 -04:00
Nikolay Martynov
3ecc7c123d
Wait for traces in kafka streams tests
2019-07-11 10:51:55 -04:00
Nikolay Martynov
765b76b0ae
Fix kafka-streaming tests broken by records(TopicPartition) instrumentation
2019-07-11 10:31:18 -04:00
Nikolay Martynov
3e8b65290a
Instrument records(TopicPartition) in kafka consumer
2019-07-11 10:30:44 -04:00
Nikolay Martynov
142477ed0a
Merge branch 'master' into mar-kolya/kafka-trace-records
2019-07-10 18:15:51 -04:00
Tyler Benson
a13e4a0229
Merge pull request #910 from DataDog/labbati/jersey-1.19
...
Extend support for Jersey client to 1.9+
2019-07-10 15:02:11 -06:00
Tyler Benson
4501dbe920
Merge pull request #899 from dpratt/fix-akka-http
...
Fix akka-http instrumentation.
2019-07-10 14:39:47 -06:00
Tyler Benson
5624cef4af
fix check
2019-07-10 14:08:50 -06:00
Tyler Benson
4486c3a6ff
Change jax-rs-client project names to match versions
2019-07-10 13:25:48 -06:00
Tyler Benson
5526fd0ca3
Jersey client 1.9 cleanup
2019-07-10 13:11:09 -06:00
Nikolay Martynov
f484295460
Kafka instrumentation: make return type more general in instrumentation matching
2019-07-10 13:47:20 -04:00
Luca Abbati
c16a0844d8
Enable tracing of jax-rs client in sun package
2019-07-10 13:05:12 -04:00
Luca Abbati
3ab63e7005
Some refactoring in tests
2019-07-10 08:43:31 -04:00
Luca Abbati
0f5dd2413c
Add tests for Jersey V1 client
2019-07-09 22:49:44 -04:00
Luca Abbati
b62266fd52
First draft of jersey 1.19 client instrumentation
2019-07-09 21:13:00 -04:00
Laplie Anderson
caa7e4426a
Passing tests. Modify escaping of spaces in urls
2019-07-09 17:17:41 -04:00
Laplie Anderson
d97b1c2d53
Fix package
2019-07-09 17:17:41 -04:00
Laplie Anderson
30916ac5d7
Implementation
2019-07-09 17:17:41 -04:00
Laplie Anderson
f53b14bd0f
Stub google http client integration
2019-07-09 17:17:41 -04:00
Luca Abbati
2e41e94774
Update jmxfetch to version 0.30.0
2019-07-08 14:43:29 -04:00