Commit Graph

232 Commits

Author SHA1 Message Date
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 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 cffde51b9e Add funky locking to ensure consistent execution for jetty test. 2017-09-21 13:47:28 -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 4e106679a7 Move packages around and rename dd-trace inside agent
This avoids conflicts if the user already has dd-trace included in their app.
2017-09-11 15:00:00 -07:00
Tyler Benson 62c167de16 Inject helper classes into application’s classloader
This is important for things like Spring Boot’s executable jar classloader which keeps all the jars individually rather than on the system classloader.
2017-09-06 11:08:28 -07:00
Tyler Benson c652aa262c Remove dependency on OpenTracing Agent
It brings in a bunch of duplicate and unnecessary dependencies since it also bundles them in its’ jar.  Copying the OpenTracingHelper class to our repo until we can refactor it away.  It also is Apache 2 licensed so I think we should be ok.
2017-09-05 16:48:22 -07:00
Tyler Benson 3df63d9e53 Split up manager responsibility by job
`TraceAnnotationsManager` is responsible for generating the rules for `@Trace`ed methods, `InstrumentationRulesManager` is responsible for our custom built Integrations.
2017-09-05 13:52:11 -07:00
Tyler Benson a8908c06d8 Move helpers to a separate project for future bundling
This will allow us to eventually inject these classes in the correct classpath rather than having them on the system classpath.
2017-09-05 12:19:22 -07:00
Tyler Benson b85b7aed1d Turns out Byteman doesn’t like $this as a reference
Their docs were misleading.

Also fix the readme’s maven dependency.
2017-09-01 14:22:34 -07:00
Tyler Benson ec08b37757 Use package-renamed Simple SLF4J logger
This will prevent us from respecting any existing SLF4J implementation and just print to the console.  This is important for things like Spring Boot that never put a SLF4J implementation on the system classpath, but instead keep it inside the jar.
2017-08-28 14:57:46 -07:00
Tyler Benson a0d4f2ca76 Report version from main
This allows running the agent as an executable jar to report the version number.

Also repot version scan errors better.
2017-08-28 13:39:19 -07:00
Tyler Benson 9a9da92b59 Add version checking via class/method for jetty 2017-08-24 17:38:16 -07:00
Tyler Benson 59d1be4ea7 Merge pull request #112 from DataDog/tyler/version-verify
Add version scan verification and test in CI
2017-08-24 17:20:48 -07:00
Tyler Benson 1b63a53167 Add version scan verification and test in CI 2017-08-24 17:15:22 -07:00
Tyler Benson 82a9c73c6b Merge pull request #111 from DataDog/tyler/servlet-async
Mark servlet trace filter as async supported
2017-08-24 07:47:15 -07:00
Tyler Benson 233d241e07 Mark servlet trace filter as async supported 2017-08-23 16:01:42 -07:00
Tyler Benson ab7598804e Update dropwizard and spring boot readmes. 2017-08-23 15:35:55 -07:00
Tyler Benson 9ff937557e Ensure rules are loaded on the right classpath for Spring Boot 2017-08-23 14:30:18 -07:00
Tyler Benson db2758af19 Merge branch 'master' into tyler/versions
# Conflicts:
#	dd-java-agent/src/main/java/com/datadoghq/trace/agent/InstrumentationChecker.java
2017-08-23 09:08:40 -07:00
Tyler Benson 55edba486a Order rules alphabetically and ensure matches. 2017-08-22 17:25:45 -07:00
Tyler Benson 60cfb392c4 Fix grouping so any rule can allow module to be active. 2017-08-22 10:33:24 -07:00
Guillaume Polaert 1086439da8 log as info level 2017-08-22 15:32:58 +02:00
Guillaume Polaert 78c99f4574 Add more logs to debug 2017-08-21 14:58:08 +02:00
Tyler Benson aad3746c2b Fix tests 2017-08-18 11:12:06 -06:00
Tyler Benson 988a3d0fdf Cleanup plugin and add identifying classes to config
Still missing jetty since that requires method level searching.
2017-08-18 11:11:37 -06:00
Tyler Benson 860df9856c Enable instrumentation to scan for classes for version matching 2017-08-18 11:11:37 -06:00
Tyler Benson 03ca35426c Convert InstrumentationCheckerTest to Spock 2017-08-18 11:11:37 -06:00
Emanuele Palazzetti f1f112ff5a Merge pull request #79 from gpolaert/resource-name
[servlet] resource name for HTTP frameworks
2017-08-03 13:03:50 +02:00
Emanuele Palazzetti c5c750bd49
[elasticsearch] remove auto instrumentation; will be added later 2017-08-02 17:42:01 +02:00
Guillaume Polaert d46099cbd9 adding tests 2017-08-02 14:22:20 +02:00
Guillaume Polaert 78b2faf03b typo 2017-08-02 13:38:14 +02:00
Guillaume Polaert aef9ebec9a change span.type value 2017-08-02 13:35:37 +02:00
Guillaume Polaert 16aba0ac7a [servlet] change the resource name for servlet integration (404 grouping) 2017-08-02 11:17:05 +02:00
Guillaume Polaert 402e4978e2 [core] cosmetics 2017-08-02 11:07:59 +02:00
Tyler Benson b371b59ce2 Don’t exclude the wrapper jar 2017-08-01 15:09:51 -07:00
Tyler Benson c5f57151c0 Use a factory to create TracingCommandListener
This bypasses the inexplicable change in visibility of the constructor.
2017-08-01 11:44:29 -07:00
Emanuele Palazzetti e236f44b12 [mongo] update the db.statement tag to use the quantized query 2017-08-01 12:28:28 +02:00
Tyler Benson 61c3729f72 Attempt to load config files with both `yaml` and `yml` suffix 2017-07-31 13:08:58 -07:00
Guillaume Polaert dad74d0c63 more robust and recursive 2017-07-28 13:47:56 +02:00
Guillaume Polaert 58cb653d41 improving the normalizer 2017-07-28 12:36:24 +02:00
Guillaume Polaert e830e1b7e6 fix the operation name 2017-07-28 09:20:40 +02:00
Guillaume Polaert f20ed93741 formatting 2017-07-28 09:20:40 +02:00
Guillaume Polaert 7dc170cc6f mongo helper for norm 2017-07-28 09:20:32 +02:00
Guillaume Polaert 864db966f1 Close span when exception exit (#66) 2017-07-27 21:09:25 +02:00
Guillaume Polaert a58f797fd1 moving files to dd-trace 2017-07-24 13:41:40 +02:00
Tyler Benson 8e4e9fe0ac Clean up version and include git sha in reported number
Exclude lombok from being included in the shadow jar.
2017-07-21 08:52:17 -07:00
Tyler Benson d6271d866e Use lombok @Slf4j annotation for declaring loggers 2017-07-19 11:24:41 -07:00
Guillaume Polaert e80b7580c8 Refactoring the logging, use slf4j 2017-07-19 08:16:42 -07:00
Tyler Benson 8420855deb Apply some additional inspections and quick-fixs 2017-07-19 08:09:19 -07:00
Tyler Benson e8dbc34bea Apply consistent formatting to other files 2017-07-19 08:09:19 -07:00
Tyler Benson 24bcb929c4 Merge branch 'master' into gpolaert/es 2017-07-17 11:28:09 -07:00
Guillaume Polaert b5051ae7c0 Disabling ES because the contribution throws a NPE. Waiting for the 0.0.3 release of the ES contrib (it's fixed) 2017-07-13 12:09:21 +02:00
Guillaume Polaert 4edff21599 Add test and support for ES 2017-07-13 11:18:19 +02:00
Tyler Benson 232801ab62 Another pass on improving the docs 2017-07-12 14:30:08 -07:00
Tyler Benson 2d89ee0d54 Apply automatic formatting
via `./gradlew googleJavaFormat`
2017-07-12 07:47:19 -07:00
Tyler Benson bf15a139d5 Remove tagsKV from @Trace annotation 2017-07-03 16:14:35 -07:00
Guillaume Polaert 94018ff596 fix artifact id 2017-06-29 10:57:57 +02:00
Tyler Benson 4de69c36b8 Review Fixes
Fix package names.
Revert oddness in pom file.
2017-06-28 11:14:32 -04:00
Tyler Benson cee31b4067 Rename packages for consistency 2017-06-27 16:34:32 -04:00
Guillaume Polaert 9ee1b8204b Adding a bit of documentation for the dev. 2017-06-27 10:28:09 -04:00
Guillaume Polaert aadc526338 refactoring the version checker 2017-06-26 16:55:54 -04:00
Guillaume Polaert b824be1295 Adding JMS version + fix some previous artifacts 2017-06-20 18:24:47 -04:00
Guillaume Polaert a9623a6ba4 Add comments and explanation on strategies used 2017-06-20 10:21:21 -04:00
Guillaume Polaert 6107454e30 be more readable 2017-06-20 09:15:51 -04:00
Guillaume Polaert 2cca7b0be5 fixing things for the release 2017-06-15 17:38:40 +02:00
Guillaume Polaert 265f6d6411 Oops, reverting name 2017-06-15 17:36:50 +02:00
Guillaume Polaert 4186f67100 Reverting the file 2017-06-15 17:09:17 +02:00
Guillaume Polaert 7f48045da9 Refactoring DDAgentTracingHelper, better log, better catch ... 2017-06-15 17:08:56 +02:00
Guillaume Polaert fd759df803 Refactoring OkHttp 2017-06-15 16:27:52 +02:00
Guillaume Polaert 9e92f65da4 Refactoring Jetty and Tomcat 2017-06-15 15:51:50 +02:00
Guillaume Polaert 610dc6531e Remove JAR checker cause we have a graceful exception 2017-06-15 14:34:14 +02:00
Guillaume Polaert e5887e24dc Fixing ES 2017-06-15 14:30:16 +02:00
Guillaume Polaert e632705140 Fixing AWS 2017-06-14 19:28:33 +02:00
Guillaume Polaert 305e7aeefb still issues on ES and AWS 2017-06-14 17:36:46 +02:00
Guillaume Polaert 41f6e66b2e first review for @renaud 2017-06-14 15:01:33 +02:00
Guillaume Polaert 862e143db0 Adding version control 2017-06-13 16:31:35 +02:00
Guillaume Polaert 0385e4819b Refactor helper 2017-06-13 16:03:19 +02:00
Guillaume Polaert de53b007d6 Help some lost souls 2017-06-13 14:23:51 +02:00
Guillaume Polaert 2e693a41db Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	dd-java-agent/pom.xml
2017-06-13 14:20:06 +02:00
Guillaume Polaert 143d1265f9 fix conflict 2017-06-12 09:12:31 +02:00
Guillaume Polaert 296aa426d7 working on Cassandra Contrib 2017-06-12 09:03:18 +02:00
renaudboutet 953c32b05c DDActiveSpan made closeable + Improvements & tests of the TracedClient 2017-06-09 22:51:53 +02:00
renaudboutet b12dcb53b4 Loaded new contribution versions + migration of instrumentation rules 2017-06-09 22:19:50 +02:00
renaudboutet 2583432737 By default custom annotations are disabled 2017-06-08 16:04:39 +02:00
renaudboutet 5123574203 Enable custom tracing with annotations over a subset of packages + documentation modified accordingly 2017-06-07 18:56:21 +02:00
renaudboutet 39a9eb7763 Refine AWS SDK allowed dependencies 2017-06-07 13:43:00 +02:00
renaudboutet e3f0f3a5a9 Add configuration file by system property 2017-06-02 23:20:30 +02:00
Guillaume Polaert 09721bb8ca Merge remote-tracking branch 'origin/dev' into dev 2017-06-02 16:33:21 +02:00
Guillaume Polaert bd6eb7d725 Improving pom.xnml (shade) 2017-06-02 16:14:34 +02:00
renaudboutet 96d4f10c87 Resolve conflicts 2017-06-01 18:39:49 +02:00
renaudboutet a48ff4c3c9 Refine HTTP client instrumentation versions + finner logging 2017-06-01 18:38:08 +02:00
Guillaume Polaert 913acc9ec7 clean config 2017-06-01 15:16:02 +02:00
renaudboutet 470ddac5fb Fix logging 2017-06-01 15:12:34 +02:00
renaudboutet cf90b839d2 Added JarVersions sanity check with auto-disabling capabilities 2017-06-01 15:05:34 +02:00
Guillaume Polaert 1a41751e34 refactoring skel 2017-05-31 15:25:02 +02:00
renaudboutet 96e98e3567 New feature: disabling instrumentations 2017-05-30 15:12:18 +02:00
renaudboutet 7587b284df Move back resolver in core + added the skipTagsPatterns option over samplers (+tests & examples) 2017-05-30 12:44:10 +02:00
renaudboutet 26342e48d9 Fix refactored decorators + ErrorFlag + DBStatement decorator + DDapi is streaming JSON (optim) 2017-05-29 19:17:44 +02:00
renaudboutet 8e14d51d58 Merge branch 'dev' of github.com:DataDog/dd-trace-java into dev 2017-05-29 17:33:13 +02:00
renaudboutet 29d2ab8aca Enable custom tracing in dd-trace.yaml 2017-05-29 17:22:28 +02:00
Guillaume Polaert 5e92d19114 Merge remote-tracking branch 'origin/dev' into dev 2017-05-29 17:12:43 +02:00
renaudboutet 5e957558e3 Moving resolver in agent 2017-05-29 16:28:32 +02:00
renaudboutet aecaca6309 Review configuration POJOs + created factories 2017-05-29 16:00:41 +02:00
Guillaume Polaert 4ac06482be Removing buggy es contrib 2017-05-24 16:09:02 +02:00
renaudboutet 8e165f37f0 added decorators default config files 2017-05-24 13:45:54 +02:00
renaudboutet 3f7d852a65 Rename HTTP & DB decorators + seggregate configurtions of decorators in dd-trace-decorators.yaml 2017-05-24 13:44:35 +02:00
renaudboutet ee9e0626df First version of the agent documentation 2017-05-24 13:31:24 +02:00
renaudboutet b59551390f First version of the agent documentation 2017-05-24 13:06:20 +02:00
renaudboutet 5239736d14 small fixes due to ES instrumentation 2017-05-24 09:21:41 +02:00
renaudboutet 1cd1183f07 Resolve conflicts + improve surefire test isolation using fork + tests logging less verbous 2017-05-23 21:07:47 +02:00
renaudboutet de338dd821 Small bug fixes on core + Apache HTTP Client auto instrumentation on agent 2017-05-23 19:38:10 +02:00
Guillaume Polaert fe667ece29 Merge remote-tracking branch 'origin/dev' into dev 2017-05-23 17:40:28 +02:00
Guillaume Polaert ca32835ff7 Adding ES instrumentation 2017-05-23 17:40:18 +02:00
renaudboutet c7353c827f Trace annotations JUnit tests 2017-05-23 15:57:59 +02:00
renaudboutet c89db2592c small fixes 2017-05-23 14:47:02 +02:00
Guillaume Polaert fe73a08ece Refactoring project skel 2017-05-23 14:08:55 +02:00