Commit Graph

223 Commits

Author SHA1 Message Date
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
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 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
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 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
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
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
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
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
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
Trask Stalnaker 083651acef
Update more config property names (#1786) 2020-11-28 10:50:51 -08:00
Mateusz Rzeszutek 9a64a628ea
Make instrumentations non final (#1752)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2020-11-26 11:22:25 -08:00
Mateusz Rzeszutek 90ecff512a
Muzzle mismatch logs should be warnings in tests (#1754) 2020-11-26 11:21:17 -08:00
Ago Allikmaa d42dccb9bd
Make ByteBuddy task deterministic by using linked sets/maps. (#1770)
* Make ByteBuddy task deterministic by using linked sets/maps.

* Add class-level comments explaining the use of Linked maps/sets.
2020-11-26 11:07:07 +02:00
Trask Stalnaker 325238f128
Rename otel.trace.classes.excludes to otel.javaagent.exclude-classes (#1747)
* Rename otel.trace.classes.excludes

* Spotless
2020-11-25 16:53:49 +02:00
Ago Allikmaa d03c3d0d7e
Fix ByteBuddy tasks failing on daemon reuse. (#1762) 2020-11-25 15:01:32 +02:00
Mateusz Rzeszutek 50c8ab499d
Remove no longer needed helperClassNames() methods (#1755) 2020-11-24 20:50:32 -08:00
Mateusz Rzeszutek 13c405c174
Make muzzle generate helperClassNames() method (#1714) 2020-11-24 10:07:22 -08:00
Mateusz Rzeszutek 45646ff367
Rename TypeInstrumentation#classLoaderMatcher() to classLoaderOptimization() (#1741)
* Rename TypeInstrumentation#classLoaderMatcher() to classLoaderOptimization()

* Removed no longer needed comments & improved JavaDoc

* Improve TypeInstrumentation Javadoc
2020-11-24 14:27:58 +02:00
Trask Stalnaker 0c5c4caaa4
Rename java-concurrent and java-classloader instrumentation modules (#1733)
* Rename java-concurrent instrumentation to executors

* Rename java-classloader to classloaders
2020-11-23 17:49:10 -08:00
Trask Stalnaker 3b480f5e50
Rename otel trace properties (#1740)
* Rename otel.trace.enabled

* Rename otel.trace.debug

* Rename otel.trace.config

* Rename otel.trace.runtime.context.field.injection

* Rename otel.instrumentations.enabled

* Document otel.javaagent.enabled
2020-11-23 14:53:18 -08:00
Trask Stalnaker d2f064dcd4
Add static keyword to make groovy inner classes nested (#1734)
* Add static keyword to make groovy inner classes nested

* Too much

* A bit less

* Spotless
2020-11-23 15:43:42 +02:00
Trask Stalnaker 79f76c78ad
Move java files to java source folder and groovy files to groovy source folder (#1735)
* Move java files to java source folder

* Move groovy files to groovy source folder

* Too much

* Move another one back

* Codenarc

* Move test resource to where test is

* Spotless
2020-11-23 15:42:04 +02:00
Trask Stalnaker 308a8f9b0f
Consistent equals implementations (#1736)
* Consistent equals implementations

* Use direct equals where previous behavior
2020-11-23 15:41:31 +02:00
Trask Stalnaker 19e85bbca7
Fix for no propagators being installed (#1730) 2020-11-22 09:56:18 -08:00
Trask Stalnaker e18a4d1038
Fix spring-webmvc testLatestDeps (#1723) 2020-11-21 09:21:14 +02:00
Sergei Malafeev 4b3bbf6612
add baggage propagator to default propagators (#1545) 2020-11-20 09:56:01 -08:00
Trask Stalnaker 80b068b459
Instrument java.servlet.Filter directly (#1606)
* Instrument filter directly

* Remove some additional ignores

* Fix OncePerRequestFilter not being instrumented itself
2020-11-18 19:59:28 -08:00