Commit Graph

1055 Commits

Author SHA1 Message Date
Qiyang Huang 91f0b1d662 Change compile & test versions to match muzzle blocks 2018-09-16 08:34:22 -04:00
Qiyang Huang e3712910b1 Muzzle Mongo Instrumentations
Add muzzle blocks.
2018-09-16 08:30:05 -04:00
Tyler Benson c1ab82663d
Merge pull request #479 from DataDog/tyler/broken-jax-rs-client
Handle connection failures for Jersey and Resteasy
2018-09-13 15:19:01 +10:00
Tyler Benson d111680dba Begin 0.16.0 2018-09-13 14:48:40 +10:00
Tyler Benson de21c7b245 Review fixes. 2018-09-12 10:32:05 +10:00
Tyler Benson 6732110f28 Handle connection failures for Jersey and Resteasy
CXF and other client frameworks will still lose the span and miss the error.
2018-09-12 10:10:31 +10:00
Tyler Benson bcec2e5f97 Add span.type and remove bucket name from resource.name 2018-09-12 10:04:13 +10:00
Andrew Kent faad7824ed Elasticsearch 5.3.0 instrumentation 2018-09-11 16:00:38 -07:00
Gary Huang a9a8a2af68
Merge pull request #490 from DataDog/gary/muzzle-kafka
Muzzle Kafka Client & Streams Instrumentation
2018-09-10 20:01:55 -04:00
Gary Huang 522035c317
Merge pull request #489 from DataDog/gary/muzzle-grpc
Muzzle gRPC Instrumentation
2018-09-10 20:01:04 -04:00
Gary Huang 202deaa0a6
Merge pull request #481 from DataDog/gary/muzzle-spring-web
Muzzle Spring Web Instrumentation
2018-09-10 20:00:46 -04:00
Gary Huang d7b87c07d8
Merge pull request #491 from DataDog/gary/muzzle-hystrix
Muzzle Hystrix Instrumentation
2018-09-10 20:00:20 -04:00
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
Tyler Benson 4583d12b31 Cleanup method signatures and servlet 2 instrumentation
adding the abstract servlet instrumentation reduces code duplication and makes it more similar to servlet 3 instrumentation.
2018-08-13 15:14:10 +10:00
Nikolay Martynov 44f501fa53 Fix resources directory name in lagom tests 2018-08-11 06:42:53 -07:00
Nikolay Martynov fc8cc47f85 WeakMap improvements
* Improve tests to not depend on thread schedulting
* Test all underlying implementations
* Reduce number of static values
2018-08-10 22:16:21 -07:00
Tyler Benson 6cef9b89b0 Make some things non-static 2018-08-10 15:41:26 +10:00
Tyler Benson b220309a68 PR review changes. 2018-08-10 12:23:13 +10:00
Tyler Benson 984bc7563d Add span.origin.type for JSP too.
Might be slightly redundant given `jsp.requestURL` but consistent with other instrumentation.
2018-08-10 12:14:16 +10:00
Tyler Benson d5cc84ea9f Add span for jax-rs representing controller execution
Also add additional `span.origin.type` tags for better visibility.
2018-08-10 10:36:42 +10:00
Tyler Benson a3875aff2c Logging improvements and other misc
from reviewing a customer’s logs.
2018-08-09 15:59:59 +10:00
Tyler Benson ae9d4619a4 Add instrumentation showing the rendering time 2018-08-09 13:10:45 +10:00
Tyler Benson eacc2d6402 Restructure how WeakMap is implemented
Use an interface.
Use a provider/supplier to avoid loading more onto the bootstrap classpath.
2018-08-08 16:54:44 +10:00
Gary Huang 2041d56de8 use Slf4j annotation. 2018-08-07 18:29:55 -04:00
Gary Huang abffe1779b Remove Util Logger and Refactor test
OKHttp instrumentation will not be using the java util logger, also applies the string representaiton of ip address for IPV4/6 tags. Refactored test.
2018-08-07 18:29:22 -04:00
Tyler Benson 5e55defeb3 Fix bootstrap classpath. 2018-08-07 17:11:42 +10:00
Tyler Benson d05e2cfe86 Add span for spring web controller. 2018-08-07 17:03:07 +10:00
Tyler Benson fff3118dec separate spring web and error instrumentation. 2018-08-07 16:33:51 +10:00
Tyler Benson 05dc51633a Update Spring Tests 2018-08-07 16:04:28 +10:00
Tyler Benson 9b00a27dce add javadoc and comparison 2018-08-07 12:42:14 +10:00
Tyler Benson 847484cd47 Use WeakConcurrentMap
Instead of `Collections.synchronizedMap(new WeakHashMap<>())`.
2018-08-06 14:14:57 +10:00
Tyler Benson e7aa7c52b4 Improve comments and add synchronization. 2018-08-06 11:38:28 +10:00
Tyler Benson 064ae4c238 Separate span for input and output streams. 2018-08-03 15:41:16 +10:00
Nikolay Martynov 911ad5f231
Merge pull request #417 from DataDog/mar-kolya/apache-http-client-fix-exception-handling
Apache http client fix exception handling
2018-08-01 14:58:28 -04:00
Nikolay Martynov 7ad9305927 Add some integration tests to check ByteBuddy's behavoir on class loading and parsing 2018-08-01 14:17:12 -04:00
Tyler Benson 50fde4c382 Begin 0.13.0 2018-08-01 13:03:37 +10:00
Nikolay Martynov bb2126bd9a Improve ByteBuddyElementMatchers javadoc 2018-07-31 20:14:03 -04:00
Nikolay Martynov 2bfb7b93ec Disable Lagom circuit breaker
It looks like they fail tests from time to time
2018-07-31 20:14:03 -04:00
Nikolay Martynov 78e6a9c336 Get rid of DDAdvice
Newer ByteBuddy api simplifies things.
2018-07-31 20:14:03 -04:00
Nikolay Martynov c66bd24d3a Use `safeHasSuperType` instead of `isSubType`
`isSubType` may fail on certain class lookup problems, even on classes
unrelated to given instrumentation, preventing instrumentation from
being applied.
2018-07-31 20:14:03 -04:00
Nikolay Martynov 6693a93485 Remove onInstrumentationError from LagomTest
We not longer need it since our instrumentation can handle underlying
loading problem.
2018-07-31 20:14:03 -04:00
Nikolay Martynov 6bc1d1ab8e Implement `saveHasSuperType` and use it instead of `hasSuperType`
The idea is to just 'trim' type hierarchy 'up-trees' that we cannot
resolve dring instrumentation instead of failing to instrument completely.
2018-07-31 20:13:59 -04:00
Nikolay Martynov deec4a795c Improve Apache HTTP client
Properly open and close outer span in multi-request cases
2018-07-31 20:12:17 -04:00
Nikolay Martynov 1ebe4732f8 Stop using `failSafe` matcher
It should not be necessary after we jave fixed class location issue
for ByteBuddy
2018-07-31 20:12:17 -04:00
Nikolay Martynov bae79514c0 Fix DDLocationStrategy to use DataDog ClassLoader
This allows ByteBuddy to properly find classes injected into the
agent.

Thanks @realark for providing a fix!
2018-07-31 20:12:17 -04:00
Nikolay Martynov 4ae9263e1c Set POOL_ONLY DescriptionStrategy for ByteBuddy
This makes sure no classes are loaded during instrumentation
transformation which allows us to safely instrument depndent classes.
2018-07-31 20:12:17 -04:00
Nikolay Martynov b6118f0397 Apache HTTP Client: add test for redirected request 2018-07-31 20:12:17 -04:00
Tyler Benson 9a6efe69f4 Fix netty dependency and class version checking 2018-07-31 17:42:40 +10:00
Tyler Benson b1304b478a Change http server span type back to `web` 2018-07-31 12:53:50 +10:00
Tyler Benson e6da80bb12 datastores 2018-07-31 12:53:50 +10:00
Tyler Benson 00a2e891b0 http servers 2018-07-31 12:53:50 +10:00
Tyler Benson 3856e7fd1a http clients 2018-07-31 12:53:50 +10:00
Tyler Benson 01d57fb497 elasticsearch 2018-07-31 12:53:50 +10:00
Tyler Benson d3ce57d84f mongo 2018-07-31 12:53:50 +10:00
Tyler Benson 094552cad3 memcache 2018-07-31 12:53:50 +10:00
Tyler Benson 2e7899b405 redis 2018-07-31 12:40:47 +10:00
Tyler Benson ff9ef671f3 Apply formatter on groovy files. 2018-07-31 12:09:28 +10:00
Tyler Benson 51919a77bb Apply formatter on java files. 2018-07-31 12:07:43 +10:00
Tyler Benson bc3af56b08 Apply formatter on scala files. 2018-07-31 12:07:30 +10:00
Tyler Benson b5c8a8b8fc Apply formatter on gradle files. 2018-07-31 12:04:00 +10:00
Gary Huang 4c88e1a0a8
Merge pull request #392 from DataDog/gary/uint64-id-support
Change the internal storage and handling of trace ID, span ID, and pa…
2018-07-30 15:01:10 -04:00
Tyler Benson 4e60246e17
Merge pull request #405 from DataDog/tyler/servlet-async
Refactor servlet instrumentation and disable async on response.
2018-07-30 10:27:54 +10:00
Nikolay Martynov f6edf913b7 Remove functions that do reflection which is not Java10 compliant
These functions are not used anylonger
2018-07-27 14:56:28 -04:00
Andrew Kent b64be6228c Don't check for helper classes in muzzle reference check 2018-07-27 11:03:02 -07:00
Nikolay Martynov fadce5c6b3
Merge pull request #400 from DataDog/mar-kolya/java10-support
Java10 support
2018-07-27 13:38:39 -04:00
Andrew Kent ee594f8567 Use connect operationName in httpurlconnection connect-first case 2018-07-26 15:34:27 -07:00
Andrew Kent 54485c3296 Don't trace httpurlconnection as a top-level trace 2018-07-26 15:34:27 -07:00
Andrew Kent d598515d09 Handle cases where connect() is called first 2018-07-26 15:34:27 -07:00
Andrew Kent df95af53a7 Remove getResponseCode() from httpurlconneciton instrumentation 2018-07-26 15:34:27 -07:00
Andrew Kent 2a35ecb497 Use connected field to determine io status of httpurlconnection 2018-07-26 15:34:27 -07:00
Gary Huang 2780ac7ac1 POC sun JDK http urlconnection instrumentation, currently creates one span. 2018-07-26 15:34:27 -07:00
Nikolay Martynov 0f80f7dd40 Remove old checks from HelperInjector
They are not really producing anything useful anf they depend on API
that is forbidden in Java9+
2018-07-26 10:11:24 -04:00
Nikolay Martynov 44b364332a Remove unused field and method 2018-07-26 10:11:20 -04:00
Nikolay Martynov 3f158bb47f Fix `SpockRunner` BootstrapJar creation under Java9+ 2018-07-26 10:01:55 -04:00
Nikolay Martynov 8cc2f6cbb2 Skip `jdk.internal.reflect.DelegatingClassLoader` in `ClassLoaderMatcher`
This is the same thing as `sun.reflect.DelegatingClassLoader` in older JVMs
2018-07-26 10:01:55 -04:00
Gary Huang 6317b21d5c Fix merge conflicts with service mapping change 2018-07-26 09:16:41 -04:00
Tyler Benson 1e36343485 Null or empty tags should remove previously set values.
Add context to servlet2 test.

Clean up some declared tracers that mess up the classpath.
2018-07-26 12:20:37 +10:00
Tyler Benson fb2817a134 Refactor servlet instrumentation and disable async on response.
Separate out common advice between instrumentation.
2018-07-25 15:12:55 +10:00
Nikolay Martynov b30ed0dfa0
Merge pull request #404 from DataDog/mar-kolya/fix-kafka-streaming-flaky-test
Fix flaky test in kafka streaming
2018-07-25 00:17:01 -04:00
Nikolay Martynov 5c1ac58c3f Fix flaky test in kafka streaming 2018-07-24 23:41:01 -04:00
Nikolay Martynov 7b644161d3 Migrate ApacheHttpClientTest to use span assertion api 2018-07-24 23:28:37 -04:00
Nikolay Martynov c98d5ef64b Increase ElasticSearch timeout in tests
Hopefully this would improve build stability
2018-07-24 23:07:18 -04:00
Gary Huang 93e70dcef6 Address comments and add test case for extracting non numeric IDs 2018-07-24 14:04:52 -04:00
Nikolay Martynov 3d8e76c2a4 Get rid of `WRITER_PHASER`
We have alternative way of doing the same thing and `Phaser` seems to be
not very correct way of doing this anyway.
2018-07-24 11:41:48 -04:00
Nikolay Martynov dcbf8d674a Akka-http-client: handle `singleRquest` throwing an exception 2018-07-24 11:41:48 -04:00
Nikolay Martynov 642b862c13 Do not reference `AkkaHttpClientTransformFlow` in instrumentation code
to avoid class loader problems
2018-07-24 11:41:48 -04:00
Nikolay Martynov 35b980ea89 Fix ElasticSearch config for 2.x client 2018-07-24 11:41:45 -04:00
Nikolay Martynov 732bce82d0 Fix typo 2018-07-23 10:04:53 -04:00
Nikolay Martynov 7794eacc91 Increase Cassandra request timeout in tests 2018-07-23 10:04:53 -04:00
Nikolay Martynov b4b99d991c Move AkkaHttpServerInstrumentation into Scala compilation
This is a hack to work around the problem of `auto-service` annotation
processing creating files with same name in `java` and `scala`
directories. This results in Jar having two files with the same name
instead of one concatenated file.
2018-07-23 10:04:53 -04:00
Nikolay Martynov 68ce09b461 Add missing Scala classes to list in injection classes 2018-07-23 10:04:53 -04:00
Nikolay Martynov fd5d80ba86 Make muzzle plugin apply to Scala code 2018-07-23 10:04:53 -04:00
Nikolay Martynov 161847752f Pass Span instead of Scope 2018-07-23 10:04:53 -04:00
Nikolay Martynov 5e67e6e5ba Migrate to new instrumentation API 2018-07-23 10:04:53 -04:00
Nikolay Martynov 277e7a1a3c Typo fix 2018-07-23 10:04:53 -04:00
Nikolay Martynov db895f2e34 Remove redundant plugin from akka gradle file 2018-07-23 10:04:53 -04:00
Nikolay Martynov ae37ca4b02 Add akka-http-client instrumentation: superPool 2018-07-23 10:04:53 -04:00
Nikolay Martynov 2b25de966a Add akka-http-client instrumentation
This is a very-very first pass: instrument single request
2018-07-23 10:04:53 -04:00
Nikolay Martynov 6932d581ed Add some helpful messages to AgentTestRunner assertions 2018-07-23 10:04:53 -04:00
Nikolay Martynov f9f135cbd6 Do not run Spymemcached tests locally under Java7
since it requires external Memcached container running because
testcontainers doesn't work on Java7.
2018-07-23 10:04:53 -04:00
Nikolay Martynov c844501bc5 Fixes for some minor checkstyle complaints 2018-07-23 10:04:53 -04:00
Nikolay Martynov ce7866d018 Use `io.opentracing.log.Fields.*` instead of hardcoded strings 2018-07-23 10:04:53 -04:00
Nikolay Martynov d4d770fe42 Pull out ratpack helper into seprate class to avoid copy-paste 2018-07-23 10:04:53 -04:00
Nikolay Martynov a882a5439c OkHttp instumentation: simplify error case 2018-07-23 10:04:53 -04:00
Nikolay Martynov 9d2755be17 Fix Google Java Formater violations
Some changes landed on master that do not comply with new formatter rules
2018-07-23 13:43:29 +10:00
Nikolay Martynov 4283e3acb1
Merge pull request #396 from DataDog/mar-kolya/test-http-client-timeout-increase
Increase build stability by increasing some http client timeouts
2018-07-22 21:35:32 -04:00
Tyler Benson 9988c8775f
Merge pull request #388 from DataDog/tyler/grpc
Instrument gRPC 1.5.0+
2018-07-23 11:19:48 +10:00
Nikolay Martynov 564b4e9dc3 Increase build stability by increasing some http client timeouts
This makes build more resilient to slow boxes and high parallelism
2018-07-22 00:41:37 -04:00
Nikolay Martynov f1466304e8 Move random port generation to actual usage in tests using listening ports 2018-07-20 11:57:37 -04:00
Nikolay Martynov c3825d9d52 Improve tmp dir handling in ES tests
Also make sure ES ports are allocated right before ES is started
2018-07-20 11:53:33 -04:00
Tyler Benson a34f7b849b Instrument gRPC
Adds spans for the duration of the connection and child spans for each message.
Also propagates the trace using the metadata object.
2018-07-20 12:25:04 +10:00
Tyler Benson aa3fc0717e Fix some formatting changes. 2018-07-20 10:31:14 +10:00
Nikolay Martynov 7c62e10542 Do not use advice class names in Lettuce instrumentation directly
Since this leads to Java8 code loaded into Java7 JVM in tests.
Insted reference class names by string.
2018-07-19 10:45:21 -04:00
Tyler Benson 12a2fce96d Upgrade java formatter version. 2018-07-19 14:10:53 +10:00
Andrew Kent 46428dc6a3 Enable Lettuce instrumentation by default 2018-07-18 18:45:46 -07:00
Andrew Kent 23d0439b12 Remove muzzle dead code, doc cleanup, and better logging 2018-07-13 16:24:01 -07:00
Andrew Kent 2925df8de5 Clean up and document 2018-07-10 17:26:49 -04:00
Andrew Kent 8e182edc03 Replace BIPUSH with LDC to prevent overflow 2018-07-10 17:26:49 -04:00
Andrew Kent 33ec3f0304 Add missing ratpack helper 2018-07-10 17:26:49 -04:00
Andrew Kent 6faf63d6d8 Add missing memcached helper 2018-07-10 17:26:49 -04:00
Andrew Kent ce73c403bf Elasticsearch5 helpers 2018-07-10 17:26:49 -04:00
Andrew Kent 628f4929dc Muzzle Assertions and gradle plugin 2018-07-10 17:26:49 -04:00
Andrew Kent 541a6998a4 Hook up muzzle to Instrumenter.Default's matcher 2018-07-10 17:26:49 -04:00
Andrew Kent d61f65f4ff Muzzle outline in Instrumenter.Default 2018-07-10 17:26:49 -04:00
Andrew Kent 836f49205b TraceConfigInstrumentation implements Instrumenter directly 2018-07-10 17:26:49 -04:00
Gary Huang bfc49e869e Make connections always close on test case completion. 2018-07-09 17:55:52 -04:00
Gary Huang 6bd7cf0675 Fixes #379.
Connection pools were creating proxy connection objects, so the proxy objects were cached. By unwrapping the proxies, the connection objects will be correctly cached and identified.

Refactored tests to use connection pools, and hsqldb connections only on statements (since they will not make a USER() query in a getMetaData call).
2018-07-09 17:55:52 -04:00
Andrew Kent 02a3e6a5d3 New Instrumentation API 2018-07-06 17:17:32 -04:00
Andrew Kent 33a139cdcb New Instrumentation outline 2018-06-28 14:54:14 -07:00
Andrew Kent f8e3ac3097 New instrumentation api outline 2018-06-28 14:54:14 -07:00
Andrew Kent 0360bd01ee
Merge pull request #378 from DataDog/ark/cassandra-fix
Remove most shadow relocates
2018-06-27 11:56:33 -07:00
Andrew Kent 3894f829bb Remove most shadow relocates
Shadow relocates are no longer needed because of our new bootstrapping
process.
It's no longer possible for agent dependencies to interfere with the
user's classpath.

The immediate reason for this change is a bug created in the Cassandra
instrumentation.
The Cassandra instrumentation references guava transitive deps from
the datastax driver. These references are re-written by shadow,
causing the instrumentation to reference 'datadog.agent.deps.google.*'
instead of the guava class.
2018-06-27 09:35:54 -07:00
Gary Huang cc7bb7943f
Merge pull request #354 from DataDog/gary/jsp-integration-branch
Generic JSP instrumentation with Tomcat Jasper compilation instrumentation.
2018-06-26 18:35:09 -04:00
Nikolay Martynov 8d6392fa94 Remove timeouts from lagom tests
It looks like server is started lazily and on laptop it may take over
5 seconds in parallel build. This means in may take long time on CI as
well.
It is in fact unikely that server will never return so adding timeout
introduces flakiness and doesn't really protect from any real-life
problems. Instead of hardcoding timeouts just rely on build eventually
giving up on its own one way or another.
2018-06-26 15:48:04 -04:00
Nikolay Martynov 44b63ea5ca Rename AkkaHttpInstrumentation to AkkaHttpServerInstrumentation
To be able to put client instrumentation in more consistent way
2018-06-26 15:41:59 -04:00
Nikolay Martynov 3ac866b0f9
Merge pull request #371 from DataDog/tyler/servlet-user
Set servlet’s user-principal as a tag when available
2018-06-26 13:41:13 -04:00
Andrew Kent 15c0f9a6b2 Akka-http-server renames 2018-06-26 09:55:32 -07:00
Nikolay Martynov a0d99e70fb Add tests to servlet intrumentation to verify that username is set correctly 2018-06-25 21:54:20 -04:00
Gary Huang 46e7036701 fix version scan and test versions 2018-06-25 16:54:45 -04:00
Tyler Benson 9899256381 Set servlet’s user-principal as a tag when available 2018-06-25 11:24:35 +10:00
Gary Huang eddb48f3e2 refactored tests, added parent-children relationship between spans in tests. Still need to figure out version scan and versions to support. 2018-06-22 18:24:06 -04:00
Gary Huang e90bcf624a add unit tests for jsp rendering (servicing requests), change to instrument generic jsp level rendering. 2018-06-22 18:24:06 -04:00
Gary Huang b1d06299cc JSP instrumentation
WIP: more unit tests to come
2018-06-22 18:24:06 -04:00
Nikolay Martynov 7405b7711b
Merge pull request #369 from DataDog/mar-kolya/increase-timeouts-in-url-connection-test
Increase timeouts in UrlConnection test
2018-06-22 17:17:04 -04:00
Nikolay Martynov 60a0722390 Increase timeouts in UrlConnection test
Before those timeouts where set to 10ms which legitimatelly can come
before server (even localhost) has a chance to reply with 'connection
refused'.

This should fix flaky test.
2018-06-22 16:57:31 -04:00
Nikolay Martynov 1fbb33d182 More fixes to Lettuce tests
Lettuce intrumentatio is implemented in a way that after operation has
been performed `span` is not closed syncronously - in fact this happens
on separate thread. This means `spans` for even syncronous operations
may be closed on opposite order.
This means that writing tests that pefrom two operations and expect
two traces is slightly more complicated. In many places we can just
avoid doing that by preparing necessary data in `setup`.

This fixes some of the false negatives in tests.
2018-06-22 16:44:58 -04:00
Nikolay Martynov 770f77a7ff
Merge pull request #367 from DataDog/mar-kolya/reduce-number-of-compile-workers
Reduce number of gradle workers during compile
2018-06-22 16:07:46 -04:00
Andrew Kent 8a666784a6 Close Jetty Handler scope 2018-06-22 11:53:39 -07:00
Nikolay Martynov 7882e4fe23 Make ES tests more deterministic by using listener pool with 1 thread
This should reduce number of false negatives in ES tests
2018-06-22 14:23:06 -04:00
Nikolay Martynov c050b4acd8
Merge pull request #366 from DataDog/mar-kolya/fixes-for-lettuce-tests
Fix some flakiness in Lettuce tests
2018-06-22 11:01:30 -04:00
Nikolay Martynov 389f65687a Fix some flakiness in Lettuce tests
It looks like automatic reconnection was enabled which lead to random
traces popping up in random places when Redis server was shutdown.

Also make sure that server persists only during single test to weedout
all inter-test dependencies.
2018-06-21 17:44:19 -04:00