Commit Graph

37 Commits

Author SHA1 Message Date
Laplie Anderson 9868c230cf Fix JMS test library for Java 7 2020-03-13 13:10:47 -04:00
Laplie Anderson 994dc89672 Fix jms tests with JDK11+ 2020-03-12 17:59:57 -04:00
Laplie Anderson 6cd530a541 Move decorators to bootstrap 2020-03-11 18:41:29 -04:00
Brian Devins-Suresh db074b199a Make regular test less flaky too 2020-03-11 15:57:15 -04:00
Brian Devins-Suresh 00e331814d Use a different queue per test 2020-03-11 15:38:13 -04:00
Trask Stalnaker 279af696f4 Improve test reliability 2020-03-09 09:30:31 -07:00
Trask Stalnaker 7761094280 Fix for Spring JMS listeners 2020-03-08 22:41:58 -07:00
Tyler Benson ca043a67b5
Merge pull request #1298 from DataDog/tyler/classloader-matcher
ClassLoader matcher cleanup
2020-03-05 20:00:09 -08:00
Tyler Benson 372ba221d2 Invert the classloader matcher to remove the double negative. 2020-03-05 10:14:33 -08:00
Tyler Benson ee5cf2cf24 Attempt to improve test reliability
Add timeouts (to avoid a gradle level timeout) and retries (since we're doing it manually anyway).

I realize this is a band aid...
2020-03-04 19:02:41 -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 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
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
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 86bd9793bd Switch to new Tags class in instrumetation 2019-10-24 21:05:00 -07:00
Trask Stalnaker 9182b64078 Switch to new Tags class in tests 2019-10-24 21:04:57 -07:00
Tyler Benson a8ca47ed03 Skip spring controller and dropwizard trace if no trace present
Also prefer early return instead of deep nesting for null check.
2019-10-24 14:40:08 -07:00
Trask Stalnaker 30367c79cf Split up MessagePropertyTextMap 2019-10-21 18:46:58 -07:00
Trask Stalnaker 6b23ffbae8 Update jms to new agent api 2019-10-19 16:52:41 -07:00
Tyler Benson 95a294a560 Remove common (redundant) dependencies 2019-08-06 14:51:04 -07:00
Nikolay Martynov 6fd630831f Stop using `scopeManager().activate(span, true)` 2019-04-08 11:54:47 -04:00
Nikolay Martynov e678a62e5b Use scope when opening JMS span 2019-04-05 11:13:53 -04:00
Tyler Benson 50b4e1623e Migrate JMS instrumentation to Decorator 2019-02-28 13:52:29 -08: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
Nikolay Martynov f84e510f3e Increase timeouts in JMS test to try to make it more stable 2019-02-05 10:10:49 -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 c1e21e328b Small improvement for jms tests to hopefully make them more stable 2018-12-07 09:40:29 -05:00
Tyler Benson 013e57c677 Add tests for Spring JMS Template 2018-12-04 10:54:53 -08:00
Tyler Benson 74743be6e5 Remove duplicate JMS spans from nested calls. 2018-12-03 11:15:28 -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
Gary Huang 6bc6bcdec9
Remove version scan from JMS Instrumentation 2018-09-07 19:56:17 -04:00
Tyler Benson 9cf7b28e88 Make JMS more resilent to property failure
Combine into single module and add test.
Replace classLoaderMatcher with muzzle check.

Thanks for the tip @adriancole.
2018-08-31 16:10:14 +10:00