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
Tyler Benson
0b1c7f022a
Helper classes also need the slf4j relocation treatment.
2017-09-12 16:02:33 -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
3bc153241b
Abstract core dependencies for central management
2017-09-07 16:38:21 -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
8ba3c0f156
Fix jacoco for integration tests
...
Also change slf4j package since it’s important for configuring log levels.
2017-09-05 11:43:37 -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
34f0922740
Add property to gradle.properties for easier debugging
...
When using a jar with packages renamed, the line numbers don’t match the classes in the IDE.
2017-08-22 17:23:28 -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
Tyler Benson
9b73fed3c5
Add plugin that scans for classes unique to version range
...
Does not include method signatures yet. Still a work in progress.
Execute with `./gradlew scanVersions --parallel`.
Using `--parallel` is strongly recommended.
2017-08-18 11:11:37 -06:00
Guillaume Polaert
2f65e93167
Remove OTARULES from OT agent
2017-08-16 11:16:12 +02:00
Tyler Benson
5dff2f1249
Rename google and byteman dependencies
...
But exclude the ones that cause the tests to fail.
Also add a test to verify the correct version of guava is loaded with the agent running.
2017-08-08 12:29:14 -07:00