Commit Graph

71 Commits

Author SHA1 Message Date
Tyler Benson 97efa307d3 Stop setting error tag and update tests. 2020-04-13 13:59:11 -04:00
Tyler Benson 25464456d3 Add tests for http clients
- dropped request
- non-routable request
- https request

Unfortunately I wasn't able to figure out a clean way to test some of these scenarios without making a remote request.
I was also not able to configure everything consistently, so I had to disable that test for several integrations.
2020-03-13 15:05:16 -07:00
Laplie Anderson 6411ee358f Remove Http*Decorators from method signatures in tests 2020-03-12 13:13:17 -04:00
Laplie Anderson 6cd530a541 Move decorators to bootstrap 2020-03-11 18:41:29 -04:00
Nikolay Martynov 517ecca4c1 Remove explicit concurrent instrumentation dependencies
Since we include concurrent instrumentation for all instrumentatin
projects now there is no point in including it in every instrumentation.
2020-03-06 13:50:51 -05:00
Tyler Benson 372ba221d2 Invert the classloader matcher to remove the double negative. 2020-03-05 10:14:33 -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
Tyler Benson 80f13bc670 Add proper hashcode/equals methods to our matchers
I copied over the methods that would have been generated had the `HashCodeAndEqualsPlugin` actually been working.

Also updated the matcher tests to use the TypePool for more realistic values.
2020-02-28 14:13:18 -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
Nikolay Martynov b6d374e3a0 Avoid calling superclass matcher where possible
Saves about 100ms of startup time on test app
2020-02-21 15:08:39 -05: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 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
Trask Stalnaker 1987e86ebf Normalize tag verification order 2019-11-22 10:59:45 -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
Trask Stalnaker e32bf1816a Organize imports 2019-10-24 21:05:01 -07:00
Trask Stalnaker 9182b64078 Switch to new Tags class in tests 2019-10-24 21:04:57 -07:00
Trask Stalnaker 99ddc497e7 Remove baggage item test
The new agent api does not have baggage item support.
2019-10-24 21:01:59 -07:00
Trask Stalnaker 9775ae5b2f Update ratpack-1.4 to new agent api 2019-10-19 16:52:42 -07:00
Laplie Anderson 831fa5c0fd Disable ratpack events by default 2019-10-04 11:41:41 -04:00
Tyler Benson e69edaec14 Remove project config centrally defined and other misc cleanup 2019-08-22 12:43:13 -07:00
Tyler Benson 452a619b4b Muzzle doesn’t seem to like those helper classes there
Had to move them externally for muzzle to be happy.
2019-08-16 10:10:09 -07:00
Tyler Benson fc30b4c5bb CR fixes. 2019-08-16 09:22:44 -07:00
Tyler Benson 8c490a42a2 Improve Ratpack context propagation and migrate tests 2019-08-16 09:17:50 -07:00
Tyler Benson 0e83304a87 Update Ratpack latest test 2019-07-19 09:26:40 -07:00
Tyler Benson 6ccb0d71d8 Change the scope for the netty client callback
Previously the scope was the http client span, which could result in deep nesting.  Now it is the parent span.

Before
[——————Parent—————]
   [ ^ ———Client—————]
                        [ ^—Child—]

Now:
[——————Parent—————]
   [ ^ —Client—] [ ^—Child—]

Also improve the tests.
2019-07-19 09:26:40 -07:00
Tyler Benson 3bbf9f27eb Fix resource name for Ratpack
Previous fallback would inadvertently include query parameters in the resource name.
2019-05-15 16:30:51 -07:00
Tyler Benson 4c79f38a4d A couple other minor changes… 2019-04-19 10:41:13 -07:00
Tyler Benson 0315c976af Fixes for ratpack. 2019-04-16 13:29:26 -07:00
Tyler Benson c4ac5b94ec Fix span relationships and other review issues. 2019-04-10 17:31:22 -07:00
Tyler Benson a11b888d7a Update ratpack instrumentation and remove default disabled. 2019-04-08 18:26:08 -07:00
Tyler Benson 576e554445 Migrate Mongo to Decorator 2019-03-05 20:50:06 -05: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 fe52180bfc Apply proper generic signature for Instrumenter.Default transformers()
Previously it was missing the MethodDescription portion.
2019-01-04 15:25:12 -08:00
Gary Huang a04b30107f
Change scope handling 2018-12-07 12:40:18 -05:00
Gary Huang 26c354dad2
Fix Flaky Ratpack Fork Test
Ratpack tests occasionally fail with the handler span and manually started span out of order. This will ensure that if a span is manually started inside of the handler then it will be finished after the handler span is finished, which is when the request has been responded to.
2018-12-07 00:49:37 -05:00
Gary 477c2f92c8
Address comments and add onClose callback on context to close scope. 2018-11-26 17:26:48 -05:00
Gary 50c2af9abb
remove classloader matcher 2018-11-26 16:57:12 -05:00
Gary 4169e42cdc
replace version scan with muzzle block 2018-11-26 16:55:33 -05:00
Gary 6475f20308
Refactor Ratpack
Remove the use of the OT project and Execution managed scopes. Updated tests.
2018-11-26 16:55:18 -05:00
Tyler Benson cbb29069fe Apply component tag more consistently 2018-11-14 11:31:40 -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 f71192266c Rework the way multi-jvm tests work
To allow some JVMs runs only subset of tests
2018-10-02 13:20:19 -04:00
Tyler Benson e07dfffe5f Migrate tests to new 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 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