Commit Graph

893 Commits

Author SHA1 Message Date
Gary Huang a366ed9e80
Muzzle and Expand Cassandra Instrumentation
Add muzzle block and remove class loader matcher method. Muzzling the instrumentation works for versions 2.3+
2018-09-10 18:33:17 -04:00
Gary Huang 9c1b641069
Merge pull request #484 from DataDog/gary/muzzle-okhttp-3
Muzzle OKHttp 3 Instrumentation
2018-09-10 12:10:37 -04:00
Gary Huang 05356cc1f5
Muzzle Hystrix Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-08 12:57:25 -04:00
Gary Huang ea0600c0c3
Muzzle Kafka Client & Streams Instrumentation
Add muzzle blocks and remove class loader matcher methods.
2018-09-07 20:11:01 -04:00
Gary Huang 48ad43e423
Muzzle gRPC Instrumentation
Add muzzle block and remove class loader matcher methods.
2018-09-07 20:02:40 -04:00
Gary Huang 6bc6bcdec9
Remove version scan from JMS Instrumentation 2018-09-07 19:56:17 -04:00
Gary Huang a8f52d8c52
Muzzle Jetty Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 17:24:11 -04:00
Gary Huang b53514c458
Muzzle Jedis Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 16:47:00 -04:00
Gary Huang 78bf5d3aff
Muzzle OKHttp 3 Instrumentation
Add muzzle block and remove class loader matcher method.
2018-09-07 16:28:58 -04:00
Gary Huang 5bac242a89
Muzzle Spring Web Instrumentation
Add muzzle block and remove class loader matcher methods.
2018-09-07 15:31:44 -04:00
Tyler Benson b3222009ef Stop sending params with AWS traces
can potentially contain sensitive data.

(See #461)
2018-09-07 08:55:24 +10:00
Tyler Benson b4c8b7e538 Add @RetryOnFailure to ES tests. 2018-09-05 14:46:22 +10:00
Tyler Benson f5590e97bd Cleanup tests 2018-09-05 14:46:22 +10:00
Tyler Benson 444cbecba5 Use CouchbaseMock instead of actual server
Seems way more reliable/consistent for test scenarios.
2018-09-05 14:46:22 +10:00
Tyler Benson 0655ef208f Further attempt at making tests reliable. 2018-09-05 14:46:22 +10:00
Nikolay Martynov 422ded1d5b Configure Spring Couchbase client with proper couchbase environment
It looks like Couchbase container may have some of the ports mapped
randomly. This means it is possible default environment settings might
not work - and this is what Spring is using by default. This change
makes Spring use environment provided by cluster container. This fixes
tests when they are run locally (at least for macos).
2018-09-05 14:46:22 +10:00
Tyler Benson 2c4366cae7 Retry on failure 2018-09-05 14:46:22 +10:00
Tyler Benson 9ea1883015 Separate out bucket and cluster instrumentation
Include bucket name in bucket spans
2018-09-05 14:46:22 +10:00
Tyler Benson 63091c9350 Review fixes 2018-09-05 14:46:22 +10:00
Tyler Benson 2761615436 Couchbase instrumentation 2018-09-05 14:46:22 +10:00
Andrew Kent 222f25e124
Merge pull request #471 from DataDog/ark/elastic-enable
Enable and muzzle elasticsearch instrumentation
2018-09-04 20:50:32 -07:00
Gary Huang 2442cfd2e5
Merge pull request #476 from DataDog/gary/lettuce-muzzle
Muzzle Lettuce 5 Instrumentation
2018-09-04 21:54:03 -04:00
Gary Huang 5f137beb9a
Merge pull request #460 from DataDog/gary/spring-webflux-instrumentation
Spring webflux instrumentation
2018-09-04 13:38:06 -04:00
Andrew Kent 7aa86b8154
Merge pull request #475 from DataDog/ark/jax-muzzle
muzzle jax-rs instrumentation
2018-09-04 09:57:23 -07:00
Tyler Benson 96e02301f8
Merge pull request #473 from DataDog/tyler/combine-jms
Make JMS more resilent to property failure
2018-09-04 09:24:09 +10:00
Gary Huang dff9e2ef43
Muzzle Lettuce 5 Instrumentation
Add muzzle block and remove class loader matcher methods.
2018-09-01 14:34:42 -04:00
Andrew Kent b781c3163c muzzle jax-rs instrumentation 2018-08-31 13:51:15 -07:00
Gary Huang d152126558 refactor HandlerFunctionAdapterAdvice 2018-08-31 14:31:03 -04:00
Gary Huang df2699afc8 Address comments & add better resource naming for webflux spans.
Spans will now be named with the controller class name and method for request mapping (annotation based API), and lambda functions will be named with target class.lambda.
2018-08-31 14:31:03 -04:00
Gary Huang c87fec36ac Spring webflux instrumentation
instruments spring webflux 5+
2018-08-31 14:31:03 -04:00
Andrew Kent 9c42087ec3
Merge pull request #472 from DataDog/ark/jsp-enable
Enable and muzzle jsp instrumentation
2018-08-31 10:43:48 -07:00
Nikolay Martynov 52af1a2893
Merge pull request #474 from DataDog/mar-kolya/fix-netty-version
Fix netty version in instrumentation name
2018-08-31 12:35:39 -04:00
Nikolay Martynov 2b1f6382d4 Fix netty version in instrumentation name 2018-08-31 10:58:17 -04:00
Tyler Benson 8061bd2471 Add comment. 2018-08-31 16:27:31 +10:00
Tyler Benson 9cf7b28e88 Make JMS more resilent to property failure
Combine into single module and add test.
Replace classLoaderMatcher with muzzle check.

Thanks for the tip @adriancole.
2018-08-31 16:10:14 +10:00
Tyler Benson 2d04ef292e
Merge pull request #468 from DataDog/tyler/evict-typepool
Add eviction to a TypePool.CacheProvider’s cache
2018-08-31 08:57:18 +10:00
Andrew Kent b637f9ef91 Enable and muzzle jsp instrumentation 2018-08-30 15:56:59 -07:00
Andrew Kent 6755bcbbdf Enable and muzzle elasticsearch instrumentation 2018-08-30 15:12:18 -07:00
Nikolay Martynov 8034fc2afd
Merge pull request #470 from DataDog/mar-kolya/improve-es-tests
Improve ES tests
2018-08-30 17:03:33 -04:00
Andrew Kent 18ed9ee151 netty-4.1 muzzle 2018-08-30 11:29:04 -07:00
Nikolay Martynov 1d6349bafd Improve ES tests
* Account for the fact that IndexAction and PutMappingAction are not
  ordered deterministically
* Account for a fact that waiting for ES startup may produce multiple spans
2018-08-30 11:54:21 -04:00
Tyler Benson 6b0f20fc05 Add eviction to a TypePool.CacheProvider’s cache
Most items loaded are probably not often used.  Puts an upper limit on the size and evicts unused Resolution’s over time.
2018-08-30 11:56:53 +10:00
Andrew Kent 61aaebfc97 Create muzzle references from ldc instructions 2018-08-29 17:18:11 -07:00
Andrew Kent c06983ef34 muzzle netty-4.0 instrumentation 2018-08-29 13:28:25 -07:00
Andrew Kent f08a2025dd Fix dd-trace-api tracer registration in test runner 2018-08-28 19:05:18 -07:00
Andrew Kent 7154b54e10 Rename TracerBridge and Provider 2018-08-27 12:04:26 -07:00
Andrew Kent 9f1d22ea6b Register TracerBridge in TracerInstaller instead of DDTracer init 2018-08-27 12:04:26 -07:00
Andrew Kent 9338faa013 Muzzle inverse assertions 2018-08-24 10:47:37 -07:00
Andrew Kent 26705142bb Muzzle pass and fail directives in the same collection 2018-08-24 10:47:37 -07:00
Andrew Kent b6d1c18af9 Allow muzzle directives to have extra dependencies 2018-08-24 10:47:37 -07:00
Andrew Kent f06eb57449 Convert apache-http, akka, and play to muzzle plugin 2018-08-24 10:47:37 -07:00
Andrew Kent c6841c9d06 Add maven version scanning to muzzle 2018-08-24 10:47:37 -07:00
Tyler Benson 63bee3737c Enable executor instrumentation for gRPC server calls
This might be more than is needed.  Maybe cut back later.
2018-08-24 20:25:13 +10:00
Tyler Benson 51d74f6147 Begin 0.14.0 2018-08-24 11:35:47 +10:00
Tyler Benson 6b71340b5b Enable new netty instrumentation by default
Enabled the others in a separate PR and forgot to come back and enable this.
2018-08-24 09:32:51 +10:00
Tyler Benson 5a6215971a
Merge pull request #455 from DataDog/tyler/enable-integrations
Enable netty by default
2018-08-23 16:04:23 +10:00
Tyler Benson 36b49c7de3
Merge pull request #451 from DataDog/tyler/netty-client-fixes
Allow trace to persist across netty connect.
2018-08-23 16:03:58 +10:00
Tyler Benson 69c04ea4c3 Enable netty instrumentation by default 2018-08-23 08:43:31 +10:00
Tyler Benson 898647e000 Allow trace to persist across netty connect.
Also create span with error on connection failure.

Add tests for connection failure.
2018-08-22 09:45:33 +10:00
Nikolay Martynov c95baef487 Wait for given reference to get GCed in `waitGC`
This should help to make sure that object we are interested in
actually gets GCed.

This change also improves tests for PendingTrace and ScopeManager to
make sure that trace gets cleaned up.
2018-08-21 10:05:10 -04:00
Nikolay Martynov 520676538c
Merge pull request #449 from DataDog/mar-kolya/add-distributed-tracing-tests
Add some tests for distributed tracing in Tomcat and Jetty
2018-08-20 20:30:27 -04:00
Andrew Kent e28ee5f9e8 Add timeout to datadog classloader test 2018-08-20 11:10:08 -07:00
Nikolay Martynov a0036a76cc Add `runFinalization` to `waitForGC` 2018-08-19 00:49:27 -04:00
Nikolay Martynov a4cded9b4f Add some tests for distributed tracing in Tomcat and Jetty 2018-08-18 13:38:06 -04:00
Andrew Kent 2d8102c8f5 Register Datadog classloader as parallel capable 2018-08-17 15:42:49 -07:00
Tyler Benson f7407708a3
Merge pull request #444 from DataDog/tyler/test-http-server
Replace Ratpack test server with Jetty wrapped with groovy
2018-08-17 11:38:21 +10:00
Tyler Benson f60d71f379 Fix ServerTest from messing up AgentTestRunnerTest if ran first. 2018-08-17 11:14:04 +10:00
Tyler Benson 0b289205f8 Add fixme to adapter. 2018-08-17 10:53:12 +10:00
Tyler Benson 3fc2738179 Improve test coverage and reduce duplication 2018-08-17 10:36:45 +10:00
Nikolay Martynov 138f78ce4b Make Muzzle log class being instrumented 2018-08-16 17:28:32 -04:00
Tyler Benson 0b6c1bc3d3 Fix tests for Java 7, 9, and 10 2018-08-16 14:23:58 +10:00
Tyler Benson 20993e7e16 Allow tests to run on all JDKs 2018-08-16 14:23:58 +10:00
Tyler Benson e07dfffe5f Migrate tests to new TestHttpServer 2018-08-16 14:23:58 +10:00
Tyler Benson 63746907e4 Add TestHttpServer 2018-08-16 14:23:58 +10:00
Tyler Benson 3f2ec7dc48 Move to separate packages 2018-08-16 12:24:27 +10:00
Andrew Kent 3c1bf569ea Add reference pretty-printer to muzzle plugin 2018-08-15 10:01:19 -07:00
Andrew Kent c351a4825e Regenerate muzzle bytecode when run multiple times 2018-08-15 09:49:50 -07:00
Nikolay Martynov 36ec5d51e5 SafeHasSuperTypeMatcher: handle exceptions when getting class erasure 2018-08-15 09:49:50 -07:00
Andrew Kent a7c63b9261 Clarify comment for safe interface iteration. 2018-08-15 09:49:50 -07:00
Andrew Kent 57e85d4a13 Catch and log instrumentation matcher exception
Catching instrumentation matcher exceptions at the Instrumenter level
allows other, unrelated instrumentation to match.
2018-08-15 09:49:50 -07:00
Andrew Kent d64b162539 Remove safeMatch from element matcher and document bb cache class 2018-08-15 09:49:50 -07:00
Andrew Kent 260e3520aa Fix classloading integration tests 2018-08-15 09:49:50 -07:00
Andrew Kent 35c6fa2343 More error catching in safe matcher and reduce log level 2018-08-15 09:49:50 -07:00
Andrew Kent 75a6cee068 Add DDCachingPoolStrategy to reuse type descriptions 2018-08-15 09:49:50 -07:00
Ark f01c8349cc Deep-merge Reference fields and methods
Plus misc cleanup.
2018-08-15 09:49:50 -07:00
Andrew Kent e7bb7cfb3e Remove findLoadedClass 2018-08-15 09:49:50 -07:00
Andrew Kent 50c5a57c49 Replace UnloadedType with ByteBuddy TypeDescription 2018-08-15 09:49:50 -07:00
Andrew Kent 937e9a6cef Add more methods to PatchLogger 2018-08-15 09:49:37 -07:00
Andrew Kent 27cade057c Delegate bootstrap resource loading for unloaded types 2018-08-15 09:49:37 -07:00
Andrew Kent f8f45d7f14 Muzzle field matching 2018-08-15 09:49:37 -07:00
Andrew Kent c4daf007e3 Muzzle method and access matching 2018-08-15 09:49:37 -07:00
Andrew Kent 4887822eba Muzzle method ref creation and matching 2018-08-15 09:46:30 -07:00
Andrew Kent 0f6761dd4b Optimize Instrumenter logging 2018-08-15 09:46:30 -07:00
Andrew Kent 55a0abce68 Add notes of potential references to ReferenceCreator 2018-08-15 09:46:30 -07:00
Tyler Benson 2893eb6035
Merge pull request #435 from DataDog/tyler/jax-rs-improvements
Add span for jax-rs representing controller execution
2018-08-15 14:03:31 +10:00
Gary Huang 67c0f2fa03
Merge pull request #431 from DataDog/gary/okhttp-log
Remove Util Logger and Refactor test
2018-08-14 18:11:59 -04:00
Tyler Benson 84d38a8270
Merge pull request #439 from DataDog/tyler/method-signatures
Cleanup method signatures and servlet 2 instrumentation
2018-08-13 17:29:02 +10:00
Tyler Benson f801cbd466
Merge pull request #428 from DataDog/tyler/use-WeakConcurrentMap
Use WeakConcurrentMap
2018-08-13 16:44:16 +10:00
Tyler Benson dd11429575 Remove unused fields 2018-08-13 16:43:32 +10:00
Tyler Benson 232708e457 Prevent abstract classes from going through the muzzle plugin. 2018-08-13 15:35:46 +10:00