Commit Graph

1930 Commits

Author SHA1 Message Date
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
Tyler Benson df017e044a
Merge pull request #975 from DataDog/tyler/split-by-tag
Add new setting to allow renaming service by tag
2019-09-05 14:24:20 -07:00
Douglas Q Hawkins 2e5766ece9
Merge pull request #974 from DataDog/dougqh/no-lang-client-spans
Ensure "client" spans do not set the language tag
2019-09-05 13:38:25 -04:00
dougqh 46a36569e6 Adding FIXME for possible test clean-up 2019-09-05 13:23:51 -04:00
Tyler Benson c410f5b78b Add additional tags for aws-sdk spans
s3 -> bucket name
dynamodb -> table name
sqs -> queue name/url
kinesis -> stream name
2019-09-04 12:41:45 -07:00
Laplie Anderson 3323bbc5b1 java.sql classes are not always present 2019-09-04 13:11:03 -04:00
Tyler Benson 82f5076716 Add new setting to allow renaming service by tag
This is a more generic form of the previous `split-by-domain` and `split-by-instance`.

(Note: evaluation is done when a tag is set, so If multiple tags are configured, the last tag set will take precidence.)

For example, this setting can be used to rename `aws-sdk` spans to be identified with the corresponding `aws.service` tag:

```
-Ddd.trace.split-by-tags=aws.service
```

There are some slight differences with this setting compared with`dd.trace.http.client.split-by-domain` and `dd.trace.db.client.split-by-instance`.  `split-by-tags` applies to every span, where `split-by-domain` and `split-by-instance` only apply to http and db client spans respectively.
2019-09-03 16:55:47 -07:00
dougqh 4851cc9069 Re-running format through gradle
Need to figure out why IntelliJ and gradle are behaving differently for import order
2019-09-03 16:16:13 -04:00
dougqh 3e2ef885a5 Ensure "client" spans do not set the language tag
The core changes are in Config and ServerDecorator.

Moved default tagging from Config::getRuntimeTags to Config::getLocalRootSpanTags.  This changes the result of Config::getMergedJmxTags as well.

To preserve language for servers changed ServerDecorator::afterStart.

Other changes are in tests - the most complicated part is in TagsAssert::defaultTags.  This now contains a bit too much conditional logic for my liking.
2019-09-03 13:20:50 -04:00
Laplie Anderson 457410ea4e Run all tests on all java version 2019-09-03 13:03:16 -04:00
Laplie Anderson d94f5df00e
Merge pull request #968 from DataDog/landerson/better-internal-jar
Change packaging of internal jars
2019-08-30 15:09:41 -04:00
Tyler Benson a693c42dc1
Merge pull request #969 from DataDog/labbati/jax-rs-op-name
Static operation names for JaxRS instrumentation to be used as root span
2019-08-30 14:09:46 -04:00
Laplie Anderson ac2087eb4a Use .isolated instead of .jar 2019-08-30 14:06:51 -04:00
Laplie Anderson d03d583e85
Merge pull request #966 from DataDog/landerson/wrap-instrumentation-install
Wrap instrumentation installation with a try/catch
2019-08-30 14:02:13 -04:00
Tyler Benson aec22640f3 Remove unused method and finish comment
Also adjust naming slightly.
2019-08-30 13:52:54 -04:00
Luca Abbati 0b0d75bcf2
Jax-rs user METHOD PATH as resource only when root span 2019-08-30 19:28:55 +02:00
Luca Abbati 0b71c6bbe5
Rename operation jax-rs.endpoint to jax-rs.request 2019-08-30 17:57:03 +02:00
Luca Abbati d877039fa7
Set span.type = web on jax-rs endpoints 2019-08-30 13:57:30 +02:00
Luca Abbati 359ac9c190
Fix indentation in JaxRS instrumentation test 2019-08-30 13:05:24 +02:00
Luca Abbati d9f09e6af5
Minor refacotrings to JaxRsAnnotationsInstrumentation.java 2019-08-30 12:23:41 +02:00
Luca Abbati 37dcfe5385
Use static operation names for JaxRS instrumentation 2019-08-30 12:18:41 +02:00
Laplie Anderson f3bb22d8df Revert addition of tests. Too many issues 2019-08-29 18:20:09 -04:00
Laplie Anderson ae9f8e15dd Add test. Address other PR concerns 2019-08-29 17:48:29 -04:00
Laplie Anderson 5994fa8734 Change packaging of internal jars to be exploded in a subfolder 2019-08-29 16:04:10 -04:00
Laplie Anderson 08de0b02fd Wrap instrumentation installation with a try/catch 2019-08-28 17:33:11 -04:00
Tyler Benson 09ad2374cf Disable Grizzly instrumentation by default
Otherwise it can interfere with the more common Servlet instrumentation (changing the root span name).

Unify attribute/property name for saving span on a request/context.
Also add tests for embedded GlassFish.
2019-08-27 13:27:57 -04:00
Laplie Anderson 3f29e72317
Merge pull request #960 from DataDog/landerson/module-reference-fix
Ensure injected modules can read helper class modules
2019-08-27 12:42:34 -04:00
Tyler Benson 5f0e13f6c4
Merge pull request #956 from DataDog/tyler/play-testing
Update Play instrumentation to work with 2.7
2019-08-27 12:22:25 -04:00
Tyler Benson 263c442bdb Fix order of operations 2019-08-27 12:06:21 -04:00
Laplie Anderson 7a41ca7d6e Change whitelist fields from static to instance 2019-08-27 12:06:01 -04:00
Laplie Anderson d170984f72 Use weak references for the helper modules so ClassLoaders can be GC'd 2019-08-27 10:56:04 -04:00
Laplie Anderson 99e083b90f
Merge pull request #959 from DataDog/landerson/url-classloader-test
Add test for ClassNotFoundException creating a span
2019-08-26 17:13:55 -04:00
Nikolay Martynov 0592c016ca Update jmxfetch
New fixes include better tagging for k8s environments
2019-08-26 12:50:44 -04:00
Laplie Anderson 25c0d19f23 CodeNarc complains about the unused variable 2019-08-26 11:19:03 -04:00
Laplie Anderson 7b66a31d80 Ensure injected modules can read the helper class module 2019-08-23 19:14:10 -04:00
Laplie Anderson 9c5766162a Add test for ClassNotFound creating a span bug 2019-08-23 13:04:56 -04:00
Tyler Benson e74167adf2 Update Play instrumentation to work with 2.7
(Don’t be surprised when things break with 2.8… They’re religious about removing deprecated methods on minor release versions.  If they followed standard convention, they’d likely be on at least 11.x.)

Add client test for 2.4-2.5 http library.  2.6+ won’t work because the underlying frameworks we instrument are shaded.

Also add server tests.  We could do a lot more testing since it seems play still supports using Netty as the backing server even though it’s not the default.  It’s difficult to do extensive testing though because they have so many breaking changes between versions.
2019-08-22 12:43:13 -07:00
Tyler Benson e69edaec14 Remove project config centrally defined and other misc cleanup 2019-08-22 12:43:13 -07:00
Tyler Benson 95d056da5d More CR tweaks. 2019-08-21 16:48:52 -07:00
Tyler Benson 7e14f621b1 Review fixes and add tests. 2019-08-20 12:33:45 -07:00
Tyler Benson 28f4038122 Be more specific about thread assertion. 2019-08-20 09:43:27 -07:00
Tyler Benson 8c1dbfe7cb Make Muzzle handle cleaner thread properly. 2019-08-19 17:27:01 -07:00
Tyler Benson 09213f63b4 Extract logic out for `Cleaner` class. 2019-08-16 20:16:23 -07:00
Tyler Benson 70464c2e5d Add cleaner thread to EvictingCacheProvider’s cache
The guava cache used internally wasn’t cleaning (releasing references to) the expired entries properly, resulting in excessive memory overhead.

This PR also increases the size of the cache but reduces the last used expiration window.

I also added some tests to verify the expected behavior of the cache.
2019-08-16 16:30:15 -07:00
Tyler Benson 76c98598e2
Merge pull request #949 from DataDog/tyler/ratpack-testing
Improve Ratpack context propagation and migrate tests
2019-08-16 14:03:39 -07:00
Tyler Benson 452a619b4b Muzzle doesn’t seem to like those helper classes there
Had to move them externally for muzzle to be happy.
2019-08-16 10:10:09 -07:00
Tyler Benson 3958cebecf
Merge pull request #953 from DataDog/tyler/grpc-client-async
Enable async propagation for grpc client callbacks.
2019-08-16 09:38:55 -07:00
Tyler Benson fc30b4c5bb CR fixes. 2019-08-16 09:22:44 -07:00
Tyler Benson 8c490a42a2 Improve Ratpack context propagation and migrate tests 2019-08-16 09:17:50 -07:00
Tyler Benson 473aca7c08
Merge pull request #948 from DataDog/tyler/grizzly
Add instrumentation and tests for Grizzly 2.x Http Server
2019-08-16 09:06:58 -07:00
Tyler Benson 20277f5f4a Minor CR fixes. 2019-08-16 08:47:52 -07:00
Tyler Benson b69f9ea041 Enable async propagation for grpc client callbacks. 2019-08-15 17:12:32 -07:00
Nikolay Martynov 63cd73e79e Remove obsolete check
We are no longer using UrlConnection to send traces
2019-08-14 16:46:31 -04:00
Nikolay Martynov b0ff861392 Do not trace openConnection for Datadog ClassLoader 2019-08-14 16:46:23 -04:00
Tyler Benson ca040ab0dd Update JMXFetch to 0.30.1 2019-08-14 11:27:30 -07:00
Tyler Benson f5b73260ed Add instrumentation and tests for Grizzly 2.x Http Server 2019-08-13 16:05:11 -07:00
Tyler Benson ab623ab7b4
Merge pull request #942 from DataDog/tyler/http-server-testing
Jetty 8 test migration and ignoreParent
2019-08-13 13:07:18 -07:00
Tyler Benson bbfd02befc Update Jackson to 2.9.9.3
As recommended by https://nvd.nist.gov/vuln/detail/CVE-2019-14379

(Remove unused dependency)
2019-08-12 16:41:57 -07:00
Tyler Benson 2d08464be3 Fixes 2019-08-07 10:48:14 -07:00
Tyler Benson 6dd729b843 Jetty 8: ignore parent and move to HttpServerTest
This method of using jetty doesn’t seem to work with Servlet’s Async.  Native Jetty uses Continuations which we don’t support and should investigate instrumenting.
2019-08-07 09:35:04 -07:00
Tyler Benson 49249c0c6e Move server field to HttpServerTest 2019-08-07 08:35:18 -07:00
Tyler Benson f3e9fa22ef Add HttpServerTest for redirects 2019-08-07 08:35:18 -07:00
Laplie Anderson 548e4ed6e4
Merge pull request #934 from DataDog/landerson/remove-temp-jars
Eliminate temporary jars for instrumentation, jmxfetch, and bootstrap
2019-08-06 18:32:41 -04:00
Tyler Benson 1cfa847081
Merge pull request #941 from DataDog/tyler/common-deps
Remove common (redundant) dependencies
2019-08-06 15:29:14 -07:00
Tyler Benson 95a294a560 Remove common (redundant) dependencies 2019-08-06 14:51:04 -07:00
Tyler Benson efd0e5fb18 muzzle fix 2019-08-06 16:26:43 -04:00
Laplie Anderson 7b023ca95a Always use reflection to get VM args 2019-08-06 16:12:43 -04:00
Tyler Benson d77487017e muzzle fix 2019-08-06 08:58:36 -07:00
Tyler Benson 38cc03ae9e Misc fixes 2019-08-06 08:11:37 -07:00
Tyler Benson 668b1059f5 Migrate vertx tests to HttpServerTest 2019-08-05 15:52:04 -07:00
Laplie Anderson ff0cd73381 Getting the -javaagent parameter is necessary in some cases 2019-08-05 13:53:38 -04:00
Laplie Anderson 1a26e73ae8 Some tests need the agent jar loaded as an agent 2019-08-05 12:20:19 -04:00
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