Commit Graph

94 Commits

Author SHA1 Message Date
Tyler Benson 09ad2374cf Disable Grizzly instrumentation by default
Otherwise it can interfere with the more common Servlet instrumentation (changing the root span name).

Unify attribute/property name for saving span on a request/context.
Also add tests for embedded GlassFish.
2019-08-27 13:27:57 -04:00
Tyler Benson 28f4038122 Be more specific about thread assertion. 2019-08-20 09:43:27 -07:00
Tyler Benson 49249c0c6e Move server field to HttpServerTest 2019-08-07 08:35:18 -07:00
Tyler Benson 1cfa847081
Merge pull request #941 from DataDog/tyler/common-deps
Remove common (redundant) dependencies
2019-08-06 15:29:14 -07:00
Tyler Benson 95a294a560 Remove common (redundant) dependencies 2019-08-06 14:51:04 -07:00
Tyler Benson c60e1dbcba Set ignoreActiveSpan for Servlet 2 and capture status code
This change wraps the servlet response object in order to collect the status code.  This can be risky if the code is expecting a raw type object.  We are extending a standard “HttpServletResponseWrapper” though, so it should be easy to work around.

This change also moves to the standard HttpServerTest for Servlet 2.
2019-08-05 08:42:46 -07:00
Tyler Benson 6f229305bb Review fixes 2019-08-02 10:01:03 -07:00
Tyler Benson 9681b91f3e Fix test. Format. 2019-07-29 15:27:26 -07:00
Tyler Benson d6b903665e Copy servlet listener over to new context on dispatch.
This allows it to finish the span with the correct response.
2019-07-26 16:30:23 -07:00
Tyler Benson c3203dace8 Migrate servlet tests to HttpServerTest
Currently missing the authentication tests which need to be added to the parent, but other than that, testing is more thorough.

Discovered that trace propagation for Jetty Async is currently busted so I commented that portion of the test out until we can get it fixed.
2019-07-26 16:01:06 -07:00
Nikolay Martynov 1fbe395586 Avoid Jetty 10 in servlet-3 test
Alpha version of Jetty 10 was released and it seems to be compiled for
java versions above 8 so tests fail on java8.

Limit latest dep Jetty tests to Jetty 9 for now.
2019-07-15 10:15:21 -04:00
Nikolay Martynov 6d5972bce1 Make agent-tooling compile-depend on dd-tracing-ot directly
This ensures that `dd-tracng-ot` gets included into shadow jar.
Before this patch it was included only 'by accident' via some
transitive dependencies of some instrumentations.
2019-06-11 14:49:44 -04:00
Tyler Benson 68a68f1057 Ensure that http.url tag doesn’t have query params set
Make handling of it more consistent in decorator.
2019-04-26 09:48:34 -07:00
Tyler Benson b343fe4551 Split peer connection details different generic argument 2019-04-16 08:34:43 -07:00
Tyler Benson bf05984208 Server tags should report peer, not self hostname/port
Previously this was not obvious and incorrect.
2019-04-16 08:21:01 -07:00
Tyler Benson 50279d64fe Span type should only be an attribute and not inherited
Previously we were inheriting from the parent and also often setting as a tag.

Apply default span assertion to verify the spanType is being checked properly. (Include error state too.)
2019-02-28 12:39:51 -08:00
Tyler Benson 93e38f6f0d Rename and static import decorators instance
In the instrumentation it reads better.
2019-02-22 13:44:34 -08:00
Tyler Benson dfe5cb57b2 Servlet migrate to decorators 2019-02-20 17:35:41 -08:00
Tyler Benson a7ebc9b3db Deprecate WEB_SERVLET type 2019-02-20 08:42:39 -08:00
Tyler Benson bbcd2f6949 Move other Utils to utils package 2019-02-05 11:43:05 -08:00
Nikolay Martynov 4ba0adfab3 Catch exception in servlet context getter.
Request may finish after check has been perform but before context has
been read leading to exception in some implementations.
2019-01-25 12:28:58 -05:00
Tyler Benson fe52180bfc Apply proper generic signature for Instrumenter.Default transformers()
Previously it was missing the MethodDescription portion.
2019-01-04 15:25:12 -08:00
Nikolay Martynov e87d4ef161 Servlet3 instrumentation race consition fixes
* Do not set `asyncPropagate` on scope since it will be closed anyway.
* Close span once done with it in `TagSettingAsyncListener`.
* No point in explicit finishing span in 'finishOnClose' scope.
* Do not reattach listener in
  `TagSettingAsyncListener#onStartAsync`. Listener is attached each
  time by `Servlet3Advice#stopSpan` and reattaching listener in
  `TagSettingAsyncListener#onStartAsync` causes multiple listeners to
  be attached and race conditions to happen.
* Do not close span in `AsyncContextInstrumentation`. This leads to
  span being written prematurely. This span will be closed in
  `TagSettingAsyncListener` anyway, along with adding proper status code.
2018-11-27 17:17:56 -08:00
Tyler Benson e4a12409c8 Add recursive servlet dispatch tests. 2018-11-16 14:40:35 -08:00
Tyler Benson e96752bbad Remove need for tomcat user file config 2018-11-16 09:56:42 -08:00
Tyler Benson 817895b559 Extract shared tests into abstract parent 2018-11-16 09:22:47 -08:00
Tyler Benson cde02e1ae5 Fix servlet async dispatch
Finish existing trace and propagate to the next request.

Improve dispatch testing.
2018-11-16 08:55:11 -08:00
Tyler Benson 1064e35788 Apply standard tag name and update spring-web test deps version. 2018-11-16 08:06:40 -08:00
Tyler Benson 0bb20abfce Set user.principal in a way spring security can be covered
Improve tests.
2018-11-14 11:30:05 -08:00
Tyler Benson b58b54dab9 Limit Lettuce/Webflux versions and fix test for tomcat 9+ 2018-11-12 12:33:34 -08:00
Tyler Benson 51dfd2b184 Fix latestDepTests for Jetty 2018-11-12 11:05:02 -08:00
Tyler Benson 9bd2b86d2e Add assertion to ensure latestDepTest dependencies are different from test. 2018-11-12 08:15:24 -08:00
Nikolay Martynov 34372533c1 Add config for tags that propagate to JMXFetch and spans
Also add runtime-id tag to root span and JMXFetch metrics
2018-10-22 15:51:20 -04:00
Tyler Benson 432ce89a07 Add assertTraces to AgentTestRunner with implied argument
This will also help with auto complete when writing tests.
2018-10-15 10:19:00 +10:00
Qiyang Huang a0170dbc69
Add fail block for servlet 2 2018-10-05 12:06:47 -04:00
Gary Huang c7eb667c0e
Muzzle servlet-3 Instrumentation
Add muzzle block and remove class loader matcher method.
2018-10-05 12:06:45 -04:00
Nikolay Martynov a4cded9b4f Add some tests for distributed tracing in Tomcat and Jetty 2018-08-18 13:38:06 -04:00
Tyler Benson 0b289205f8 Add fixme to adapter. 2018-08-17 10:53:12 +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
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
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
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
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 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
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 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