Commit Graph

2072 Commits

Author SHA1 Message Date
Pawel Chojnacki 832605a01a [rmi] Add distributed context propagation
The flow for context propagation is as follows.

 * <p>We inject into StreamRemoteCall constructor used for invoking remote tasks and performs a
 * backwards compatible check to ensure if the other side is prepared to receive context propagation
 * messages then if successful sends a context propagation message
 *
 * <p>Context propagation consist of a Serialized HashMap with all data set by usual context
 * injection, which includes things like sampling priority, trace and parent id
 *
 * <p>As well as optional baggage items
 *
 * <p>On the other side of the communication a special Dispatcher is created when a message with
 * DD_CONTEXT_CALL_ID is received.
 *
 * <p>If the server is not instrumented first call will gracefully fail just like any other unknown
 * call. With small caveat that this first call needs to *not* have any parameters, since those will
 * not be read from connection and instead will be interpreted as another remote instruction, but
 * that instruction will essentially be garbage data and will cause the parsing loop to throw exception
 * and shutdown the connection which we do not want
2019-12-19 17:21:07 +01:00
Pawel Chojnacki 0ee80a0b95 [rmi] Instrumentation for RMI 1.2 and later
includes instrumentation of client and server endpoints
currently missing passing of execution context from client to server
2019-12-19 17:20:50 +01:00
Tyler Benson fb8f7af342
Merge pull request #1149 from DataDog/tyler/jdk-muzzle
Add option for muzzle validation on the specific JDK version
2019-12-19 08:14:54 -08:00
kfujita b707a3aab9 move multi-value aware logic to Extractor. 2019-12-19 13:33:08 +09:00
kfujita 0f3125498c add test case 2019-12-19 13:33:03 +09:00
kfujita a5e693bb92 assert fix same as JettyServlet3Test 2019-12-19 13:32:09 +09:00
Laplie Anderson dc0cbeb95d apply comma split logic to servlet request extract adapter 2019-12-19 13:32:09 +09:00
Tyler Benson 31b77cbd7b Capture error message even if no exception object provided.
This is currently only used by the GoogleHttpClient instrumentation, but may be used by customers too.
2019-12-18 13:49:24 -08:00
Tyler Benson ded28674d3 Add option for muzzle validation on the specific JDK version
This is still useful to validate various aspects of the integrations even if it doesn't need to check against maven.
2019-12-18 13:40:19 -08:00
Tyler Benson 7095ea3426 Add async propagation flags for kafka consumer. 2019-12-18 10:40:54 -08:00
Tyler Benson 96edbe8b8a Add better exception handling in Agent initialization
An invalid statsd hostname causes an exception for jmxfetch.  This should be an error, but not prevent the app from starting.

Also improved log variable name consistency.
2019-12-17 14:15:42 -08:00
Tyler Benson 99992df998 Fix tagging query string for additional servers
Add test to common test suite and adapt each test.
2019-12-17 09:33:27 -08:00
Tyler Benson a2b86e6b96 Pin kafka latestDepTest version to 2.3.x
2.4.0 introduces test failures:
```
Caused by: java.lang.NoClassDefFoundError: org.I0Itec.zkclient.ZkClient
```
when executing `compileLatestDepTestGroovy`.
2019-12-16 08:51:30 -08:00
Tyler Benson 839de614a5
Merge pull request #1136 from DataDog/tyler/tag-query
Capture full servlet URL in decorator
2019-12-12 15:16:38 -08:00
Laplie Anderson 86c3e80121 End Play 2.6 muzzle at 2.8 because its breaking 2019-12-12 17:47:21 -05:00
Tyler Benson b00cdee54a Capture full servlet URL in decorator
This is needed in order to tag the query string (when configured).

Full test suite will follow in future PR.
2019-12-12 13:47:40 -08:00
Brian Devins-Suresh cf3f04f509
Merge pull request #1129 from DataDog/brian.devinssuresh/jedis-3.0
Add support for jedis 3.0+
2019-12-11 11:22:16 -05:00
Laplie Anderson 8cae56219b Adding some implementation comments 2019-12-10 18:28:21 -05:00
Laplie Anderson f836f8976a Combine onControllerStart and onAbort 2019-12-10 18:07:26 -05:00
Laplie Anderson 73062199b0 Move constants to decorator 2019-12-10 14:00:31 -05:00
Laplie Anderson 5d2d19af75 Rename class since they instrument the context 2019-12-10 14:00:31 -05:00
Laplie Anderson 54ba905224 Add a Resteasy 3.1 test set 2019-12-10 14:00:31 -05:00
Laplie Anderson 498d2bd461 Add ContextRequestFilter instrumentation to JAX-RS 2019-12-10 14:00:31 -05:00
Tyler Benson 307e56714e
Merge pull request #1133 from DataDog/tyler/move-dropwizard-tests
Move dropwizard tests to dropwizard project
2019-12-10 10:51:42 -08:00
Tyler Benson 55fe3ba228 Move dropwizard tests to dropwizard project
This separate directory helps to avoid conflicts with JerseyTest.
ResourceTestRule usage in JerseyTest was causing some odd interactions which resulted in traces not being reported.
2019-12-10 10:08:04 -08:00
Laplie Anderson 7717dbf5d8
Merge pull request #1115 from trask/fix-sporadic-test-failure
Fix sporadic test failure in Elasticsearch53SpringRepositoryTest
2019-12-10 12:58:25 -05:00
Laplie Anderson fa14af40c3 Fix muzzle issue with async instrumentation 2019-12-06 18:18:34 -05:00
Brian Devins-Suresh c7329e4b6b Work around muzzle feature missing 2019-12-06 14:12:46 -05:00
Laplie Anderson d2db6b6fd9
Merge pull request #1098 from DataDog/tyler/jax-rs-annotation-inheritance
Support JAX-RS Annotation Inheritance
2019-12-06 13:49:46 -05:00
Brian Devins-Suresh c72f2d3b45 Fix muzzle test for 3.0 2019-12-06 13:45:05 -05:00
Brian Devins-Suresh 73eb217721 Make matchers more strict 2019-12-05 17:02:39 -05:00
Brian Devins-Suresh 2e5aff391d Use random ports for embedded redis 2019-12-05 16:23:22 -05:00
Brian Devins-Suresh 00fb29f528 Some clean up 2019-12-05 15:59:12 -05:00
Brian Devins-Suresh 7b92c40cbc Add support for jedis 3.0+ 2019-12-05 15:09:58 -05:00
Laplie Anderson 42ac5fc024 Remove synchronization and static helper map 2019-12-04 15:43:28 -05:00
Tyler Benson 57c3ec196f
Merge pull request #1104 from trask/normalize-tag-verification
Normalize tag verification
2019-12-02 10:58:03 -08:00
Trask Stalnaker ae0eb52cd7 Fix sporadic test failure 2019-11-27 10:31:59 -08:00
Trask Stalnaker 847a76cb04 Add missing tag verification 2019-11-22 10:59:47 -08:00
Trask Stalnaker 1987e86ebf Normalize tag verification order 2019-11-22 10:59:45 -08:00
Douglas Q Hawkins 2d87882724
Merge pull request #1112 from DataDog/dougqh/jmxfetch-config-resource-leak
Closing metricconfigs.txt
2019-11-22 13:51:50 -05:00
dougqh 75727840df Closing metricsconfigs.txt 2019-11-22 13:08:56 -05:00
Tyler Benson 10b0f35235
Merge pull request #1090 from DataDog/tyler/servlet-path
Add servlet.path tag
2019-11-22 09:18:14 -08:00
dougqh be9743b86b Eliminate class expression to Advice class
Changing Jasper instrumentation to not load the advice class.
This class was missed originally because it doesn't end in Advice.
2019-11-22 09:51:05 -05:00
Laplie Anderson f0bbd46097 Typo in merge conflict resolution 2019-11-21 13:07:02 -05:00
Laplie Anderson f1362a7d57
Merge branch 'master' into tyler/jax-rs-annotation-inheritance 2019-11-21 12:51:01 -05:00
Laplie Anderson 45c16a1c55 Create Play WS 2.1 Project 2019-11-20 18:13:41 -05:00
Zachary Groves c4cebc30c8
Merge pull request #1097 from DataDog/ZStriker19/remove_duplicate_okhttp_span_and_okhttp_separate_service
Remove duplicate Okhttp span and stop separate service creation of ok…
2019-11-20 17:01:18 -06:00
Laplie Anderson aa46e81e19 Copy instrumentation to jax-rs2 2019-11-20 15:38:17 -05:00
Laplie Anderson 75d66dee21 clean and fix tests 2019-11-20 13:14:35 -05:00
Laplie Anderson 7640e68337 The same classwalking is necessary for @Path 2019-11-20 13:07:04 -05:00
Laplie Anderson fd4e2d09e1 Fix method iterable logic. methodPath, httpMethod working 2019-11-20 10:18:00 -05:00
Laplie Anderson 99acb52589
Merge pull request #1103 from DataDog/landerson/load-generator
Simple load generator tool
2019-11-19 10:19:14 -05:00
dougqh 6b096c2240 Replacing Advice.class references
Replacing Advice.class references with string construction.

This stops the JVM from loading the Advice classes which are used as templates for byte buddy and doesn't ever need to be run directly.

This eliminates ~130 class loads at start-up -- and saves 0.5MiB in metaspace
2019-11-18 16:09:30 -05:00
dougqh 022257ee55 Fixing resource leak
To check for existence, switching from getResourceAsStream to getResource
2019-11-18 10:52:23 -05:00
ZStriker19 caaff02c87 Needed to run Java google format. 2019-11-15 15:30:39 -05:00
Tyler Benson 393a88585a First pass at supporting annotations inheritance for JAX-RS
[skip ci]
2019-11-15 11:53:16 -08:00
ZStriker19 c0ba1d3446 Changed test file permissions to match master. 2019-11-15 13:42:28 -05:00
ZStriker19 348cbc74c2 Changed okhttp file permissions back to original settings. 2019-11-15 13:29:51 -05:00
Tyler Benson a77045b9dc Add more complexity to jersey resource test
This demonstrates a matching failure in our current instrumentation.
2019-11-14 16:01:16 -08:00
ZStriker19 8fb32b5730 Remove duplicate Okhttp span and stop separate service creation of okhttp. Instead okhttp will now appear as part of the service that is using okhttp to make the call. 2019-11-14 17:29:28 -05:00
Laplie Anderson 509e655518 Move play-ws-1 and play-ws-2 into separate packages 2019-11-13 16:41:12 -05:00
Laplie Anderson 03b3fa6651
Merge pull request #1092 from DataDog/landerson/debug-instrumentation-names
Print all instrumentation names when muzzled
2019-11-13 16:36:40 -05:00
Laplie Anderson 251ceeb978 Print all instrumentation names when muzzled 2019-11-13 14:12:26 -05:00
Tyler Benson 53b4e5db19 fix test 2019-11-12 15:17:35 -08:00
Nikolay Martynov 2c4422aa04 Upgradle to gradle 6.0 2019-11-12 16:26:46 -05:00
Tyler Benson bff8303e18 Remove duplicate onRequest call.
This info should already be populated by the servlet framework.
2019-11-11 15:58:31 -08:00
Tyler Benson fdf2241e5f Add servlet.path tag 2019-11-11 15:54:21 -08:00
Laplie Anderson 88902046ce simple load generator tool 2019-11-07 16:50:23 -05:00
Nikolay Martynov 2789324cd5
Merge pull request #1084 from DataDog/mar-kolya/fix-agent-for-zulu8
fix agent for zulu8
2019-11-07 14:39:03 -05:00
Nikolay Martynov 8f80a42c4d Do not delay tracer on OpenJDK8 with JBOSS 2019-11-07 13:45:56 -05:00
Nikolay Martynov f371e391a8 Fix typo 2019-11-07 06:55:31 -05:00
Tyler Benson b002f0c190
Merge pull request #1085 from DataDog/tyler/remove-beta-integrations
Remove experimental jdbc and servlet integrations until further evaluation
2019-11-06 14:31:08 -08:00
Nikolay Martynov df6cb663d4 Fix test for case when tracer install is not delayed 2019-11-06 15:35:01 -05:00
Nikolay Martynov fdfe4b1dc3 More renames due to shadow clashes 2019-11-06 15:12:07 -05:00
Tyler Benson 2432a92230 Remove experimental jdbc and servlet integrations until further evaluation 2019-11-06 11:45:00 -08:00
Douglas Q Hawkins 599d1e0fab
Merge pull request #1082 from DataDog/dougqh/sisu-exclusion
Excluded classes generated by Eclipse Sisu
2019-11-06 14:41:36 -05:00
Nikolay Martynov 42cece67c2 Fix namespace clashes
Using `datadog.trace.agent` to hold agent class causes problems due to
shadowing into this package of other classes.
2019-11-06 13:58:20 -05:00
Nikolay Martynov 17155f7d57 Fix scala warning 2019-11-06 13:58:20 -05:00
Nikolay Martynov 15c1e67334 Fix agent on latest zulu8
The problem was that on zulu8 loading OkHttp touches JFR which in turn
touches log manager - which would break things like JBOSS.

The fix is to delay installing agent (and writer) until log manager
things have settled down - in way similar to jmxfetch.

Unfortunately for 'main' agent this turns out to be more involved
because of classloader shenanigans.
2019-11-06 10:09:50 -05:00
Nikolay Martynov 3715a3df53 Fix ClassLoadingTest
It should use real class to try to load
2019-11-06 09:57:09 -05:00
Nikolay Martynov 58d6103361 Allow big outputs in forked test processes 2019-11-06 09:38:53 -05:00
dougqh 270a440162 Excluded classes generated by Eclipse Sisu
This change excludes classes generated by Eclipse Sisu (part of Equinox DS).

These classes are created by https://github.com/eclipse/sisu.inject/blob/master/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/CloningClassSpace.java
2019-11-05 15:20:52 -05:00
Nikolay Martynov 415a875dfc Add generic is-before-java9 check 2019-11-05 13:08:21 -05:00
Nikolay Martynov b31778a05e Do not use `printStackTrace()` 2019-11-05 13:08:21 -05:00
Nikolay Martynov f236c0e8e0 Reformat some comments 2019-11-05 13:08:21 -05:00
Nikolay Martynov acfa861e4a Fix some typos 2019-11-05 13:08:21 -05:00
Nikolay Martynov 7f5b270c67 Call class loading callbacks from onComplete
This should make things more clear
2019-11-05 13:08:21 -05:00
Tyler Benson 2d3b644c84
Merge pull request #1080 from DataDog/tyler/rename-beta-configs
Rename config key for beta/experimental instrumentation.
2019-11-05 08:44:33 -08:00
Tyler Benson 4f853f5f0c Rename config key for beta/experimental instrumentation.
Postfix the existing config names with `-beta` for `servlet` and `jdbc`.

To avoid any risk that the config was explicitly enabled for an unrelated reason resulting in unexpected behavior when upgrading to the latest version.
2019-11-04 13:41:33 -08:00
Laplie Anderson 4ba0ca0f9d
Merge pull request #1078 from DataDog/landerson/big-integer-ids
Change TraceId/SpanId to BigInteger
2019-11-04 16:34:09 -05:00
Laplie Anderson bc2978e8d8 Use groovy literals for BigInteger 2019-11-04 16:16:03 -05:00
Laplie Anderson a3cd46708b
Merge pull request #1075 from DataDog/landerson/wsclient
Play WS Client instrumentation
2019-11-04 13:57:46 -05:00
Laplie Anderson bf4587c23d Missed a few test helper methods 2019-11-04 12:49:35 -05:00
Laplie Anderson cfc19facf5 Change String ids to BigInteger ids 2019-11-04 11:21:32 -05:00
Nikolay Martynov 92f62ca954 Fix scala warning 2019-11-04 08:22:20 -05:00
Laplie Anderson 9e26da85be wsclient -> play-ws 2019-11-01 14:37:06 -04:00
Laplie Anderson 68f8607dbf Fix latestDepTest dependencies 2019-10-31 11:48:52 -04:00
Laplie Anderson 3a1d331525 WSClient instrumentation 2019-10-31 11:12:00 -04:00
Laplie Anderson 64d6d39e78
Merge pull request #1074 from DataDog/landerson/circular-redirect
Add "testCircularRedirects" option to HttpClientTest
2019-10-31 10:29:36 -04:00
Laplie Anderson 8a2594eeab Add "testCircularRedirects" option to HttpClientTest 2019-10-30 18:17:49 -04:00