Commit Graph

79 Commits

Author SHA1 Message Date
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
Andrew Kent 02a3e6a5d3 New Instrumentation API 2018-07-06 17:17:32 -04: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 a0d99e70fb Add tests to servlet intrumentation to verify that username is set correctly 2018-06-25 21:54:20 -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
Tyler Benson 83db4e8c4d
Merge pull request #352 from DataDog/tyler/netty
Netty HTTP client and server instrumentation
2018-06-21 14:11:12 +10:00
Tyler Benson 9b3df4ff9e Netty HTTP client and server instrumentation first pass
Doesn’t target right versions. Needs lots of testing.
2018-06-18 12:52:42 +10:00
Andrew Kent 6cd8be67d5 Close scope for async servlet requests 2018-06-14 20:23:54 -07:00
Tyler Benson 164689eeb3
Merge pull request #333 from DataDog/tyler/force-latest-tests
Fix version upgrading for latestDepTests
2018-05-23 11:21:28 +10:00
Tyler Benson e481092f25 Avoid occasional false test failure. 2018-05-22 16:47:36 +10:00
Tyler Benson 3781a71e5f Fix version upgrading for latestDepTests 2018-05-22 15:14:11 +10:00
Tyler Benson dc814aeb6d Fix tests. 2018-05-11 15:19:30 +10:00
Tyler Benson 46878d24d3 Name service based on servlet context
This only applies if a service name hasn’t been set or is empty.

This is particularly useful for environments that deploy multiple war files to the same app server.
2018-05-11 13:59:03 +10:00
Tyler Benson 632d9b8da4
Merge pull request #316 from DataDog/tyler/async-flag
Enable async tracking for some non-async frameworks
2018-05-11 09:30:17 +10:00
Tyler Benson d5d24c50c7 Replace @Unroll’s with a rule to always unroll. 2018-05-10 15:24:59 +10:00