Ago Allikmaa
a9788a22de
Provide ability to add HTTP server response headers, with Tomcat implementation ( #7990 )
...
This allows custom distributions of the agent to register
`HttpServerResponseCustomizer` implementations. When a supported HTTP
server instrumentation starts processing a response, the `onStart`
method of all registered implementations will be invoked with the
`Context` of the SERVER span, an instrumentation-specific response
object and `HttpServerResponseMutator` instance that allows appending
headers to that response.
The intent of this is to allow custom distributions to set a header
containing span context information, such as the trace and span IDs. As
such, the initial implementation only allows appending response headers
and nothing else.
The `HttpServerResponseCustomizer` and related classes are currently in
a subpackage of the `io.opentelemetry.javaagent.bootstrap` package in
`javaagent-extension-api`. This makes them get loaded in the bootstrap
classloader, thus directly accessible from instrumentations. I am not
aware if there is an elegant way to put it in the agent classloader
instead, yet have the same instance accessible from both
`AgentInstaller` and instrumentations.
This also includes Tomcat-specific implementation in order to be able to
demonstrate that it works, and add automated testing of this to
HttpServerTest including one implementation.
2023-03-13 17:46:39 +01:00
adamleantech
96fd1d7522
Add Baggage to logback MDC controlled by flag ( #7892 )
...
The intention here is to allow users of the java agent to set a VM flag
in order to be able to add values in the current Baggage context to MDC
for logback. It seemed unwise to turn this on by default - if the
application is configured to print all MDC contents (as it often the
case with JSON output) then baggage would be logged out by default which
may either bloat the logs or result in sensitive data being exposed
unitentionally.
Addresses #1391 and #6708
Note that this is my first contribution to this repo, I've done my best
to follow the existing approaches to things like testing but would
appreciate any feedback.
---------
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2023-03-09 08:03:56 -08:00
Trask Stalnaker
93175522d4
Rename kafka propagation setting and clarify behavior ( #6957 )
2022-10-24 08:49:48 -07:00
Lauri Tulmin
3e89a8ab31
Delete deprecated configuration flags ( #6771 )
2022-09-28 12:33:57 -07:00
Mateusz Rzeszutek
7b139e9df9
Remove agent's Ordered interface and use the SDK one ( #6589 )
2022-09-12 12:15:18 -07:00
Mateusz Rzeszutek
59cb9ca0df
Remove deprecated code ( #6501 )
...
* Remove deprecated code
* unnecessary semicolon
* fix distro and extension examples
2022-08-24 14:36:57 -07:00
Trask Stalnaker
7f5d0cb5b7
Fix default-enabled config ( #6491 )
2022-08-19 12:41:08 -07:00
Mateusz Rzeszutek
fdc325e209
Deprecate agent config SPIs ( #6476 )
2022-08-18 10:28:16 +02:00
Lauri Tulmin
07d7cfd551
Capture messaging header value as span attribute ( #6454 )
...
* Capture messaging header value as span attribute
* add comment
2022-08-11 17:28:04 -07:00
Mateusz Rzeszutek
976ab9411c
Deprecate Config ( #6360 )
...
* Deprecate Config
* suppress deprecation on ConfigTest
2022-07-25 12:10:11 -07:00
Mateusz Rzeszutek
b917b3bf9c
Use ConfigProperties instead of Config in the agent code ( #6322 )
...
* Use ConfigProperties instead of Config in the agent code
* Fix merge conflict
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-07-18 19:04:48 -07:00
Mateusz Rzeszutek
8d1ba17d29
InstrumentationConfig part 4: DB sanitization ( #6317 )
...
* InstrumentationConfig part 4: DB sanitization
* fix couchbase unit tests
* code review comments
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-07-15 21:47:33 -07:00
Mateusz Rzeszutek
3af56e7d22
InstrumentationConfig part 3: HTTP headers and peer service mappings ( #6302 )
2022-07-15 14:52:52 -07:00
Mateusz Rzeszutek
35c63a4184
Remove the 'noop API' feature ( #6313 )
...
* Remove the 'noop API' feature
* remove noop api dep
* fix tooling tests
2022-07-12 10:36:19 -07:00
Mateusz Rzeszutek
b23db97a28
Use ConfigProperties in javaagent SPIs ( #6285 )
...
* Use ConfigProperties in javaagent SPIs
* remove deprecated
* errorprone
* fix javaagent build
* fix javaagent-tooling tests
* spotless
2022-07-12 08:41:01 +02:00
Mateusz Rzeszutek
7bbe918008
InstrumentationConfig part 2 ( #6292 )
2022-07-11 09:47:19 +02:00
Mateusz Rzeszutek
e7887ac929
Idea: deprecate `Config`, add agent-only `InstrumentationConfig` ( #6264 )
...
* Idea: deprecate Config, add agent-only InstrumentationConfig
* fix
* fix camel test
* fix external-annotation tests
2022-07-08 16:20:49 +02:00
Mateusz Rzeszutek
198dad00d6
Prefer using ConfigProperties over Config in AgentListener ( #6202 )
...
* Prefer using ConfigProperties over Config in AgentListener
* normalize property name
* add TODOs
2022-07-07 15:44:32 +02:00
Trask Stalnaker
701ed54311
Use "class loader" instead of "classloader" consistently in docs and comments ( #6236 )
...
* Use "class loader" consistently instead of classloader
* Java comments too
* Fix bad merge
2022-06-30 14:57:07 -07:00
Mateusz Rzeszutek
cb7421c592
Add an SPI for customizing Config just before it's set ( #6010 )
...
* Add an SPI for customizing Config just before it's set
* deprecate ConfigPropertySource in favor of ConfigCustomizer
* errorprone
2022-05-16 11:55:01 -07:00
Mateusz Rzeszutek
6a0ca530b7
Instrumentation API changes: VirtualField ( #6017 )
...
* Instrumentation API changes: VirtualField
* change class name in string constant
2022-05-12 11:17:24 -07:00
Mateusz Rzeszutek
25d929b5e7
Deprecate the AgentListener#beforeAgent() method ( #6006 )
...
* Deprecate the AgentListener#beforeAgent() method
* errorprone
2022-05-10 10:30:40 -07:00
Mateusz Rzeszutek
d919f84cf8
Merge javaagent-instrumentation-api into javaagent-extension-api ( #5936 )
...
* Merge javaagent-instrumentation-api into javaagent-extension-api
* remove some leftover references to javaagent-instrumentation-api
* add missing instrumentation-api to distro example
2022-04-28 20:11:15 -07:00
Mateusz Rzeszutek
202a24c867
Remove deprecated code from instrumentation-api, extension-api ( #5883 )
2022-04-19 12:22:11 -07:00
Mateusz Rzeszutek
519024485c
Move Cache and related classes to internal package ( #5759 )
...
* Move Cache and related classes to internal package
* fix imports
2022-04-06 18:12:11 -07:00
Mateusz Rzeszutek
65717dae3e
Cleanup Config & ConfigBuilder API ( #5733 )
...
* Cleanup Config & ConfigBuilder API
* errorprone
* errorprone & spotless
* spotless
2022-04-05 20:20:52 -07:00
Mateusz Rzeszutek
2fd167cfe0
Move BootstrapPackagesConfigurer to javaagent-tooling ( #5734 )
2022-04-01 11:33:07 -07:00
Mateusz Rzeszutek
b668e73e13
Convert all logging statements from slf4j to jul ( #5674 )
...
* Convert all logging statements from slf4j to jul
* code review comments
* fix tests
* Fix randomly failing test
2022-03-25 10:02:51 -07:00
Mateusz Rzeszutek
f2587ba248
Apply micrometer instrumentation to spring-boot-actuator apps ( #5666 )
...
* Apply micrometer instrumentation to spring-boot-actuator apps
* fix a bug
* code review comments
2022-03-23 10:25:51 -07:00
Mateusz Rzeszutek
56f65e4fab
Convert all logging statements from slf4j to jul - part 1 ( #5628 )
...
* Convert all logging statements from slf4j to jul - part 1
* fix tests
* use placeholders
* fixed all comments, added static imports for Level
2022-03-22 10:35:27 -07:00
Anuraag Agrawal
ec375116be
Fix more lint warnings ( #5174 )
...
* Fix more lint warnings
* Redisable lint
* Drift
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-20 12:48:46 +09:00
Anuraag Agrawal
b7a95857c7
Fix some java lint warnings ( #5120 )
...
* Convert InstrumentationTestRunner from interface to abstract class
* Foo
* Commit
* Revert unintended
2022-01-17 10:26:03 -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
191a9a00ce
InstrumentationClassPredicate was renamed to HelperClassPredicate ( #4964 )
2021-12-21 11:19:07 -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
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
Trask Stalnaker
e9022da102
Remove unshaded javax.annotation classes from bootstrap class loader ( #4454 )
...
* Fix shading
* Revert "Fix shading"
This reverts commit 2aad3cfe21
.
* Make javax.annotations compileOnly
* Replace checker GuardedBy with otel api internal GuardedBy
* Fix build
* Fix errorprone failures
* Remove extra newline
* Move internal GuardedBy to instrumentation-api
* empty commit
* empty commit
2021-10-21 14:47:50 -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
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
Nikita Salnikov-Tarnovski
c28374615b
Add functionality to generate API changes ( #4285 )
...
* Add functionality to generate API changes
* Update conventions/src/main/kotlin/otel.japicmp-conventions.gradle.kts
Co-authored-by: John Watson <jkwatson@gmail.com>
* Do not commit any API changes until we have stable release
Co-authored-by: John Watson <jkwatson@gmail.com>
2021-10-06 09:59:01 +03: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
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
07871686ea
Hide InstrumentationContextBuilder from public API ( #4216 )
...
* Introduce muzzle-specific interface to InstrumentationModule
* Moved more methods to the InstrumentationModuleMuzzle interface
* Fixing tests
* More logs
* Fix log name
* Hide InstrumentationContextBuilder from public API
2021-09-29 11:26:39 +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
Nikita Salnikov-Tarnovski
f788d84e35
Remove muzzle from gradleplugins ( #4183 )
...
* Include gradle-plugins as a composite build
* Make gradle-plugins project independent from the main one
* Delete old ClassRef and friends
* Fixes
* Polish
* Polish
* Simplify
2021-09-24 15:59:03 +03:00