Commit Graph

2143 Commits

Author SHA1 Message Date
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
Tyler Benson 8e48a70c6d Fix jax-rs Path annotation inheritance
Turns out the class level path annotation overrides parent classes, so we only need to find the nearest one.

We also need to look from the instance’s class, not from where the method is defined.

Commented out a test case because we still need to compile against java 7.  That case will be added back when we upgrade to java 8.
2019-10-30 11:39:06 -07:00
kfujita b0e7e6a3f9 - fix test compile setting
- code format with google formatter
2019-10-30 08:57:13 -07:00
kfujita d8bd12bef8 This patch fixes NPE in jaxrs instrument which occurs when we use interfaces with default method and its impl class.
- reproduce NPE error with JaxRs class and interfaces in JavaInterfaces
- fix the logic target class of method with @Path annotation to avoid NPE
- setting java 1.8 for jaxrs's test
2019-10-30 08:57:13 -07:00
Tyler Benson 607dd553d4 Attempt to remove span-ordering race condition with NettyClientTest 2019-10-28 09:50:56 -07:00
Tyler Benson e4bc90d15d
Merge pull request #1067 from DataDog/tyler/db-connection
Add span when calling DataSource.getConnection with a trace.
2019-10-28 08:41:55 -07:00
Tyler Benson a903f20dc4
Merge pull request #1050 from DataDog/tyler/servlet-depth
Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
2019-10-28 08:39:56 -07:00
Tyler Benson 6703bd96bb Fix servlet propagation for “tail-call” situations
Sometimes servlets will call another servlet by “resetting” the request object.  This maintains the attributes previously set, including the span.  We want to allow the trace to start if there’s no “active trace” even if there is a span attribute.
2019-10-25 17:01:47 -07:00
Tyler Benson a3a1467192 Add span when calling DataSource.getConnection with a trace.
Disabled by default, and only creates a span if existing trace detected.

To enable:
* System Property: `-Ddd.integration.jdbc.enabled=true`
* Environment Variable: `DD_INTEGRATION_JDBC_ENABLED=true`
(Or more specifically with `jdbc-datasource`.)
2019-10-25 16:02:39 -07:00
Tyler Benson 425156115c Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
Disabled by default, and only creates a span if existing trace detected.

To enable all of them:
* System Property: `-Ddd.integration.servlet.enabled=true`
* Environment Variable: `DD_INTEGRATION_SERVLET_ENABLED=true`

(They have independent configs as well.  If needed, view the source below.)
2019-10-25 14:47:48 -07:00
Tyler Benson df387b486a
Merge pull request #1064 from DataDog/tyler/spring-controller-refactor
Refactor JAX-RS Annotation and Spring Controller/Handler Instrumentation
2019-10-25 14:44:07 -07:00
Tyler Benson fa80fee15d Refactor JAX-RS Annotation and Spring Controller/Handler Instrumentation
For spring:
* Move more logic to the decorator.
* Use a fixed operation name, but set the resource name.
* Rename the root span instead of the parent span (If there are other spans in between this could make a difference.)  Not sure what impact this would have if multiple controllers are called (ie, forward/include).

For Jax-rs:
* Rename the root span instead of the parent span (same concern as above with spring)
2019-10-25 10:19:25 -07:00
Tyler Benson 7ae5de1fc6 Refactor Servlet Advice
Moving directory structure around.
Combining advice, trying to make it propagate better.
2019-10-25 10:09:19 -07:00
Trask Stalnaker 8c558fa00e Format 2019-10-24 21:05:01 -07:00
Trask Stalnaker e32bf1816a Organize imports 2019-10-24 21:05:01 -07:00
Trask Stalnaker e06bb1db1f Remove OpenTracing gradle dependency 2019-10-24 21:05:01 -07:00
Trask Stalnaker 5bf5950bf7 Remove dependency on Tracer 2019-10-24 21:05:01 -07:00
Trask Stalnaker da80be693c Switch to new Tags class in testing module 2019-10-24 21:05:01 -07:00
Trask Stalnaker a45dc34c5c Remove testing module dependencies on GlobalTracer 2019-10-24 21:05:00 -07:00
Trask Stalnaker 86bd9793bd Switch to new Tags class in instrumetation 2019-10-24 21:05:00 -07:00
Trask Stalnaker 9182b64078 Switch to new Tags class in tests 2019-10-24 21:04:57 -07:00
Trask Stalnaker 002db5a170 Introduce Tags class
To remove dependency on OpenTracing Tags class.
2019-10-24 21:04:10 -07:00
Trask Stalnaker 99ddc497e7 Remove baggage item test
The new agent api does not have baggage item support.
2019-10-24 21:01:59 -07:00
Trask Stalnaker a9d3360701 Remove test dependency on GlobalTracer 2019-10-24 20:53:14 -07:00
Trask Stalnaker d45b571996 Remove unused code 2019-10-24 20:53:13 -07:00
Tyler Benson a8ca47ed03 Skip spring controller and dropwizard trace if no trace present
Also prefer early return instead of deep nesting for null check.
2019-10-24 14:40:08 -07:00
Tyler Benson 079dfd24bd ES deploy workaround. 2019-10-23 14:09:01 -07:00
Tyler Benson fbd16d8cb7 Add assert to ensure muzzle range not empty and update spring-data
Also fix a few muzzle definitions that are now broken with the new requirement.

Moved a few projects around to match correct version numbers.
2019-10-23 14:09:01 -07:00
Tyler Benson 7db4602253 Fix jax-rs-client minimum supported version
Can’t be completely sure since many of these versions don’t show up in a maven range query used by muzzle.
2019-10-23 14:02:04 -07:00
Tyler Benson 29f7288954 Merge pull request #1020 from trask/agent-api
Integration API to decouple from OpenTracing
2019-10-23 14:01:18 -07:00
Trask Stalnaker 30367c79cf Split up MessagePropertyTextMap 2019-10-21 18:46:58 -07:00
Trask Stalnaker 0107551c0e Remove outdated comment 2019-10-21 18:36:14 -07:00
Trask Stalnaker 8bb0f2c2f0 Use header objects directly where possible 2019-10-21 18:21:01 -07:00
Trask Stalnaker cc31c5a505 Remove unused code 2019-10-21 16:59:43 -07:00
Trask Stalnaker f6d2c1c1ef Fix two beforeFinish() calls 2019-10-21 16:59:36 -07:00
Trask Stalnaker b0c5b2cd78 Remove deprecated methods 2019-10-19 16:52:43 -07:00
Trask Stalnaker 299c396eab Update testing module to new agent api 2019-10-19 16:52:43 -07:00
Trask Stalnaker 41185662df Update twilio to new agent api 2019-10-19 16:52:43 -07:00
Trask Stalnaker 377df7b789 Update trace-annotation to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 05e6544ded Update spymemcached-2.12 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker f0c29adb61 Update spring-webflux to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 51fe9f48b9 Update spring-web to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 7775c1e132 Update spring-data-1.9 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 9b14f7198f Update sparkjava-2.3 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker a5c54c54f7 Update servlet-3 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 4a2517a7d3 Update servlet-2 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 7cb209bfa1 Update rxjava-1 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 4e4a9c9bb7 Update reactor-core-3.1 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 9775ae5b2f Update ratpack-1.4 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 462a6632f7 Update rabbitmq-amqp-2.7 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 7460c32248 Update play-2.6 to new agent api 2019-10-19 16:52:42 -07:00
Trask Stalnaker 4691396d11 Update play-2.4 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 9d51a80eae Update okhttp-3 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 6a7bafe389 Update netty-4.1 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker bb500f9c54 Update netty-4.0 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker b576c394af Update mongo to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 95f91f89ba Update lettuce-5 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 5f0a2ae6b4 Update kafka-streams-0.11 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 7259e288ff Update kafka-clients-0.11 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker b53652303c Update jsp-2.3 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 6b23ffbae8 Update jms to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker b3a86085cb Update jetty-8 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 1e81929aa8 Update jedis-1.4 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 308409f856 Update jdbc to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker 769873bb71 Update jax-rs-client-2.0 to new agent api 2019-10-19 16:52:41 -07:00
Trask Stalnaker b1f48185fa Update jax-rs-client-1.9 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 5ce96d905b Update jax-rs-annotations-2 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 244dc6996e Update jax-rs-annotations-1 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 7c954ecc0c Update java-concurrent to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker e7bfbf80bb Update hystrix-1.4 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 45e8b7fdc5 Update http-url-connection to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker d3c83419f9 Update hibernate to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 50dcc5bd4e Update grpc-1.5 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 74fda2e198 Update grizzly-2 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 120937d175 Update google-http-client to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 9775a94132 Update elasticsearch to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 4ca63b7440 Update dropwizard to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 44f06ed3b5 Update datastax-cassandra-3 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker 2c7609f7d7 Update couchbase-2.6 to new agent api 2019-10-19 16:52:40 -07:00
Trask Stalnaker d40c5dcbf2 Update couchbase-2.0 to new agent api 2019-10-19 16:52:39 -07:00
Trask Stalnaker ad0185d1c5 Update aws-java-sdk-2.2 to new agent api 2019-10-19 16:52:39 -07:00
Trask Stalnaker 09cdc177cf Update aws-java-sdk-1.11.0 to new agent api 2019-10-19 16:52:39 -07:00
Trask Stalnaker 887633f086 Update apache-httpclient-4 to new agent api 2019-10-19 16:52:37 -07:00
Trask Stalnaker 9ffde5d261 Update apache-httpasyncclient-4 to new agent api 2019-10-19 16:40:52 -07:00
Trask Stalnaker 3b8a514364 Update akka-http-10.0 to new agent api 2019-10-19 16:40:52 -07:00
Trask Stalnaker f67e3b98db Migrate base decorators to new agent api 2019-10-19 16:40:52 -07:00
Tyler Benson f734fc6661 Reduce tracer log line length - make name nicer
While “tracing.agent” matches the class name, this applies to the whole tracer where most things are labeled just “trace” (ie, config).
2019-10-18 17:01:26 -07:00
Laplie Anderson d635e6d8a9
Merge pull request #1047 from DataDog/landerson/apache-httpclient-missing-methods
Add instrumentation for all of Apache HttpClient methods
2019-10-18 18:53:02 -04:00
Laplie Anderson 3ae2bc73d8 Add instrumentation for all of ApacheHttpClient methods 2019-10-18 12:55:23 -04:00
Tyler Benson 126dc67181 Update AgentApi to OT 0.32.0 2019-10-17 14:11:07 -07:00
Tyler Benson 557d45a9fe Changes required for OT 0.32
This seems backwards compatable with 0.31 since all changes are additional, so this should be safe.
2019-10-17 13:54:56 -07:00
Laplie Anderson 6b2a4d996b Add (failing) tests for methods that were not instrumented 2019-10-17 16:09:37 -04:00
Laplie Anderson c8f3a26312
Merge pull request #1045 from DataDog/landerson/decorator-errors
Skip `@Decorator` classes when instrumenting
2019-10-17 16:02:54 -04:00
Laplie Anderson f2c5ae2675 Latest version requires at least 1 bean 2019-10-17 14:48:51 -04:00
Laplie Anderson 8971040a45 Supertypes are not always available. Only check the current class for decorator 2019-10-17 13:42:38 -04:00
Laplie Anderson 6e0af7cdeb Dont instrument `@Decorator`s or CDI breaks 2019-10-16 18:26:06 -04:00
Tyler Benson 7b6737f106 Make AgentTracer constructor private. 2019-10-15 16:12:48 -07:00
Tyler Benson 61151d425a Changes requested in review 2019-10-15 16:03:02 -07:00
Tyler Benson 757961e014 Initial implementation of agent internal API. 2019-10-15 15:40:44 -07:00
Nikolay Martynov ecc57ffcc5 `DDCachingPoolStrategy.size()` is not precise, use `find` instead 2019-10-11 09:00:16 -04:00
Tyler Benson 4679b07bb3 Decrease cache size and make soft values
Attempt to reduce memory overhead requirements.  Based on feedback, it seems 10k was overly agressive.  In memory constrained environments, use soft values to ensure the cache isn’t pushing usage over the limit.
2019-10-10 18:19:41 +02:00
cecile.terpin@gmail.com 526a9e2dfe log level configuration tests - fct names codenarc 2019-10-10 09:41:59 +02:00
cecile.terpin@gmail.com b6ad0382ba log level configuration tests (2) 2019-10-09 18:07:18 +02:00
cecile.terpin@gmail.com a08253d7ef log level configuration tests 2019-10-09 17:56:29 +02:00
cecile.terpin@gmail.com 048864c090 new configuation key for setting debug log level 2019-10-09 17:56:29 +02:00
Tyler Benson a6200f96c3 Upgrade Jackson to 2.10.0
This is primarily motivated by new CVE’s.

Upgrade jmxfetch to 0.32.1 which has the same change.
2019-10-09 12:04:45 +02:00
Douglas Q Hawkins 7dbad68fe4
Merge pull request #1014 from DataDog/dougqh/spring-data-support
Dougqh/spring data support
2019-10-08 17:45:51 +02:00
dougqh 63ef181032 Simplifying latestDepTest dependencies 2019-10-08 16:34:59 +02:00
Laplie Anderson a20e6249a0
Merge pull request #1031 from DataDog/landerson/trace-annotation-async
Enable Async Propagation for @Trace Annotatation instrumentation
2019-10-08 15:58:50 +02:00
dougqh 3e6419d4f0 Fixing latestDepTest 2019-10-08 15:12:43 +02:00
dougqh e696aa7da8 Test - no span for Object methods
Added a test case that confirms that no span is creating for Object methods on the repository
2019-10-08 14:29:07 +02:00
dougqh 01b92208d0 Clarifying comment 2019-10-08 13:47:11 +02:00
Laplie Anderson d5021e0cbc Add test case with netty 2019-10-08 13:43:26 +02:00
Tyler Benson 24632212e5
Merge pull request #1030 from DataDog/tyler/base-test
Extract base test class and move Config class changes there.
2019-10-08 10:44:55 +02:00
dougqh 5edff68c21 Propagating exception 2019-10-08 09:58:58 +02:00
dougqh b01bef7a23 Merge branch 'master' into dougqh/spring-data-support 2019-10-08 09:38:55 +02:00
Tyler Benson 9ef3332140 Extract base test class and move Config class changes there. 2019-10-07 18:51:25 +02:00
Laplie Anderson 584f181abb Fix OSGi bootstrap delegation property 2019-10-07 18:40:05 +02:00
Laplie Anderson 5719a783ad Make trace annotation instrumentation async propagating 2019-10-07 18:29:26 +02:00
Nikolay Martynov 654e09ee7f
Merge pull request #1028 from DataDog/mar-kolya/update-bytebuddy
Update bytebuddy
2019-10-07 12:15:26 -04:00
Nikolay Martynov 0b32d65b29 Rename license file
New bytebuddy uses LICENSE file that causes build problems on case sensitive FS
2019-10-07 11:48:59 -04:00
Tyler Benson 1b40500ca2
Merge pull request #1017 from DataDog/tyler/jax-rs-async
Add support for jax-rs AsyncResponse
2019-10-07 10:50:34 -04:00
Nikolay Martynov 1e5f0ac935 Minor comment clarification 2019-10-07 08:55:27 -04:00
Nikolay Martynov 8e75eeb506 Update bytebuddy to 1.10.1 2019-10-07 08:27:13 -04:00
Tyler Benson 828e21123c Remove debug println
Co-Authored-By: Laplie Anderson <randomanderson@users.noreply.github.com>
2019-10-07 14:19:46 +02:00
Tyler Benson 82180c2ea6 Add support for jax-rs AsyncResponse 2019-10-07 14:19:46 +02:00
Laplie Anderson 0d6fe9d267
Merge pull request #1022 from DataDog/landerson/spring-analytics
Change default for Spring and Ratpack analytics to be off
2019-10-07 05:07:31 -04:00
Laplie Anderson b971a1ae25
Merge pull request #1021 from DataDog/landerson/couchbase-test-setup-spans
Another couchbase test race condition
2019-10-07 05:01:22 -04:00
Laplie Anderson 95ec44942f Remove unused variables 2019-10-04 16:40:15 -04:00
Laplie Anderson 6f4ff22af2 Update tests to play nice with latest version 2019-10-04 15:48:33 -04:00
Laplie Anderson 831fa5c0fd Disable ratpack events by default 2019-10-04 11:41:41 -04:00
Laplie Anderson ecc2ee7955 Change default for spring analytics to be off 2019-10-04 11:41:41 -04:00
Laplie Anderson 6203091640 Wrap class setup spans in a trace for another race condition 2019-10-04 11:40:53 -04:00
dougqh f785fb2314 Pin spring-kafka at 2.2
Pinning spring-kafka @ 2.2 to fix breaking changin in spring-kafka-test 2.3
2019-10-03 16:53:39 -04:00
dougqh 001d1d8282 codenarc 2019-10-02 14:39:20 -04:00
dougqh dfcf9c6abd Enabling spring-data integration in test
Enabling the spring-data integration in this test

Mostly, this introduces an extra span for the repository; however, it also connects some previously separate traces under the repository action.
2019-10-02 14:21:35 -04:00
dougqh 78f203638e Introduced lazy proxy around DocRepository
To shift the set-up timing without adding a lot of ugly code (as I did previously), I introduced a lazy dynamic proxy around the repository.

I'm not really happy with this, but I consider it better than the prior approach.  There is also probably a more "groovy" way to do this.

As before, this change is itself non-functional.  The subsequent test will enable spring-data instrumentation and alter the test.
2019-10-01 17:44:31 -04:00
dougqh 85240a95ae Revert "Changing test set-up timing"
This reverts commit 0dc63d7d3c.
2019-10-01 16:16:52 -04:00
dougqh 0dc63d7d3c Changing test set-up timing
@Shared runs before the spring-data instrumentation is enabled.

Switching to more explicitly set-up code to change the timing; however, this change doesn't enabled spring-data instrumentation to keep this non-functional.
2019-10-01 16:16:44 -04:00
dougqh ec9e220f76 Cleaning up gradle file
After seeing the existing elasticsearch 5.3 spring data test, I decided to extend that instead.

However, I do think we need to revisit the best place for tests involving multiple pieces of instrumentation.
2019-10-01 14:07:23 -04:00
dougqh 02c2d43b80 spring-data -> spring-data-1.9
Changing directory name to spring-data-1.9 to reflect version restrictions as per review comments
2019-09-30 15:58:13 -04:00
dougqh 8b42d286e8 Removing unnecessary test code
Removing unnecessary test code left over from initial port integration
2019-09-30 14:21:24 -04:00
dougqh aeef4f4203 Removing unused dependency 2019-09-30 14:20:49 -04:00
dougqh 3780cec4f2 Adding setAsync
Adding setAsync as per review comment
2019-09-30 13:50:53 -04:00
Tyler Benson 9771a6c90f
Merge pull request #1009 from DataDog/tyler/integ-core-update
Update integrations core submodule to 6.14.0
2019-09-27 15:25:22 -07:00
dougqh 1b1cc34ba5 Switching setResourceName -> setTag
Per view comment, switching setResourceName -> setTag
2019-09-27 16:01:50 -04:00
dougqh 48b701877a googleJavaFormat 2019-09-27 13:55:32 -04:00
dougqh b91648d0e3 googleJavaFormat 2019-09-27 09:40:32 -04:00
dougqh ac557ed4ee operationName -> resourceName
Addressing review comments: operationName -> resourceName

This was vestige of the original SignalFX code
2019-09-26 14:56:50 -04:00
dougqh d192811419 Fixing muzzle version 2019-09-26 14:45:29 -04:00
dougqh 5cb0cc7c79 Preparing for ElasticSearch test
Adding spring-data-elasticsearch dependency just to make sure everything plays nice together
2019-09-26 09:57:40 -04:00
dougqh 56cebb1c0b Switched to extending JpaRepository
Switched to extending JpaRepository rather than CrudRepository, so that multiple spring data integrations can coexist.

Since JpaRepository redefines findAll, this required one update to the test.  The other references to CrudRepositopry remain unchanged since JpaRepository extends CrudRepository without redefining those methods.
2019-09-26 09:46:53 -04:00
dougqh 4d287c63bf googleJavaFormat 2019-09-26 09:31:28 -04:00
dougqh 45f6edfa6e / -> . 2019-09-26 09:30:04 -04:00
dougqh eb05fc7bc4 Adjusting support version of spring-data
Rather than using a somewhat ugly solution of implementing both postProcess method signatures.

I'm restricting the integration to newer versions (1.9 - Sept 2014) of spring-data to start.
2019-09-26 09:29:45 -04:00
Tyler Benson 088878f1d0 Use tracer from field instead of GlobalTracer 2019-09-25 19:04:46 -07:00
dougqh 3b14a1cacd Simplify @Bean annotation 2019-09-25 17:05:59 -04:00
dougqh 1e8af55d57 Fixed typo 2019-09-25 16:57:24 -04:00
dougqh 64a5fd61f9 Tinkering with version compatibility
RepositoryProxyPostProcessor has different method sigs depending on the version of spring-data-commons.

As stop gap implemented both signatures, but probably need to split spring-data support by version.
2019-09-25 16:50:45 -04:00
dougqh 59416bf521 Prefix with Jpa 2019-09-25 16:24:27 -04:00
dougqh 682cc40a32 PersistenceConfig -> JpaPersistenceConfig 2019-09-25 16:03:11 -04:00
dougqh d0cf564f07 spring -> spring.jpa
Moved spring to spring.jpa to make room for other spring data integrations.
2019-09-25 15:59:43 -04:00
dougqh 64e3ebca88 Adding license clause 2019-09-24 10:32:20 -04:00
dougqh 02c7e5b98b Renamed variable
Renamed transactionalMethod to just method, since this is no longer tied to spring-tx
2019-09-23 16:32:57 -04:00
dougqh 680c4426bc Changing muzzle spec to depend on spring-data again 2019-09-23 16:14:56 -04:00
dougqh a242e088de codeNarc - removed unused import of @Shared 2019-09-23 15:54:44 -04:00
dougqh 8a89547004 googleJavaFormat 2019-09-23 15:29:15 -04:00
dougqh 6b5acc8386 New Approach - instrument RepositoryFactorySupport
This revised version targets spring-data RepositoryFactorySupport rather than spring-tx

This is accomplished by injecting a RepositoryProxyPostProcessor during construction that adds a datadog specific MethodIntercptor.

In the end, this functions similarly to the tx support in that it uses a widely scoped MethodInterceptor.

This required some changes to the test as well.  The old test set-up the repository before the instrumentation was fully-enabled.  Enabling the instrumentation earlier capture extra traces where Spring JPA performs metainfo queries.
2019-09-23 15:26:18 -04:00
Laplie Anderson 31a7ce9b5b Explicitly cleanup the spans for each test 2019-09-20 18:32:48 -04:00
Tyler Benson 668649f62e Update integrations core submodule to 6.14.0
https://github.com/DataDog/integrations-core/tree/6.14.0

https://github.com/DataDog/integrations-core/search?q=jmx_metrics
2019-09-20 12:19:44 -07:00
Tyler Benson 8289ccd085 Skip CompletableFuture case in Java 7 2019-09-20 12:11:30 -07:00
Tyler Benson 363dd38d81 Add CompletableFuture$ThreadPerTaskExecutor to allow list
This allows trace propagation for CompletableFuture’s asyncPool even if `useCommonPool` is disabled.

Also added some additional futures to `WHITELISTED_FUTURES` and sorted list.
2019-09-20 11:08:10 -07:00
Laplie Anderson e6c061f841
Merge pull request #996 from DataDog/landerson/couchbase-op-id
Add operation id and network tags to Couchbase
2019-09-19 15:56:59 -04:00
Laplie Anderson 18e4b5e9fd Remove unnecessary muzzle 2019-09-19 15:38:53 -04:00
Tyler Benson 40a7ef6086
Merge pull request #1005 from DataDog/tyler/additional-executors
Fix async dispatch for Jetty QueuedThreadPool
2019-09-19 12:15:37 -07:00
Laplie Anderson 607f1b0a86
Merge pull request #1003 from DataDog/landerson/cleaner-test-fix
Cleaner test timeout fix
2019-09-19 15:02:35 -04:00
Nikolay Martynov 53b02fb333
Merge pull request #1002 from DataDog/mar-kolya/enable-tests-for-java13
Enable tests for java13
2019-09-19 12:28:00 -04:00
Nikolay Martynov 43603e970c Disable Log4j1 tests for java versions without '.'
Log4j1 seems to be broken on those.
2019-09-19 08:27:56 -04:00
Tyler Benson de44a0651c Fix async dispatch for Jetty QueuedThreadPool
Includes additional cleanup to supported executors list (removed anonymous classes).
2019-09-18 20:08:06 -07:00
Laplie Anderson d564ff937a Cleaner test timeout was too low 2019-09-18 18:06:27 -04:00
Laplie Anderson 43cbf7a16a Split traces and add timeout to blockUntilChildSpanFinished 2019-09-18 17:14:52 -04:00
Laplie Anderson 85ffafcd06 Updates based on pull request comments 2019-09-18 10:29:24 -04:00
Tyler Benson 2086664f6d Reduce overhead of URLAsResourceName decorator
Using `new URL()` just to parse the path out was rather expensive.  This should improve the situation.
2019-09-17 18:50:01 -07:00
Tyler Benson 80185f76f4 Enable async propagation in JAX annotation span 2019-09-17 11:35:10 -07:00
Laplie Anderson 0774933414 All couchbase tests have to be runUnderTrace for sorting 2019-09-17 13:53:03 -04:00
Nikolay Martynov cfd96850e0
Merge pull request #998 from DataDog/mar-kolya/avoid-unnecessary-objects-in-apache-client-instrumentation
Avoid unnecessary objects creation in Apache Http Client instrumnentation
2019-09-17 12:16:10 -04:00
Nikolay Martynov e9fc866e67 Add optimization to apache async client instrumentation 2019-09-17 11:47:57 -04:00
Tyler Benson f14bfe7803
Merge pull request #990 from DataDog/tyler/spring-web
Migrate spring-web to base httpserver test
2019-09-17 08:24:37 -07:00
dougqh 7c5e74bdf0 Cleaning-up decorator
The SpringDataDecorator is really for Spring transactions including non-DB related transactions.

The SpringDataDecorator never really implemented DB or ORM support anyway, since most of the methods just returned null.

Changing the decorator to just extend ClientDecorator instead.  Also rename to reflect its true purpose.
2019-09-17 10:51:30 -04:00
Nikolay Martynov 0748c10b72 Avoid unnecessary objects creation in Apache Http Client instrumnentation 2019-09-17 10:19:38 -04:00
dougqh 172ff747cb Updating muzzle spec
Switching muzzle to target spring-tx rather than spring-data (which is logical given the instrumentation point)

Also added extraDependency on aopalliance
This restricts the support the Spring 2.5 when spring-tx & spring-aop using aopalliance were introduced.
2019-09-17 10:06:43 -04:00
dougqh e43baf82be Renaming advice class
Renaming advice class to more accurately reflect what is being instrumented
2019-09-17 09:27:39 -04:00
dougqh 85389b48d8 Google Format 2019-09-17 08:24:57 -04:00
dougqh 0c3e0579b2 Switching to instrumenting transaction support
After experimenting with RepositorySupport$QueryExecutorMethodInterceptor switched to TransactionInterceptor.

QueryExecutorMethodInterceptor was too narrowly scoped and didn't capture the UPDATE or DELETE statement.  TransactionInterceptor captures everything, but is still a bit more broadly applicable than I'd like.
2019-09-17 08:19:42 -04:00
Laplie Anderson 8376d83aef Caching affects network tags 2019-09-16 18:34:23 -04:00
Laplie Anderson 111c44d2da State can be GCd before exit advice is run 2019-09-16 17:58:29 -04:00
Laplie Anderson 62ea7a59fb Cant test cross compile because the 2.6 instrumentation gets activated 2019-09-16 17:37:34 -04:00
Laplie Anderson e244ea633d Add operation id and network tags to couchbase 2019-09-16 16:59:29 -04:00
dougqh 122533fde6 Switching to simple concat for efficiency 2019-09-16 11:08:37 -04:00
Laplie Anderson 6a40938fe4 Split remove test into two parts 2019-09-13 18:56:00 -04:00
Laplie Anderson d3ec72922e Increasing the timeout may fix the spurious failures 2019-09-13 18:35:21 -04:00
Laplie Anderson fee58e07f2 Original merge 2019-09-13 17:48:22 -04:00
Laplie Anderson d063b42491
Revert "Couchbase Async Subscriptions" 2019-09-13 11:51:52 -04:00
Laplie Anderson e8d6928a8c Dont share environment. Slower but more deterministic 2019-09-12 21:48:36 -04:00
Laplie Anderson 4e5e75ebff Fix tests 2019-09-12 20:51:50 -04:00
Tyler Benson 407c973029 Migrate spring-web to base httpserver test
Unfortunately 404 test was not consistent and non-trivial to adapt.  I also couldn’t get the validation tests to work well either.  Revisit if we have time to dig deeper into spring.
2019-09-12 17:28:12 -07:00
Laplie Anderson 6c445ad030 Extract RxJava instrumentation from Hystrix and add to Couchbase 2019-09-11 19:25:08 -04:00
Laplie Anderson a5b5b0c307 Failing tests WIP 2019-09-11 19:25:08 -04:00
Laplie Anderson df0838070a Extract span assertion from couchbase tests 2019-09-11 19:25:08 -04:00
dougqh d2ba6af80c Removing unneecessary dependencies
Removing dependencies rendered redundant by clean-up in datadog repo - as per review comment
2019-09-11 14:29:34 -04:00
Tyler Benson e895d7c3a7
Merge pull request #983 from DataDog/tyler/cache-soft-refs
Optimize DDCachingPoolStrategy
2019-09-11 09:41:48 -07:00
dougqh ab52988ced Removing "Modified by SignalFx" 2019-09-11 11:33:14 -04:00
dougqh 60e9cc249c Removing "Modified by SignalFx"
Removing "Modified by SignalFx" comments, since our integration is current the same.

Added a comment to SpringJpaTest explaining the differences.
2019-09-11 11:23:49 -04:00
dougqh 7a366f0f01 Added explanatory comments to test
Added some explanatory comments for each span -- might turn these into assertions later

Primary aim was to understand the differences from the signalfx fork.  They seem to stem deviations in the underlying JDBC integration.
2019-09-11 09:55:40 -04:00
Laplie Anderson 07b58e1cf4
Merge pull request #957 from DataDog/landerson/instrumentation-module-check
Java 9 Modules Smoketest
2019-09-10 19:56:12 -04:00
Tyler Benson 988b03b2f3 Optimize DDCachingPoolStrategy
Reduce default cache size in EvictingCacheProvider, and return a NoOp CacheProvider when classloader is going to be skipped.
2019-09-10 15:52:37 -07:00
dougqh 1335296975 Fixing mismatches in spans collected by signalfx fork & datadog
There are two main differences...
- "hsqldb" vs "spring-data" as the root test service name
- an extra seemingly spurious sql span in signalfx
2019-09-10 17:42:49 -04:00
dougqh 6d38831252 Merge branch 'master' into dougqh/spring-data
Tweak partially picked from signalfx -- that commit included same other unwanted changes in this file and others (see 636c23ed2c)
2019-09-10 17:40:36 -04:00
Tyler Benson 42545a0906 Remove synchronization from RateByServiceSampler
This change avoids lock contention in a hot code path.

I also added double check locking in ClassLoaderMatcher to reduce the need of locking there.
2019-09-10 12:44:13 -07:00
Ryan Fitzpatrick 5f7e0609ed Initial spring data instrumentation 2019-09-10 15:13:20 -04:00
Tyler Benson 0681739ceb
Merge pull request #980 from marcoferrer/grpc-interceptor-error-tag
Fix span error tagging in grpc server interceptor
2019-09-09 15:58:47 -07:00
Marco Ferrer bcfb2ac3e7 run formatter 2019-09-06 19:58:57 -04:00
Marco Ferrer 8ee5d8ddc0 assert status code tag in streaming tests 2019-09-06 19:17:36 -04:00
Marco Ferrer f587011238 add TracingServerCall to helper class names 2019-09-06 18:48:44 -04:00
Marco Ferrer 57e03cc9ea update tests for new tags 2019-09-06 18:42:40 -04:00
Marco Ferrer 61d85d997a add comments for tracing call forwarder 2019-09-06 18:42:11 -04:00
Marco Ferrer b0074495f9 update tests for server error tag 2019-09-06 16:35:19 -04:00
Marco Ferrer b547886a0d introduce tracing call forwarder 2019-09-06 14:58:58 -04:00
Marco Ferrer 6ac07abe2b fix span error tagging in grpc server interceptor 2019-09-06 12:25:31 -04:00
Tyler Benson cd6dcf393b Apply fixed default operation name for @Trace generated spans
This should help reduce issues with multiple top level spans.
2019-09-05 16:21:27 -07:00