Commit Graph

248 Commits

Author SHA1 Message Date
Andrew Kent 9fbe70228f
Merge pull request #171 from DataDog/ark/tracer_init
init global tracer in premain
2017-12-10 08:09:04 -08:00
Andrew Kent b231306f57 init global tracer in premain 2017-12-08 16:56:43 -08:00
Andrew Kent 394f36d700 Fix idea compile for mongo modules 2017-12-08 14:15:36 -08:00
Andrew Kent 42832e77f5 Add agent's classloader to default instrumentation location strategy
The transformer needs the agent's classloader to resolve advice
classes at transform time. Also stop using reflection to register classloads.
2017-12-08 09:40:14 -08:00
Andrew Kent 6a646009fa Test system class sibling classloader
Test cases where the classloader of the instrumented class cannot
resolve agent advice classes.
2017-12-08 09:34:16 -08:00
Andrew Kent 34791bbdbf Move common instrumentation advice settings into DDAdvice 2017-12-08 09:34:16 -08:00
Tyler Benson 6f985c15bf Remove Byteman now that instrumentation is migrated
At some point, we should refactor the managers since this leaves them in an awkward state.
2017-12-07 13:11:26 -08:00
Tyler Benson 2e6ff44976 misc cleanup 2017-12-07 12:06:58 -08:00
Tyler Benson d933a4049a Move OkHttp instrumentation to byte buddy 2017-12-06 18:07:17 -08:00
Tyler Benson f807a5da18
Merge pull request #163 from DataDog/tyler/jmh-retransform
Add JMH Benchmarks
2017-12-06 08:04:07 -08:00
Tyler Benson 78210d6e42 Add additional cases for benchmarking. 2017-12-05 16:10:29 -08:00
Tyler Benson caf3953360 Add JMH Benchmarks 2017-12-04 17:30:54 -08:00
Andrew Kent 6fa303058f ApacheHttpClient bytebuddy instrumentation and tests. 2017-12-01 10:54:32 -08:00
Andrew Kent b6d9c13d0c Make cassandra matching stricter 2017-11-29 09:11:31 -08:00
Tyler Benson 3ea7ad73ed Fix version scan plugin
Now you can run `./gradlew :dd-java-agent:integrations:datastax-cassandra-3.2::scanVersionsReport -PshowClasses` to show you the classes you can use for that version range.
2017-11-28 18:34:56 -08:00
Andrew Kent 7298b0a31a Convert datastax cassandra instrumentation to bytebuddy 2017-11-28 17:01:04 -08:00
Andrew Kent 47b1eec6da Mongo Async Instrumentation and embedded mongo tests. 2017-11-27 09:18:49 -08:00
Andrew Kent 86a76ec588 Convert Mongo instrumentation to ByteBuddy 2017-11-27 09:18:49 -08:00
Tyler Benson 9ba647a2ac Add instrumentation for MessageListener 2017-11-17 16:02:09 -08:00
Tyler Benson 871ce37f80 Migrate JMS to Byte Buddy and add JMS 1 support
This does not yet include instrumentation for MessageListener.
I think there is actually no difference between the instrumentation so we should combine them.
I also added TEXT_MAP as a format that maps to the HTTP Codec.  There is some remapping inside the instrumentation to remove dashes before setting as a property.  This should also be changed when an official format is defined.

This also currently has a problem with Spring Boot applications as the JMS Util references classes not on the system classpath (it needs to be injected into the child classpath)
2017-11-17 12:06:30 -08:00
Andrew Kent b85b9b0c5d drop opentracing-mongo dependency 2017-11-13 10:34:07 -05:00
Andrew Kent dd8f71e164 MongoHelper query scrubber test 2017-11-13 10:34:07 -05:00
Andrew Kent 9cb097b783 Replace TracingCommandListener with DDTracingCommandListener 2017-11-13 10:34:07 -05:00
Tyler Benson ff4f39779e Fix transitive dependencies
New instrumentation was bringing in their dependencies into the jar, resulting in a much larger jar file.  This should resolve that.
2017-11-10 11:45:00 -05:00
Tyler Benson 66355feddb
Merge pull request #148 from DataDog/tyler/remove-super-matchers
Migrate expensive integrations using super matchers to byte buddy.
2017-11-10 09:42:48 -05:00
Tyler Benson 51f903acd6 Ensure helpers are injected on a classloader that has instrumented code. 2017-11-09 15:34:05 -05:00
Tyler Benson 294320acb5 Add exception handling and supression for advice.
Also centralize classloader matching.
2017-11-09 14:45:03 -05:00
Tyler Benson f61935452b Handle case where SQL is not saved in map properly.
Otherwise this could result in an NPE.
2017-11-08 14:54:32 -05:00
Tyler Benson e96c084b51 Migrate aws instrumentation to byte buddy. 2017-11-06 14:25:28 -08:00
Tyler Benson e5924b3fe9 Migrate servlet instrumentation to byte buddy. 2017-11-06 11:28:06 -08:00
Tyler Benson 4199d123c2 Better null handling for JDBC instrumentation
This also reduces the log noise for transformation issues around synthesized classes.
2017-11-01 11:30:05 -07:00
Tyler Benson e8bbc849bb Set resource name using the route pattern from spring.
This provides a better static resorce name than trying to conjure one out of the original URL.
2017-10-30 13:24:18 -07:00
Tyler Benson cacba43435 Use byte buddy for @Trace instead of byteman. 2017-10-26 14:45:16 -07:00
Tyler Benson 25029b4109 Add integration tests for in-memory jdbc drivers. 2017-10-25 10:37:37 -07:00
Tyler Benson 14b834a358 Ignore generic classes and proxy classes 2017-10-25 10:36:37 -07:00
Tyler Benson 0d64192d91 Set resource name and span type correctly. 2017-10-24 10:28:53 -07:00
Tyler Benson ef5481cc27 Change operation name and set service name. 2017-10-24 10:28:53 -07:00
Tyler Benson b40bcf9973 Add automatic instrumentation for JDBC
This instrumentation creates spans for Statements and PreparedStatements. It also captures the corresponding SQL and additional connection info.  ResultSet could be considered for future instrumentation to capture even more of the DB interaction time.

This integration uses Bytebuddy instead of Byteman as the many methods to instrument would have been messy in Byteman.
2017-10-24 10:28:53 -07:00
Tyler Benson 423b701049 Downgrade byteman library to non-beta version.
This is in effort to reduce some performance problems.
2017-10-24 08:15:37 -07:00
Tyler Benson f2d1f0c209 Capture and report errors and stacktraces 2017-10-13 16:32:13 +02:00
Tyler Benson af5ef5e624 Fix name overloading confusion.
references to entries below were using the wrong instance and thus not being cleaned properly.
2017-10-13 14:08:03 +02:00
Tyler Benson 33308eff80 Change visibility to protected
This should bypass an issue with the parent class being loaded on a different classloader, resulting in an IllegalAccessError.
2017-10-10 16:02:43 -04:00
Tyler Benson cfe36d03a8 Fix headers to match standard DD trace headers
Also prevent NullPointerExceptions in servlet handler if active span somehow missing.
2017-09-27 07:44:43 -07:00
Tyler Benson cffde51b9e Add funky locking to ensure consistent execution for jetty test. 2017-09-21 13:47:28 -07:00
Tyler Benson fb133c8905 Update servlet operation name. 2017-09-21 08:12:44 -07:00
Tyler Benson 30721d00dc Replace tomcat/jetty specific integ with generic servlet integ.
This should also work with things like Weblogic and Websphere with the main requirement being Servlet 2.3 or above compatibility.
2017-09-20 16:39:43 -07:00
Tyler Benson 19af7840fb Adjust logging a bit more. 2017-09-19 10:53:14 -07:00
Tyler Benson 9c39bb64ae Fix aws version in readme, add finals and reformatting 2017-09-18 10:49:08 -07:00
Tyler Benson 4b26b787b8 Improve error logging for defineClass 2017-09-18 10:33:25 -07:00
Tyler Benson b430eedb27 Prevent NPE for double registrations
When using jetty with spring boot, the helper is being called more than once, the second time resulting in null being returned by `addFilter`.  This should prevent an error from being thrown.
2017-09-13 13:00:25 -07:00