Tyler Benson
7bf85dbb97
Restrict dispatcher instrumentation to 2 arguments
...
To reduce risk of duplicate spans when delegating to a 2+ arg method.
2020-03-05 16:01:53 -08:00
Tyler Benson
2802009e01
Stop creating a "top level" servlet span when in a forward/include situation.
...
Effectively reverting 6703bd96bb
The expectation is that these are not really separate external requests, but a semantic way of processing a single request.
2020-03-05 12:52:13 -08:00
Tyler Benson
042f49d800
fix muzzle and retry tests
2020-03-03 11:03:01 -08:00
Tyler Benson
7702b0585b
Add Classloader precheck to expensive matchers.
...
Benchmark results:
```
Benchmark Mode Cnt Score Error Units
ClassRetransformingBenchmark.WithAgent.testTracedRetransform avgt 21.933 ms/op
ClassRetransformingBenchmark.WithAgent.testUntracedRetransform avgt 6.171 ms/op
ClassRetransformingBenchmark.WithAgentMaster.testTracedRetransform avgt 22.129 ms/op
ClassRetransformingBenchmark.WithAgentMaster.testUntracedRetransform avgt 6.517 ms/op
ClassRetransformingBenchmark.testTracedRetransform avgt 0.876 ms/op
ClassRetransformingBenchmark.testUntracedRetransform avgt 0.867 ms/op
```
I also saw a small improvement in application startup time.
2020-03-03 10:29:10 -08:00
Nikolay Martynov
0b196ed3ec
Merge branch 'master' into mar-kolya/constantify-decorator-matcher
2020-02-28 01:41:02 +01:00
Lev Priima
885212ee36
ClassLoaderHasNoResourceMatcher: put to cache outside critical section
2020-02-27 13:12:23 -08:00
Tyler Benson
35e00686b3
Imply not(isInterface()) call for expensive matchers
...
Also remove from simple named("some.name") matchers to avoid metadata lookup.
2020-02-27 12:13:42 -08:00
Tyler Benson
bd82166b58
Rename methods that don't require disambiguation.
2020-02-24 08:35:19 -08:00
Tyler Benson
f70c35842d
Move matchers to separate package and split matcher classes out
2020-02-24 08:31:12 -08:00
Laplie Anderson
d45ead1284
split matching into safeExtendsClass and safeHasInterface
2020-02-19 21:22:17 -05:00
Nikolay Martynov
a04cc15ce8
Fix some tests
2020-02-14 12:59:30 -05:00
Nikolay Martynov
fd75575796
Disable peer hostname tag for http servers
...
Getting peer hostname makes DNS request
2020-02-14 11:25:07 -05:00
Tyler Benson
51bffa2e8a
Move agent api classes to bootstrap package so they're not analyzed by muzzle
...
Also move jdbc classes to bootstrap to reduce size and complexity of those reference checkers.
These changes reduce the total file size of these instrumentation classes by 635k, which should also result in decent memory savings.
2020-02-10 15:09:15 -08:00
Tyler Benson
daae198b08
Set dispatcher span on request instead of clear
...
Clearing the span caused traces to be broken up and reported independently when calling forward/include.
2020-01-30 21:55:16 -05:00
Tyler Benson
49425e9963
Move request-response linking to main servlet advice
...
servlet-service is off by default, so we can't rely on it being called there.
2020-01-13 10:48:35 -08:00
Tyler Benson
e440eba9a1
Enable Servlet request and response dispatcher instrumentation by default.
...
Change config for Servlet Filter and Service and JDBC DataSource instrumentation so it must be explicitly enabled (won't be enabled by accident if all of servlet is enabled).
2020-01-10 13:51:21 -08:00
Tyler Benson
43fbf28035
Revert "Remove experimental jdbc and servlet integrations until further evaluation"
...
This reverts commit 2432a92230
.
2020-01-10 12:53:24 -08:00
Laplie Anderson
f181fa721f
Add classloader matcher to muzzle scan
2019-12-20 16:17:08 -05:00
kfujita
b707a3aab9
move multi-value aware logic to Extractor.
2019-12-19 13:33:08 +09:00
kfujita
a5e693bb92
assert fix same as JettyServlet3Test
2019-12-19 13:32:09 +09:00
Laplie Anderson
dc0cbeb95d
apply comma split logic to servlet request extract adapter
2019-12-19 13:32:09 +09:00
Tyler Benson
99992df998
Fix tagging query string for additional servers
...
Add test to common test suite and adapt each test.
2019-12-17 09:33:27 -08:00
Tyler Benson
b00cdee54a
Capture full servlet URL in decorator
...
This is needed in order to tag the query string (when configured).
Full test suite will follow in future PR.
2019-12-12 13:47:40 -08:00
Trask Stalnaker
1987e86ebf
Normalize tag verification order
2019-11-22 10:59:45 -08:00
Tyler Benson
10b0f35235
Merge pull request #1090 from DataDog/tyler/servlet-path
...
Add servlet.path tag
2019-11-22 09:18:14 -08:00
dougqh
6b096c2240
Replacing Advice.class references
...
Replacing Advice.class references with string construction.
This stops the JVM from loading the Advice classes which are used as templates for byte buddy and doesn't ever need to be run directly.
This eliminates ~130 class loads at start-up -- and saves 0.5MiB in metaspace
2019-11-18 16:09:30 -05:00
Tyler Benson
53b4e5db19
fix test
2019-11-12 15:17:35 -08:00
Tyler Benson
fdf2241e5f
Add servlet.path tag
2019-11-11 15:54:21 -08:00
Tyler Benson
2432a92230
Remove experimental jdbc and servlet integrations until further evaluation
2019-11-06 11:45:00 -08:00
Tyler Benson
2d3b644c84
Merge pull request #1080 from DataDog/tyler/rename-beta-configs
...
Rename config key for beta/experimental instrumentation.
2019-11-05 08:44:33 -08:00
Tyler Benson
4f853f5f0c
Rename config key for beta/experimental instrumentation.
...
Postfix the existing config names with `-beta` for `servlet` and `jdbc`.
To avoid any risk that the config was explicitly enabled for an unrelated reason resulting in unexpected behavior when upgrading to the latest version.
2019-11-04 13:41:33 -08:00
Laplie Anderson
bf4587c23d
Missed a few test helper methods
2019-11-04 12:49:35 -05:00
Tyler Benson
a903f20dc4
Merge pull request #1050 from DataDog/tyler/servlet-depth
...
Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
2019-10-28 08:39:56 -07:00
Tyler Benson
6703bd96bb
Fix servlet propagation for “tail-call” situations
...
Sometimes servlets will call another servlet by “resetting” the request object. This maintains the attributes previously set, including the span. We want to allow the trace to start if there’s no “active trace” even if there is a span attribute.
2019-10-25 17:01:47 -07:00
Tyler Benson
425156115c
Add new integration for Servlet Filters, HttpServlet, and RequestDispatcher
...
Disabled by default, and only creates a span if existing trace detected.
To enable all of them:
* System Property: `-Ddd.integration.servlet.enabled=true`
* Environment Variable: `DD_INTEGRATION_SERVLET_ENABLED=true`
(They have independent configs as well. If needed, view the source below.)
2019-10-25 14:47:48 -07:00
Tyler Benson
7ae5de1fc6
Refactor Servlet Advice
...
Moving directory structure around.
Combining advice, trying to make it propagate better.
2019-10-25 10:09:19 -07:00