Commit Graph

544 Commits

Author SHA1 Message Date
Trask Stalnaker f7da97bd9d
Move appender api to internal (#5080)
* rename artifacts and packages

* Library users shouldn't need to use internal

* Update docs

* Rename in order to simplify HelperClassPredicate

* Spotless

* Move AgentLogEmitterProvider to javaagent-instrumentation-api
2022-01-12 08:38:28 -08:00
Anuraag Agrawal c75c01f871
Update to OTel 1.10 (#5035)
* Update to OTel 1.10

* Fix metric smoke test

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-07 15:45:20 -08:00
Nikita Salnikov-Tarnovski 25550e0a63
Stop using deprecated constructor (#5040)
* Stop using deprecated constructor

* Try to fix the build
2022-01-07 11:47:54 -08:00
Anuraag Agrawal f6bcd76219
Update errorprone (#5016)
* Update errorprone

* gwt

* Remove unnecessary final

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-06 14:21:56 -08:00
Lauri Tulmin c45b4ea5be
Fix redefinition failure on openj9 (#5009)
* Fix redefinition failure on openj9

* isntead of remembering the list of interfaces the class has remember whether it has any of the virutal field marker interfaces

* address review comment

* ensure virtual field detection works when internal-reflection instrumentation is disabled
2022-01-06 08:54:32 -08:00
Trask Stalnaker e5da618196
Add logs to testing infra (#4927)
* Add logs to testing infra

* Drift
2021-12-17 18:23:42 -08:00
Anuraag Agrawal 5e1e0c2642
Update to OTel 1.10 (#4866)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-12-16 18:46:17 +09:00
Mateusz Rzeszutek 93a3282490
Remove ConfigPropertiesAdatpter as it's no longer needed (#4888) 2021-12-13 12:20:11 -08:00
jack-berg 45dca4fc5d
Expose AutoConfiguredOpenTelemetrySdk to AgentListener (#4831)
* Expose AutoConfiguredOpenTelemetrySdk to AgentListener

* Only call AgentListener if noop is disabled, deprecate AgentListener methods

* Call AgentListener in DelayedAfterAgentCallback
2021-12-10 12:55:57 -08:00
Nikita Salnikov-Tarnovski a70682c390
Remove unhelpful benchmarks (#4766)
* Remove unhelpful benchmarks

* Restore one more benchmark

* spotless
2021-12-02 17:17:39 +02:00
Lauri Tulmin f5142f24e9
Remove internal-proxy instrumentation (#4749) 2021-11-30 07:56:26 -08:00
Lauri Tulmin 1e371377a1
Fix build (#4743)
* Fix build

* avoid npe
2021-11-30 14:07:07 +02:00
Lauri Tulmin 10288c6f25
Work around jvm crash on early 1.8 (#4345)
* Work around jvm crash on early 1.8

* skip retransform if class was already transformed during load

* fix imports after rebase

* add test

* disable test on windows
2021-11-29 22:47:10 -08:00
Lauri Tulmin 92f83f10f0
Remove virtual field interfaces from reflection results (#4722)
* Remove virtual field interfaces from reflection results

* fix java8 and openj9
2021-11-29 12:09:28 -08:00
Nikita Salnikov-Tarnovski f525f3e03f
Some logging cleanup (#4734) 2021-11-29 09:45:23 -08:00
Nikita Salnikov-Tarnovski 821a4b870b
Drop instrumentation-api-caching module and move weak cache implementation to instrumentation-api (#4667)
* Drop instrumentation-api-caching module and move weak cache implementation to instrumentation-api

* Some test fixes

* Some cleanup

* Temporary workaround for using weak values in FutureListenerWrappers

* Spotless

* Update ClassNames and SpanNames

* Compilation and comment

* Add bounded cache and clean interface

* Polish

* Add comment

* Vendor ConcurrentLinkedHashMap in

* Let errorprone ignore vendored CLHM for now

* Keep license in java files too

* Convert Netty wrapper cache to VirtualField

* Work around lambda instrumentation failure

Ideally we would ignore instrumenting helper classes...

* Revert "Work around lambda instrumentation failure"

This reverts commit 6d63815b44.

* Revert "Convert Netty wrapper cache to VirtualField"

This reverts commit dac1522a3f.

* Handle cleared weak values

* Fix comment

* Delete instrumentation-api-caching

* Copy in weak-lock-free

* Remove caffeine remnants

* Fix checkstyle

* Rename BoundedCache to MapBackedCached

* Remove duplicate LICENSE

* Remove outdated comment

* Sync with SDK copy of weaklockfree

* Enable checkstyle:off comment

* Re-generate license report

* Move NOTICE file to package-info.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-11-24 09:05:12 -08:00
Anuraag Agrawal 6063a16f54
Update to OTel 1.9 (#4634)
* Update to OTel 1.9

* Check null
2021-11-15 17:56:53 +09:00
Lauri Tulmin 73a28dadb4
Fail tests on muzzle failre (#4545) 2021-11-02 16:06:34 +02:00
Lauri Tulmin b3d9ae8268
Fix sun.misc.Unsafe generation on jdk17 (#4558)
* Fix sun.misc.Unsafe generation on jdk17

* remove jmxremote argument for now

* spotless

* remove unneeded annotation
2021-11-02 16:05:51 +02:00
Lauri Tulmin 12ec0fa481
Fix ClassCircularityError when running with security manager (#4557) 2021-11-02 09:30:01 +01:00
Lauri Tulmin 8dce10f8ae
Muzzle match only once in each class loader (#4543)
* Muzzle match only once in each class loader

* Move muzzle matcher caching from ReferenceMatcher to InstrumentationModuleInstaller

* Update comment as caching was moved to a different method

* Fix comment
2021-11-01 11:30:03 -07:00
Lauri Tulmin c109773f17
Test modular jdk (#4501)
* Test modular jdk

* review comment
2021-10-28 10:54:00 -07:00
Lauri Tulmin 41a143812e
On failure log the whole matcher (#4500) 2021-10-25 22:45:20 -07:00
Lauri Tulmin 9b8ab5eeec
Migrate to spock 2 (#4458)
* Migrate to spock 2

* Fix smoke test suites

* address review comments

* review comment

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-10-22 08:40:58 -07:00
Lauri Tulmin 17a85bbc22
Use byte-buddy-dep instead of byte-buddy (#4400)
* Use byte-buddy-dep instead of byte-buddy

* print stacktrace on examples failure

* try to fix gradle plugins

* try to fix extension build

* try to fix extension build

* try to fix extension build

* try to fix extension build

* try removing mavenLocal

* add mavenLocal plugin repository

* publish gradle-plugins to mavenLocal for examples ci build

* Fix bytebuddy exclusion
2021-10-19 13:46:48 -07:00
Martin 6d9e3618d3
rename `newBuilder()` to `builder()` (#4407)
* rename `newBuilder()` to `builder()`

* code format
2021-10-18 10:00:49 -07:00
Martin ac91dc090a
Type annotation placement (#4406)
* switch annotation `org.checkerframework.checker.nullness.qual.Nullable` to `javax.annotation.Nullable`

* code format
2021-10-17 17:38:43 -07:00
Trask Stalnaker 0652894a8b
Obfuscate virtual field accessors (#4385)
* Obfuscate virtual field accessors

* Update internal-reflection instrumentation

* Update test

* Remove outdated comment
2021-10-15 14:36:56 -07:00
Lauri Tulmin 0ba49ac850
Hide virtual field accessor interface methods from reflection (#4390) 2021-10-15 11:07:26 -07:00
Trask Stalnaker d781995d0a
Less surprising behavior (#4349)
* Less surprising behavior
2021-10-13 10:10:03 +03:00
Mateusz Rzeszutek ff8696586d
Remove VirtualField#computeIfNull() method (#4354) 2021-10-12 11:37:35 -07:00
Mateusz Rzeszutek 8d73403188
Back VirtualField with a volatile field (#4355) 2021-10-12 10:54:40 -07:00
Anuraag Agrawal f208ba72b7
Update to OTel 1.7 (#4340)
* Update to OTel 1.7

* Fix metrics tests
2021-10-11 19:52:50 +09:00
Mateusz Rzeszutek fb77651658
Restrict usage of arrays as VirtualField types and fix field naming (#4323)
* Restrict usage of arrays as VirtualField types and fix field naming

* disallow primitive type usage too

* A few more test cases and validations
2021-10-08 10:52:26 +02:00
Nikita Salnikov-Tarnovski 0683371110
Add supported way to add additional helper classes to instrumentation without interfering with muzzle (#4302)
* Add supported way to add additional helper classes to instrumentation without interfering with muzzle

* Better javadoc
2021-10-06 09:52:54 -07:00
Mateusz Rzeszutek fda4779127
Fix a bug in the field backed VirtualField implementation (#4310)
* Fix a bug in the field backed VirtualField implementation

* Multiple interface fields
2021-10-06 09:40:53 -07:00
Mateusz Rzeszutek 3e93dc8f29
Move Trie back to javaagent-tooling (#4300)
* Move Trie back to javaagent-tooling

* Code review comments
2021-10-05 16:07:33 -07:00
Trask Stalnaker f63fe62a55
Fix merge conflict in main (#4306) 2021-10-05 13:35:19 -07:00
Mateusz Rzeszutek b4984657b5
Move BootstrapPackagePrefixesHolder to javaagent-bootstrap (#4303) 2021-10-05 11:26:24 -07:00
Mateusz Rzeszutek 09ad3d2f58
Split FieldBackedImplementationInstaller into several smaller classes (#4297) 2021-10-05 11:25:39 -07:00
Nikita Salnikov-Tarnovski 9bbd490288
Remove last muzzle generate method from InstrumentationModule (#4281)
* Remove last muzzle generate method from InstrumentationModule
2021-10-05 14:43:21 +03:00
Trask Stalnaker 2a76d41807
Small renames for clarification (#4294) 2021-10-05 10:37:02 +03:00
Trask Stalnaker 0994c07bcf
Small optimization (#4293) 2021-10-04 21:45:10 -07:00
Mateusz Rzeszutek 9d6fb65b41
Remove ContextStore/InstrumentationContext mentions from internal age… (#4267)
* Remove ContextStore/InstrumentationContext mentions from internal agent classes

* Fix internal-reflection module
2021-10-04 09:24:25 -07:00
Mateusz Rzeszutek c421b66d56
Remove unnecessary VirtualField#setIfNull() method (#4262) 2021-10-02 13:17:48 -07:00
Mateusz Rzeszutek c11b96e4d0
Make it possible to use InstrumentationContext (now VirtualField) fro… (#4218)
* Make it possible to use InstrumentationContext (now VirtualField) from library instrumentation

* fix tests

* fix javadocs

* fix some more tests

* code review comments

* setIfNull, computeIfNull
2021-10-01 11:13:11 +02:00
Nikita Salnikov-Tarnovski 2eadca8c83
Move AgentExtension to the tooling module (#4253) 2021-09-30 18:57:39 +03:00
Nikita Salnikov-Tarnovski ba332a970a
Remove deprecated method helperResourceNames from InstrumentationModule (#4221)
* Remove deprecated method helperResourceNames from InstrumentationModule

* Restore test
2021-09-29 15:25:19 +03:00
Nikita Salnikov-Tarnovski 19ce45bfc7
Remove deprecated ExporterClassLoader and exporter factories (#4217) 2021-09-28 09:42:40 -07:00
Nikita Salnikov-Tarnovski 5dffeef4aa
Introduce muzzle-specific interface to InstrumentationModule (#4207)
* Introduce muzzle-specific interface to InstrumentationModule
* Moved more methods to the InstrumentationModuleMuzzle interface
2021-09-28 12:15:33 +03:00
Lauri Tulmin 335d1cd784
Fix latest dep test failures (#4201) 2021-09-25 12:31:55 -07:00
Lauri Tulmin 559cdcbbee
Transform lambda classes (#4182)
* Transform lambda classes

* improve comment
2021-09-24 09:52:15 -07:00
Anuraag Agrawal 9d5cf4e0b3
Add logback.xml to testing-common (#3726)
* Add logback.xml to testing-common

* showStandardStreams

* Remove showStandardStreams due to verbosity

* Fix javaagent-tooling tests

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-09-24 10:09:42 +09:00
Lauri Tulmin 0f3d0cb05b
Generate our own sun.misc.Unsafe if it is not available (#4124)
* Generate our own sun.misc.Unsafe if it is not available

* skip generating invokeCleaner method

* grpc isn't shaded so setting system property doesn't affect only our bundled copy

* generate invokeCleaner when it is present in internal unsafe
2021-09-22 20:18:20 -07:00
Mateusz Rzeszutek dc4ddf7932
Remove ContextStore.Factory interface; use Supplier instead (#4157) 2021-09-17 13:00:23 -07:00
Lauri Tulmin f8b5316956
Log failed instrumentation matcher (#4142) 2021-09-16 10:17:55 -07:00
Anuraag Agrawal 971ca8b19c
Update to OTel 1.6 (#4120)
* Update to OTel 1.6

* Example build

* More example

* More example
2021-09-14 20:12:18 +09:00
Nikita Salnikov-Tarnovski 17d9c6f414
Remove generated InstrumentationModule#getMuzzleReferences() method from the source code (#4087)
* Remove generated InstrumentationModule#getMuzzleReferences() method from the source code

* Fix errorprone

* Class-based cache for MethodHandle

* Consistent suppression.
2021-09-13 12:55:38 +02:00
Matthew Ho 6967484a97
Update groovy import order to match default IntelliJ (#1708) (#4047)
* Update groovy import order to match default IntelliJ (#1708)

* organized imports for .groovy files to follow default IntelliJ import settings

* updated intellij-setup.md

* Spotless

* drift

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-09-11 11:53:08 -07:00
Trask Stalnaker 6cc403cdf2
Add strict context stressor testing option (#4001) 2021-09-10 13:53:46 -07:00
Mateusz Rzeszutek 7424f33dfb
Allow adding multiple ContextStore fields to one key class, part 2 (#4084)
* Allow adding multiple ContextStore fields to one key class, part 2

* checkstyle
2021-09-10 13:50:26 -07:00
Mateusz Rzeszutek be2e0d137c
Allow adding multiple ContextStore fields to one key class, part 1 (#4067) 2021-09-09 08:06:06 -07:00
Trask Stalnaker 1ea73278d4
Fix extension shading (#4064) 2021-09-08 07:55:44 -07:00
Trask Stalnaker ec99db5e5b
Support empty values in config maps (#4037)
* Support empty values in config maps

* Rename method
2021-09-02 16:00:29 +09:00
Mateusz Rzeszutek 62eae30a60
Make Config behave exactly as SDK DefaultConfigProperties (#4035)
* Make Config behave exactly as SDK DefaultConfigProperties

* errorprone

* errorprone part 2

* errorprone part 3

* fix failing tests
2021-08-31 10:00:04 -07:00
Anuraag Agrawal 96f5708655
Fix parsing of unclean map values in Config. (#4032) 2021-08-31 14:57:55 +09:00
Nikita Salnikov-Tarnovski 28db0c30cd
Deprecate old extensions (#3825)
* Introduce stable property for external extensions

* Update docs to use stable extension property.

Also log a warning if deprecated otel.javaagent.experimental.exporter.jar is used.

* Format

* Format

* Polish
2021-08-25 13:59:17 -07:00
Lauri Tulmin 1dae415ebc
Mark our generated classes and members as synthetic (#3928) 2021-08-24 09:53:22 -07:00
Mateusz Rzeszutek 5c71d28ed7
Remove deprecated Config methods (#3908) 2021-08-23 16:44:54 -07:00
Trask Stalnaker 5ff7901efc
Versioned helper resources, part 2 (#3880)
* Versioned helper resources, part 2

* Remove accidentally added javadoc param

* Spotless

* Fix test
2021-08-20 13:52:04 -07:00
Mateusz Rzeszutek ca8a119e01
Don't pass configuration to SDK autoconfigure through system props (#3866)
* Don't pass configuration to SDK autoconfigure through system props

* suppress CanonicalDuration

* checkstyle
2021-08-19 16:56:12 -07:00
Trask Stalnaker 36bdce2f5c
Support versioned instrumentation helper resources (#3864)
* Support versioned instrumentation helper resources

* Remove duplicated class

* Groovy

* Spotless

* Renames

* HelperResources -> HelperResourceBuilder
2021-08-19 12:17:09 -07:00
Lauri Tulmin 667b87bac7
Support looking up a ContextStore from outside of Advice (#3827)
* Support looking up a ContextStore from outside of Advice

* Add exception message

* Move setting ContextStoreSupplier

* Improve comment
2021-08-18 10:36:04 +03:00
Anuraag Agrawal d8eae4997d
Update to SDK 1.5.0 (#3847) 2021-08-17 08:43:11 -07:00
Nikita Salnikov-Tarnovski 33f54cbc88
Introduce stable property for external extensions (#3823)
* Introduce stable property for external extensions

* Examples should still use old property

* Spotless
2021-08-12 08:47:34 +03:00
HaloFour a5513a3c60
Port opentelemetry-annotations-1.0 to Instrumenter API (#3738)
* Port WithSpanInstrumentation to Instrumenter API

* Unit tests, clean up attribute binding APIs

* Remove AsyncSpanEndStrategies and fix weak reference purging

* Move tryToGetResponse to AsyncOperationEndSupport

* Address PR comments

* ParameterAttributeNamesExtractor can no longer return a null array
2021-08-06 10:42:18 -07:00
Nikita Salnikov-Tarnovski 6e706778fd
Remove old muzzle check plugin (#3741)
* Remove old muzzle check plugin

* Polish
2021-08-03 09:21:50 +03:00
Nikita Salnikov-Tarnovski e20c3779e1
Extract helper injection verification logic from plugin util into standalone class (#3688) 2021-07-29 10:23:49 +03:00
Nikita Salnikov-Tarnovski 4617a0475a
Extract some muzzle checking logic from plugin util into standalone class (#3685)
* Extract some muzzle checking logic from plugin util into standalone class
2021-07-28 10:40:30 +03:00
Nikita Salnikov-Tarnovski 6a2ee3255a
Extract muzzle check plugin (#3657)
* Extract muzzle check plugin
2021-07-26 12:37:14 +03:00
Nikita Salnikov-Tarnovski c6f9bef90e
Use published muzzle generation plugin (#3639)
* Use published muzzle generation plugin
2021-07-22 11:46:49 +03:00
Anuraag Agrawal ac8c1e1543
Configure duration metrics export as histograms to dogfood in preparation of SDK 1.5.0 (#3597) 2021-07-16 22:54:15 +09:00
HaloFour 256e8f2a64
Move async strategies to annotation support (#3574)
* Move async strategies to annotation support

* Fix dependencies and refactor copypasta

* Move AsyncSpanEndStrategy to annotation support project

* spotless
2021-07-16 10:55:23 +02:00
Trask Stalnaker 344e205720
Help out Intellij (#3595) 2021-07-16 15:55:30 +09:00
Anna Nosek 409471543e
Test and document otel.javaagent.configuration-file (#3585)
* test and document configuration file property

* use TemporaryFolder rule, documentation changes after review
2021-07-15 22:37:17 -07:00
Anna Nosek 0fd8d2cc47
Add noop sdk configuration option (#3539)
* introduce noop

* test configuration

* rename to noop api, move System.setProperty() calls

* remove unnecessary semicolon

* codenarc fix
2021-07-15 11:33:00 +03:00
Nikita Salnikov-Tarnovski cbfd7e1a02
Trying to extract codegen plugin (#3521)
* Muzzle code generation moved to a separate plugin
* Restored old MuzzleCodeGenerationPlugin to use until the new one is published
* The simplest dependency management possible

Co-authored-by: Anuraag Agrawal <aanuraag@amazon.co.jp>
2021-07-14 17:08:47 +03:00
Trask Stalnaker 922ec44952
Use transform safe logger in HelperInjector (#3553)
* Use transform safe logger in HelperInjector

* Add methods to TransformSafeLogger
2021-07-13 22:00:54 -07:00
Trask Stalnaker d0cb08a37b
Rename javaagent-api artifact to javaagent-instrumentation-api (#3513)
* part 1

* part 2

* Undo change in examples

* Spotless
2021-07-12 21:53:49 -07:00
Anuraag Agrawal f717f6a153
Force flush metrics as well when used. (#3543) 2021-07-12 10:21:04 -07:00
Anuraag Agrawal 09f8534b7b
Migrate ExceptionHandlerTest to Java. (#3549) 2021-07-12 09:54:00 -07:00
Anuraag Agrawal ce27d5d028
Migrate ResourceLocatingTest to Java. (#3550) 2021-07-12 09:53:15 -07:00
Mateusz Rzeszutek 9b56fc9051
Clean up AgentElementMatchers (#3527)
* Clean up AgentElementMatchers

* remove a TODO

* moved method
2021-07-09 10:02:21 +03:00
Trask Stalnaker 9e4da754c2
Use consistent logger field name (#3515) 2021-07-07 10:47:46 -07:00
Nikita Salnikov-Tarnovski 94cf1ef914
Remove usages of agent runtime specific code from reusable classes (#3492)
* Remove usages of agent runtime specific code from reusable classes

* Oops :)

* spotless

* Maybe a bit more clarity

* Doc over requireNonNull

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-07-06 07:46:40 +03:00
Nikita Salnikov-Tarnovski 901bae57b4
Make HelperInjector's dependency on Instrumentation instance more visible (#3491)
* Make HelperInjector's dependency on Instrumentation instance more visible

* Polish

* Polish

* Fix docs
2021-07-06 07:44:26 +03:00
Anuraag Agrawal 8eb24f9886
Split up build logic to plugins that can eventually be published and … (#3474)
* Split up build logic to plugins that can eventually be published and this-repo-specific stuff.

* Muzzle

* compileOnly

* Typo
2021-07-05 16:18:45 +09:00
Anuraag Agrawal 44f2354d41
Allow disabling thread details and disable for most tests. (#3464) 2021-07-01 08:31:27 -07:00
Mateusz Rzeszutek f5f2de9511
Refactor/rename BootstrapPackagesProvider and PropertySource (#3435)
* Refactor/rename BootstrapPackagesConfigurer and PropertySource

* Update comment
2021-07-01 08:26:51 -07:00
Anuraag Agrawal c46761b8a9
Migrate javaagent-* to kotlin dsl (#3434) 2021-06-29 23:56:01 +09:00
Mateusz Rzeszutek c1a0333cdb
Port AsyncSpanEndStrategy to Instrumenter API (#3262)
* Port AsyncSpanEndStrategy to Instrumenter API

* code review comments

* rename to AsyncOperationEndSupport

* weak-ref agent strategy storage; and passing response to Instrumenter if types match

* fix tests
2021-06-29 16:51:17 +02:00
Lauri Tulmin 6ac2083d19
Remove byte-buddy-agent dependency (#3428) 2021-06-29 14:36:10 +03:00
Anuraag Agrawal 785dc6adf2
Rename build files to build.gradle (#3409)
* Rename build files to build.gradle

* Rename smoke-tests

* Fix already broken
2021-06-25 16:10:31 +09:00
Anuraag Agrawal deb0e255cf
Use plugins block everywhere for applying plugins (#3386)
* Use plugins block everywhere for applying plugins

* Actually it's library instrumentation
2021-06-24 11:13:35 +09:00
Mateusz Rzeszutek 02098b9353
Ignore task classes using IgnoredTypesConfigurer (#3380) 2021-06-23 10:15:02 -07:00
Mateusz Rzeszutek f451aef43c
Improve ignored but instrumented types assertion in javaagent tests (#3356)
* Improve ignored but instrumented types assertion in javaagent tests

* add one missing ignore

* Add ignored types to spring-rabbit and fix tests

* spotless
2021-06-22 22:37:29 -07:00
Lauri Tulmin 5281e50780
Exclude bytebuddy generatede helper class from redefinition (#3369) 2021-06-21 13:13:19 -07:00
Trask Stalnaker 7d5c7e0a4a
Fix spring jms listener instrumentation (#3359)
* Fix Spring JMS listener instrumentation

* Comment

* More allows
2021-06-21 11:46:34 +02:00
Mateusz Rzeszutek 0a8907d927
Hide Config#create() method and use builder everywhere (#3338)
* Hide Config#create() method and use builder everywhere

* Deprecate Config#asJavaProperties()
2021-06-17 10:39:39 -07:00
Mateusz Rzeszutek ee1bbea810
Use IgnoredTypesConfigurer to ignore classloaders (#3323) 2021-06-16 10:12:03 -07:00
Mateusz Rzeszutek 3e28b01e42
Spring Integration javaagent instrumentation (#3295)
* Spring Integration javaagent instrumentation

* codenarc

* inline gradle property

* Conditionally create CONSUMER spans instead of always INTERNAL

* merge fix

* Add attributes assertions to rabbitMq test

* minor fix

* fix javadocs

* Code review follow-up
2021-06-16 14:12:39 +03:00
Mateusz Rzeszutek f4194023f4
Remove unused Utils method (#3324) 2021-06-16 09:55:50 +09:00
Lauri Tulmin c7ac235614
Preload AtomicReferenceArray (#3315) 2021-06-15 09:55:57 -07:00
Mateusz Rzeszutek 314ba8c1e8
Rewrite global ignores matcher to IgnoredTypesConfigurer (#3298) 2021-06-15 18:03:28 +02:00
Anuraag Agrawal a818f14957
Migrate publish.gradle to convention plugin (#3312)
* Migrate publish.gradle to convention plugin

* Migrate usages of publish.gradle

* Remove publish.gradle

* Newline
2021-06-15 22:12:48 +09:00
Anuraag Agrawal 4c90d6ae35
Remove logic related to jacoco coverage check. (#3314) 2021-06-15 14:57:10 +03:00
Nikita Salnikov-Tarnovski b9eac531ea
Embedded extension (#3237)
* Support for multiple extension jars by scanning the given folder

* Support to embed extension jar right inside agent jar

* Support for multiple embedded extensions

* Create temp folder for embedded extensions only if they found

* ExtensionClassLoader skips agent jar when scanning folder

* Apply suggestions from code review

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update examples/extension/build.gradle

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-06-14 16:24:25 -07:00
Anuraag Agrawal 224dc51e93
Migrate java.gradle to conventions plugin (#3289)
* Migrate java.gradle to convention plugin.

* Switch to java-conventions

* Remove old file

* Fix

* Fix merge

* Missing paragraph

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-06-15 08:10:39 +09:00
Anuraag Agrawal 9a19c6fa67
Make guava compileonly (#3290)
* Make guava compileonly

* testImplementation
2021-06-14 23:05:53 +09:00
Trask Stalnaker 8be100637a
Fix ForkJoinPool sometimes not instrumented (#3293) 2021-06-14 13:01:33 +03:00
Anuraag Agrawal b8cddc0dd8
Only include exporters in -all jar. (#3286)
* Only include exporters in -all jar.

* override exporter

* Newline
2021-06-14 13:49:22 +09:00
Trask Stalnaker dc316609ee
Remove unnecessary final on params and local vars (#3283)
* Remove unnecessary final on params and local vars

* Fix gwt

* Keep final for non-initialized var

* Keep final for non-initialized var

* Keep final for non-initialized var
2021-06-14 07:13:11 +03:00
Trask Stalnaker ab174f4f9c
Remove javaagent-tooling test forking (#3272)
* Remove javaagent-tooling test forking

* Remove one more forking
2021-06-13 10:57:45 -07:00
Anuraag Agrawal 5f49dc0e4a
Extract agent shadow configuration to conventions script. (#3256)
* Extract agent shadow configuration to conventions script.

* Remove redundant plugin version declaration

* Resource loader doesn't load from buildSrc

* Comments about byte buddy version

* Fix ReferenceCollectorTest

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-06-12 16:45:26 -07:00
Trask Stalnaker bec9966e30
Fix failing test (#3269) 2021-06-12 11:37:04 +03:00
Anuraag Agrawal e118c469be
Replace Guava cache with Caffeine in agent type pool. (#3255)
* Replace Guava cache with Caffeine in agent type pool.

* Not that many classloaders

* Remove unused
2021-06-12 15:56:45 +09:00
Mateusz Rzeszutek 3b09d46950
Introduce IgnoredTypesConfigurer SPI to enable defining per-module ignores (#3219) 2021-06-11 12:41:57 -07:00
Nikita Salnikov-Tarnovski aa4f07db6e
Support for multiple extension jars by scanning the given folder (#3226) 2021-06-11 11:32:52 -07:00
Nikita Salnikov-Tarnovski 31d3f2f8de
Update ByteBuddy (#3254)
* Update ByteBuddy

* spotless
2021-06-11 21:12:38 +09:00
Mateusz Rzeszutek 50b7a20b39
Fix spring-webflux latestDepTest (#3251) 2021-06-11 11:06:47 +03:00
Mateusz Rzeszutek 99be242e22
Rename ComponentInstaller to AgentListener and add #order() method (#3182)
* Rename ComponentInstaller to AgentListener and add #order() method

* Code review comments

* Update javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/SafeServiceLoader.java

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2021-06-07 19:50:19 +02:00
Anuraag Agrawal 2436499a09
Update to Errorprone 2.7 (#3181)
* Update to errorprone 2.7

* ToString

* Finish
2021-06-04 10:40:55 +09:00
Mateusz Rzeszutek b8aec6a671
Remove no longer needed NameMatchers class (#3179) 2021-06-03 14:36:36 -07:00
Mateusz Rzeszutek f8a2ebd32b
Use slf4j placeholders instead of manually joining log messages (#3180) 2021-06-03 14:36:21 -07:00
Trask Stalnaker be6816489a
Small cleanup (#3163)
* Small cleanup

* Ooops
2021-06-02 08:56:49 +03:00
Anuraag Agrawal c3dedbb64e
Enable all errorprone checks (#3155)
* Enable all errorprone checks

* Fixes

* Finish

* Finish

* Add flag to disable error prone
2021-06-01 17:41:08 +09:00
Anuraag Agrawal ed88cca533
Migrate from spotbugs to errorprone (#3122)
* Migrate from spotbugs to errorprone

* Fix hashtable

* try-with-resources

* Fix from merge

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-05-28 14:23:40 -07:00
Anuraag Agrawal c358a35414
Use dependency management pattern for dependency versions (#3113)
* Use dependency management pattern for dependency versions.

* Add groovy bom too

* Update dependencyManagement/dependencyManagement.gradle.kts

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-05-28 11:32:08 +09:00
Ago Allikmaa fd132d463d
Change Async Servlet span end logic to fix race condition on Undertow (#2992)
* Attach servlet async listener with asyncStart instrumentation

* Exclude Spring packages containing servlet request classes from global ignores

* Exclude Tapestry HSR proxy with global ignore

* Improve comments.

* Fix for Liberty - request response when adding async listener

* Removed unused methods

* Explicit response to async listeners on all servlet engines

* Attach response to request on Jetty

* Fix broken build due to rebase, improved a comment

* Address PR comments

* Added a comment.

* Addressed PR comments
2021-05-25 20:46:37 -07:00
Nikita Salnikov-Tarnovski 3cfd58c268
Extensions example (#3071)
* Simplify extensions example project

* Add external dependency and fat jar support

* spotless

* Apply suggestions from code review

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Apply suggestions from code review

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-05-25 14:57:43 +03:00
Mateusz Rzeszutek 6fb3ec0501
Do not use arrays in InstrumentationModule (#3057)
* Do not use arrays in InstrumentationModule

* add missing cast
2021-05-24 13:51:07 +02:00
Lauri Tulmin ccda31ab50
Fix spring webmvc and webflux latest dep failure (#3060) 2021-05-21 11:15:55 -07:00
Mateusz Rzeszutek 272419a6f3
Refactor muzzle Reference class (#3040)
* split out inner classes into separate files
* and since they're public API I made them a little bit better: added javadocs, renamed classes/methods

Getting the `...extension.muzzle` package stable is the first step to extracting the muzzle compile time plugin - the plugin may have a bit different release lifecycle than the main project and getting those classes stable will help a lot with eliminating breaking changes.
2021-05-20 14:33:43 -07:00
Trask Stalnaker 6efae9ad28
Remove duplicate method (#3032) 2021-05-19 11:56:34 -07:00
Nikita Salnikov-Tarnovski e3cf8ecf18
First POC for external extension loading (#2881)
* First POC for external extension loading

* Fix NPE

* Urlhandler

* Fix

* Polish

* Polish

* Urlhandler

* Trying Urlhandler

* Alternative way to load extensions

* Polish

* Add example extensions and smoke test for their usage

* Support for system property

* Polish

* Avoid doing remapping twice

* Polish after merge

* Update to latest changes in extentions api

* Polish

* No need for tooling

* Simplify

* Cleanup

* Better error handling

* Update to the latest API
2021-05-18 22:59:39 +03:00
Mateusz Rzeszutek bb8f515083
Refactor TypeInstrumentation#transformers() method (#3019)
* Refactor TypeInstrumentation#transformers() method part 1

Add TypeInstrumentation and its implementations

* Refactor TypeInstrumentation#transformers() method part 2

Use the new method in all existing TypeInstrumentation implementations

* Drift

* Spotless

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-05-18 09:50:26 +02:00
Trask Stalnaker d6141dddc7
Update agent logger prefix (#3007) 2021-05-17 12:06:39 +09:00
Mateusz Rzeszutek 9c1083b541
Muzzle code generation cleanup (#2985)
* Muzzle code generation cleanup

- remove hardcoded class names from MuzzleCodeGenerator (easier renaming in the future)
- store field/method descriptors in references instead of types/lists of types
- remove unnecessary primitive type comparison in ReferenceMatcher (comparing descriptors is enough)
- improve printMuzzleReferences output
2021-05-15 14:48:18 -07:00
Anuraag Agrawal fe41885ee6
Switch to colon notation for dependencies. (#2994)
* Switch to colon notation for dependencies.

* Even more cleanup

* Revert mistake
2021-05-15 15:31:06 +09:00
Mateusz Rzeszutek a72a7838f0
Load InstrumentationModules using InstrumentationLoader (#2971)
* Load InstrumentationModules using InstrumentationLoader

* writing-instrumentation-module doc improvement

* spotless
2021-05-13 14:12:53 +02:00
Trask Stalnaker d67f161e6d
Muzzle optimization (#2903) 2021-05-11 21:01:35 -07:00
Lauri Tulmin 0b854a5eb6
Agent class loader multi release jar (#2912)
* Agent class loader multi release jar

* improve handling of signed agent jar
2021-05-11 14:54:56 -07:00
Trask Stalnaker 8379404ae8
Uncomment and fix JAX-RS default method tests (#2930) 2021-05-11 11:22:11 -07:00
Mateusz Rzeszutek 871f9a0d24
InstrumentationModule cleanup (#2925) 2021-05-11 09:24:31 -07:00
Trask Stalnaker edec1bfdc6
Cache default enabled config (#2938)
* Cache default enabled config

* Fix unit tests

* Spotless

* Inline methods and remove corresponding tests

* Update javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>

* Spotless

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2021-05-10 12:18:22 +03:00
Trask Stalnaker 6a84c2b2ec
Remove unnecessary generic type args (#2937)
* Remove unnecessary generic type args

* Revert one
2021-05-10 12:18:30 +09:00
Trask Stalnaker 1ce90bb4cd
Remove unnecessary constant (#2941) 2021-05-09 19:30:12 +03:00
Mateusz Rzeszutek f2d7e0ed74
Fix compilation failure on main (#2926)
* Fix compilation failure on main

* Fix muzzle (probably)

* Fix muzzle (probably)

* Fix muzzle (probably)

* Fix muzzle (probably)

* Remove unnecessary dependency

* Revert "Remove unnecessary dependency"

This reverts commit 3fc1e68c99.

* spotless + random change in javaagent-tooling
2021-05-07 15:54:07 +03:00
Mateusz Rzeszutek 9c7fae3b04
Extract javaagent-extension-api from tooling & spi (#2879) 2021-05-06 23:30:25 -07:00
Trask Stalnaker 690e3bdd16
Remove outdated muzzle condition (#2906)
* Remove outdated muzzle condition

* Remove outdated test
2021-05-05 10:33:28 +03:00
Lauri Tulmin beae3276df
Fix flaky smoke tests (#2849)
* Enable debug logging for smoke tests

* trigger rerunning of smoke tests

* trigger rerunning of smoke tests

* pass agent in JVM_ARGS instead of JAVA_TOOL_OPTIONS on glassfish

* spotless

* remvove debugging code

* update windows image versions

* Ensure java.lang.reflect.Proxy is loaded before bytebuddy transformer is set up

* update windows image version

* Update javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-04-29 12:47:42 +02:00
Mateusz Rzeszutek e4133f1845
Muzzle should check whether used fields are declared somewhere (#2870) 2021-04-28 10:01:21 -07:00
Lauri Tulmin bd02b0ce76
Log the whole exception when transformation fails (#2852) 2021-04-23 10:36:13 +09:00
Lauri Tulmin 9f8371e77c
Use locale insensitive lower/upper case conversion (#2838) 2021-04-22 11:24:13 +09:00
Pavol Loffay ce5355c211
Move install component before BB to install method (#2821) 2021-04-21 15:05:07 -07:00
Lauri Tulmin a3c0b44b31
JAX-RS ApplicationPath annotation (#2824) 2021-04-21 09:07:54 -07:00
Mateusz Rzeszutek 95f8342558
Deprecate additionalHelperClassNames (#2810)
* Deprecate additionalHelperClassNames

* Deprecate additionalHelperClassNames
2021-04-16 10:11:11 +02:00
Trask Stalnaker c17b803b71
Use isHelperClass over additionalHelperClassNames (#2796) 2021-04-14 09:38:16 -07:00
Trask Stalnaker 9bd028f767
Remove unnecessary genericness (#2797) 2021-04-14 00:01:28 -07:00
Mateusz Rzeszutek 078603caf5
Generate InstrumentationModule#contextStore() with muzzle (#2775) 2021-04-13 20:05:01 -07:00
Trask Stalnaker 117d38a01b
Support URLClassLoader addURL (#2772) 2021-04-12 15:53:44 -07:00
Trask Stalnaker 0f60b44b7c
Avoid proxy IllegalArgumentException: repeated interface (#2773) 2021-04-12 13:59:40 -07:00
Trask Stalnaker 5be065cd31
Switch to grpc-netty-shaded (#2769) 2021-04-11 13:27:37 -07:00
Mateusz Rzeszutek b204fcc56e
Bring back Guava to javaagent-tooling (it's actually used here) (#2764) 2021-04-09 16:54:06 +03:00
Mateusz Rzeszutek c872513896
Remove unused class (#2757) 2021-04-08 17:49:19 +02:00
Anuraag Agrawal a4ea1c9db2
Update to OTel 1.1.0 (#2744)
* Update to OTel 1.1.0

* Use transform safe logger

* Finish

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-04-08 16:01:16 +09:00
Trask Stalnaker 6ea316e22e
Remove timeout annotations (#2725) 2021-04-06 16:36:18 +09:00
Mateusz Rzeszutek 1406855bb7
Revert "Prevent duplicate telemetry when using both library and auto instrumentation (#2661)" (#2689) 2021-04-01 16:11:15 -07:00
Trask Stalnaker d5e526b9f3
Cache config values in instrumentations (#2681)
* Cache config values in instrumentations

* Bring back defaultEnabled()

* comment

* one problem
2021-03-31 22:54:20 -07:00
Mateusz Rzeszutek 30434696ae
Prevent duplicate telemetry when using both library and auto instrumentation (#2661)
* Prevent duplicate telemetry when using both library and auto instrumentation

* Add unit test

* Fix Oshi tests

* Fix couchbase 3.1 tests
2021-03-31 10:57:04 -07:00
Mateusz Rzeszutek 1e50b72937
Make muzzle reference creation package(s) configurable (#2615)
* Make muzzle reference creation package(s) configurable

* Code review comments
2021-03-26 14:12:43 +02:00
Anuraag Agrawal 81648fe560
Remove CommonTaskExecutor (#2635) 2021-03-26 13:58:11 +02:00
Anuraag Agrawal 79d7e88e53
Use Caffeine for weak maps (#2601)
* Caffeine weakmap

* Use Caffeine for weak maps

* Drift

* Drift

* Remove weak-lock-free

* Update licenses

* Fix bug

* Restore weaklockfree

* Clean

* Fixes

* Inline expunction

* Synchronized

* More comment

* Fix shading

* Executor

* computeIfAbsent and delete unused.

* Fix license report
2021-03-24 17:12:26 +09:00
Nikita Salnikov-Tarnovski d79f90492a
Make sure muzzle build-time check actually validates anything (#2599)
* Check if muzzle build-time check actually validates anything

* Force class files generation before muzzle

* Apply muzzle only to javaagent projects

* Apply muzzle only to javaagent projects

* More fixes

* More fixes

* PR review comments

* polish

* Exclude "broken" version

* Polish

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-03-23 14:12:01 +02:00
Mateusz Rzeszutek 9fff4a3b47
ComponentInstallers should run after LogManager if a custom one is detected (#2592)
* ComponentInstallers should run after LogManager if a custom one is detected

* Limit to Java 8
2021-03-18 14:10:22 +02:00
jason plumb 6ea1e8d0ef
Let the ComponentInstaller be passed a Config instance (#2569)
* Let the ComponentInstaller be passed a Config instance, and prefer using Config over Properties

* revert span exporter factory and metric exporter factory and stick with the ol' properties for now.

* rollback
2021-03-18 00:11:42 +02:00
Mateusz Rzeszutek f3ba2302eb
Remove unnecessary libs from the javaagent shadowJar (#2566)
* Remove unnecessary libs from the javaagent shadowJar

And make it a bit lighter: 36 MB -> 21 MB

* Apply code review comments

* Remove unnecessary kotlin exclusion
2021-03-16 10:47:05 +01:00
Mateusz Rzeszutek 670a9cde3f
Minor InstrumentationClassPredicate refactor (don't treat javaagent-t… (#2536)
* Minor InstrumentationClassPredicate refactor (don't treat javaagent-tooling as helper classes)

* Update javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/InstrumentationClassPredicate.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* fix tests

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-03-12 16:36:34 +01:00
Trask Stalnaker f94fabe07f
Fix app failure under Eclipse OSGi (#2521)
* Fix app failure under Eclipse OSGi

* Feedback

* Alphabetical
2021-03-10 08:19:32 +02:00
Lauri Tulmin 7013376030
Add support for Grails (#2512)
* Add support for Grails

* exclude bad version from muzzle

* Review fixes

* review fixes

* rebase

* Trigger Build
2021-03-09 08:56:33 +02:00
Mateusz Rzeszutek 3dff44874f
Fix RestTemplateInterceptor so that it calls endExceptionally() on exception (#2516) 2021-03-08 09:36:47 -08:00
Anuraag Agrawal 2c03f2c526
Add support for muzzle to process AWS SDK v1 handler resource file. (#2526)
* Add support for muzzle to process AWS SDK v1 handler resource file.

* git add
2021-03-08 15:03:08 +02:00
Anuraag Agrawal d7f8967ff6
Add a caching API based on caffeine for use from instrumentation, not just javaagent (#2477)
* Add caching API

* Finish

* javadoc

* Extract dep

* git add

* Drift

* Spotbugs

* checkstyle

* Fix package

* Test Caffeine patch
2021-03-05 17:57:23 +09:00
Trask Stalnaker 0abc492bc3
Rename more properties (#2486)
* Rename more props to experimental

* Rename more properties

* Rename .internal to .testing

* Revert changes to examples distro

* Move chunk.new-trace to experimental

* Fix unrelated build issue
2021-03-04 11:20:47 -08:00
Mateusz Rzeszutek a139d72014
Initialize Config for library instrumentations (#2467)
* Initialize Config for library instrumentations

Extracted from https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/2434

* Fix tests
2021-03-03 09:55:14 +02:00
Mateusz Rzeszutek 8f3ea83504
Move some classes out of instrumentation-api (#2466)
* MethodsConfigurationParser is moved to javaagent-tooling - it's only used in some instrumentation modules
* BootstrapPackagePrefixesHolder is moved to javaagent-api - it just needs to be in the bootstrap CL for the classloader instrumentation, so it does not necessarily need to be instrumentation-api
2021-03-02 10:31:53 -08:00
Trask Stalnaker c838498a73
Rename two props to otel.instrumentation.common.* (#2457) 2021-03-02 10:25:36 -08:00
Trask Stalnaker d4676c4ebc
Rename otel.javaagent.config property (#2455) 2021-03-02 10:25:20 -08:00
Trask Stalnaker 5c1a432c54
Update old name (#2440) 2021-03-01 15:43:49 -08:00
Trask Stalnaker e0bd17aca9
Util simplification (#2394) 2021-02-24 11:09:53 -08:00
jason plumb 413b2aee5d
precompile pattern and use char replacement. (#2374)
* precompile pattern and use char replacement.

* expand description for the narc.

* use endsWith and substring vs. regex.

* make .class a string constant
2021-02-24 10:08:55 +09:00
Lauri Tulmin 4c49932d8b
Add instrumentation for jax-ws frameworks (#2314)
* Add instrumentation for jax-ws frameworks

* remvoe commneted out code

* Update instrumentation/jaxws/jaxws-2.0-axis2-1.6/library/src/main/java/io/opentelemetry/instrumentation/axis2/Axis2JaxWsTracer.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* review fixes

* review fix

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-02-22 16:46:33 +02:00
Anuraag Agrawal 2244377dd4
Remove trivial uses of Guava from agent. (#2360)
* Remove trivial uses of Guava from agent.

* Extract

* Clean
2021-02-22 12:31:02 +09:00
Trask Stalnaker 79fa9e0816
Fix debug logging (#2351)
* Fix debug logging

* Fix test

* Fix another test
2021-02-20 10:06:50 +02:00
Anuraag Agrawal 000df967ce
Update to SDK 0.17.0 (#2338)
* Update to SDK 0.17.0

* Finish

* ottrace
2021-02-19 15:51:55 +09:00
Trask Stalnaker 427bd5fbb0
Move slf4j-simple initialization from bootstrap into tooling (#2305)
* Move more init out of bootstrap

* spotLESS
2021-02-17 14:51:45 +02:00
John Watson a0b208fd52
Turn on the logging span exporter if agent debug is enabled. (#2270) 2021-02-16 15:38:37 -08:00
Trask Stalnaker 9d58ac864c
Reduce debug logging (#2296) 2021-02-16 16:08:59 +09:00
Trask Stalnaker 59c9b544d1
Bring back debug logging under class file transform (#2236)
* Bring back debug logging under class file transform

* spotless

* Feedback

* Rename to TransformSafeLogger
2021-02-16 12:37:17 +09:00
Trask Stalnaker adc24352cb
Updates to dependencies included in license report (#2278) 2021-02-15 15:16:01 +02:00
Trask Stalnaker f5b2a9a085
Remove unnecessary shutdown hook (#2283) 2021-02-15 15:11:38 +02:00
Lauri Tulmin eaa973c208
Test jax-rs on wildfly (#2242) 2021-02-12 16:19:10 -08:00
Anuraag Agrawal 5e2d1933b5
Add prometheus http lib to agent. (#2259) 2021-02-12 21:18:50 +09:00
Mateusz Rzeszutek a74f60b3f8
Add JUnit 5 extensions for instrumentation testing (#2241)
* Add JUnit 5 extensions for instrumentation testing

* Fix kafka tests

* RepeatedTest
2021-02-12 12:57:08 +01:00
Anuraag Agrawal 1d4c150111
Add task to generate license report into licenses folder. (#2239) 2021-02-12 17:20:08 +09:00
Trask Stalnaker 3f8cacfcb4
Fix build deadlock (#2234)
* Fix build deadlock

* spotless
2021-02-10 13:09:14 +09:00
Anuraag Agrawal fc410706d0
Update to Sdk 0.16.0 (#2221)
* Update to 0.16.0-SNAPSHOT

* Finish

* Finish

* Update to 0.16.0

* Finish
2021-02-09 18:00:54 +09:00
YuDong Tang a6527c2fa0
add support 4 Apache Dubbo (#2108) 2021-02-06 21:56:24 -08:00
Trask Stalnaker 79dfe10ab3
Remove kotlin core libs from javaagent distro (#2206) 2021-02-06 16:44:18 +09:00
Vladimir Šor a0d66784d1
Auto-instrumentation for JaxWS (#2176)
* Initial JaxWS support with only manual tests and no async support.

* Add support for soap provider and tests.

* Initial JaxWS support with only manual tests and no async support.

* Add support for soap provider and tests.

* Rename jws 1.0 to 1.1 everywhere.

* Rename jws 1.0 to 1.1 everywhere.
2021-02-04 14:49:58 +09:00
Anuraag Agrawal 1ebb58a596
Update to SDK 0.15.0 (#2137)
* Update to SDK 0.15.0

* Fix lightstep test
2021-01-29 21:30:22 +09:00
Mateusz Rzeszutek 328c6832a2
Publish agent-for-testing and testing-common (#2133) 2021-01-29 08:39:30 +01:00
jason plumb 782a646d89
Cache sql sanitized extraction (#2094) 2021-01-27 10:04:58 -08:00
Nikita Salnikov-Tarnovski 2d683d4289
No more gradle warnings (#2103) 2021-01-26 08:24:18 +02:00
Anuraag Agrawal 8b470bf378
Add Netty instrumentation handlers after matched handler rather than at end of pipeline. (#2100)
* Support latest webflux version.

* Add Netty instrumentation handlers after matched handler rather than at end of pipeline.

* Drift

* Fix

* Raise smoke tests timeout
2021-01-25 16:06:57 +09:00
Vladimir Šor a2cde4132d
Smoke tests declare shadowJar as an input to be rebuilt (#2085)
* Smoke tests declare shadowJar as an input to be rebuilt. Fix some gradle deprecation warnings.

* Try files as inputs.
2021-01-20 16:30:45 +02:00
Lauri Tulmin 9825ab0afa
Instrument jsf action calls (#2018) 2021-01-19 21:34:41 -08:00
Anuraag Agrawal c6cc263c6e
Use SDK Autoconfigure module (#2077)
* Use sdk autoconfigure

* Finish

* Finish

* Group exporters

* Update smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SpringBootWithSamplingSmokeTest.groovy

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-01-20 14:31:49 +09:00
Anuraag Agrawal afdde0355b
Update to OTel 0.14.1 (#2059)
* Update SDK dependency to 0.14.1

* WIP

* Finish

* Cleanup
2021-01-18 13:02:04 +09:00
Pavol Loffay 8addc67eba
Make global ignore matchers configurable (#2035) 2021-01-14 09:33:21 -08:00
Mateusz Rzeszutek 822e18675d
Make the agent log its version anymore when starting (#2026)
* Make the agent not log its version anymore when starting

* Version logger smoke test

* Version logger smoke test
2021-01-14 14:06:36 +09:00
jason plumb 0bf6904a07
Don't override preconfigured propagators. (#2004)
* don't override preconfigured propagators.

* add tests around duplicates, and deduplicate

* spotless life for clean living.

* move a few reused vars to fields.

* simplify list creation.
2021-01-14 10:08:56 +09:00
Lauri Tulmin 640a7d624b
Correct some spelling mistakes (#2025) 2021-01-12 11:10:45 -08:00
Pavol Loffay 077d8b64f6
Move common matchers to tooling/bytebuddy/matcher and ignore matchers to tooling/matcher (#1965) 2021-01-10 12:35:53 -08:00
Lauri Tulmin cc9c0f90ce
Close JarFile (#1970) 2021-01-04 18:26:34 -08:00
Anuraag Agrawal 8d74baa2e4
Run tests with javaagent. (#1643)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-01-04 13:13:24 -08:00
Lauri Tulmin ad82c30ec2
Skip attempting to retransform our agent classes (#1919) 2020-12-18 12:29:53 -08:00
Pavol Loffay f69217e2a4
Add ComponentInstaller SPI and use it for OpenTelemetry SDK (#1848)
* Add component installer SPI

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>

* Move more code to agent installer

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>
2020-12-18 08:55:24 +02:00
Anuraag Agrawal f0a6c6d772
Update SDK dependency to 0.13.0-SNAPSHOT. (#1924)
* Update SDK dependency to 0.13.0-SNAPSHOT.

* Update smoke tests

* Fix formatting

* Spot
2020-12-17 18:20:59 +09:00
Mateusz Rzeszutek cd58ac816e
Muzzle should add SPI classes defined in helperResourceNames as references (#1918) 2020-12-16 21:54:04 -08:00
Trask Stalnaker 0200081007
Use new SemanticAttribute constants (#1896)
* Use new SemanticAttribute constants

* Spotless
2020-12-14 18:16:33 +09:00
Anuraag Agrawal c741eaa501
Shade trace propagators so they can be injected in instrumentation th… (#1892)
* Shade trace propagators so they can be injected in instrumentation that benefits from a hard-coded propagation format

* Runtime shade too
2020-12-14 07:52:21 +02:00
Pavol Loffay d197748bd9
Add package prefix to classloader ignore matcher (#1813)
* Add package prefix to classloader ignore matcher

OTEL agent already ignores other agent's classes by package prefix.
However agets also use non-shaded classes (usually present in agent classloader),
these classes are not excluded by package prefix and have to be excluded
by classloader. One example is Okhttp client used by DataDog agent.

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>

* fix review comments

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>

* Fix checkstyle

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>
2020-12-09 23:12:20 +02:00
Pavol Loffay 4e52b3e741
Add newrelic and datadog package prefixes to global ignore matcher (#1812)
* Add nerelic and datadog package prefixes to global ignore matcher

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>

* add dot

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>

* Scope down newrelic agent

Signed-off-by: Pavol Loffay <p.loffay@gmail.com>
2020-12-09 21:07:38 +02:00
Anuraag Agrawal 3b8827b8ab
Update to SDK 0.12.0 (#1830)
* Update to SDK 0.12.0

* Update error message to the current world.

* Bump referenced smoke test versions

* fixes

* dependency hell

* Suppress unused call

* Bump missed smoke tests

* Bump image, bump smoke tests gRPC version
2020-12-07 17:16:47 +09:00
Nikita Salnikov-Tarnovski ef02da9090
Bootstrap prefix fix (#1833)
* Proper classloading test for WildFly and GlassFish

* Fix using BootstrapPackagePrefixesHolder

* Polish

* Format
2020-12-05 10:41:00 +02:00
Trask Stalnaker a2770c311e
Don't use ConfigUtils outside of AgentTestRunner tests (#1796)
* NetPeerUtilsTest

* RedisCommandNormalizerTest

* InstrumentationModuleTest

* HttpClientTracerTest

* Normalize test config properties

* Create ConfigBuilder in instrumentation-api

* Keep config properties compatible with SDK
2020-12-01 16:52:08 -08:00
Mateusz Rzeszutek 3c1a09109f
Use sdk-extensions/resources in the agent (#1809)
* Use sdk-extensions/resources in the agent

* Add smoke test, fix dropwizard test
2020-12-01 16:03:51 -08:00
Trask Stalnaker 0c8d7fe73f
Miscellaneous cleanup (#1805)
* Remove outdated doc

* Remove unnecessary dependencies

* Formatting

* Rename TRACER to tracer

* Move WrappedFuture to top-level class

* Add missing shadow config

* Use simpler type

* Use simpler base class
2020-11-29 21:05:53 -08:00
Trask Stalnaker 2b2ffa87ed
Rename defaultEnabled property to default-enabled (#1788) 2020-11-28 10:50:59 -08:00