Ago Allikmaa
e466dc439a
Add HttpServerResponseCustomizer support for Servlet and Jetty ( #8095 )
...
Add `HttpServerResponseCustomizer` support for Servlet 2.2/3.0/5.0 and
Jetty 8/11 instrumentations. Enabled testing for it in JaxRs tests as
well since those should now all be covered due to servlet
instrumentations. Fixed Jetty 11 test source set directory name.
Known limitation - response headers do not work on Jetty 8 for internal
exception pages caused by throwing an exception that is handled outside
of instrumentation scope, working around this would require an
additional instrumentation and/or keeping an expired `Context` instance
referenced by the response object. This does not appear to be an issue
on Jetty 11. Additionally, calling `ServletResponse#reset` can wipe
headers as well, for which there is no workaround (yet?) in this PR.
2023-03-23 12:01:07 +01:00
Mateusz Rzeszutek
ea237e3a80
Update HTTP span name extractors ( #7730 )
...
Implements
https://github.com/open-telemetry/opentelemetry-specification/issues/2998
---------
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-02-14 07:40:05 -08:00
Mateusz Rzeszutek
e1895e548c
Rename all methods in all Getters to use the `get*()` naming scheme ( #7619 )
...
Resolves #6562
This PR only contains renames; the actual content is in the `*Getter`
interfaces, the rest of changes is just IntelliJ doing its job.
2023-01-23 09:28:11 +00:00
Mateusz Rzeszutek
f50f1fed3b
Fix instrumentation-api-semconv packages ( #6590 )
...
* Fix instrumentation-api-semconv packages
* Move test
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-09-12 14:51:27 -07:00
Mateusz Rzeszutek
cfdbe758f2
Net attributes getters changes (in preparation for HTTP spec impl) ( #6503 )
...
* Net attributes getters changes: instrumentation-api-semconv changes
* Net attributes getters changes: getter implementations
* Net attributes getters changes: test fixes
* Remove net.sock.host.name
* code review comments
* default getter methods & getPeerSocketAddress() method name
* set authority in grpc earlier
2022-09-12 09:20:27 -07:00
Mateusz Rzeszutek
6cd79b2a94
Deprecate the 2-arg variant of HttpCommonAttributesGeter#statusCode() ( #6466 )
...
* Deprecate the 2-arg variant of HttpCommonAttributesGeter#statusCode()
* fix liberty
2022-08-12 17:11:11 -07:00
Mateusz Rzeszutek
b2c90c79b5
Extract HTTP request & response content length from headers ( #6415 )
...
* Extract HTTP request & response content length from headers
* remove unused method
* fix camel tests
* fix google http client tests
* fix HttpUrlConnection tests
* fix k8s and jaxrs tests
* fix aws tests
* actually fix aws tests 🤞
* fix elasticsearch tests
* fix ratpack tests
* fix spring webflux tests
* fix vertx tests
* fix reactor netty tests
2022-08-05 10:55:47 -07:00
Mateusz Rzeszutek
6a24080fe9
Add code attributes to several instrumentations ( #6365 )
...
* Add code attributes to several instrumentations
* fix servlet tests
* fix tests
* fix elasticsearch tests
* fix context bridge test
* fix rxjava tests
* fix spring webmvc tests
2022-07-27 09:37:01 +02: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
Lauri Tulmin
f43c92d244
Remove ResponseSingletons ( #5981 )
2022-05-05 08:38:55 -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
Lauri Tulmin
e9c1efece2
Update to Groovy 4 ( #5532 )
...
* Update to Groovy 4
* exclude spock from grails tests, update comment
* Update instrumentation/grails-3.0/javaagent/build.gradle.kts
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-03-09 15:07:41 -08:00
Lauri Tulmin
b3496381f1
Write http server tests in java ( #5501 )
...
* Write http server tests in java
* typo
* Apply suggestions from code review
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
* add comments
* address review comments
* use Predicate
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-03-08 14:21:59 -08:00
Trask Stalnaker
53a8b85f4c
Updates to http.server_name ( #5369 )
...
* Updates to http.server_name
* Tests
* fix
* armeria
* fix
* fix
* codenarc
2022-02-18 09:38:21 -08:00
Trask Stalnaker
022914139e
test latest deps cleanup ( #5269 )
...
* test latest deps cleanup
* Revert currently irrelevant change
* Update instrumentation/lettuce/lettuce-4.0/javaagent/build.gradle.kts
Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2022-02-01 09:49:07 -08:00
Mateusz Rzeszutek
8b767ac435
Refactor HTTP attributes extractors to use composition over inheritance ( #5267 )
...
* Refactor HTTP attributes extractors to use composition over inheritance
* Rename remaining variables: *Extractor to *Getter
2022-01-31 09:25:27 -08:00
Trask Stalnaker
23b33adb0a
Auto-format groovy files in Intellij ( #5260 )
...
* Auto-format groovy files in Intellij
* A bit of clean up
2022-01-28 09:29:46 -08:00
Mateusz Rzeszutek
9381d5a264
Expected server span name for null route should be HTTP GET ( #5197 )
2022-01-21 19:35:48 -08:00
Mateusz Rzeszutek
540e4cfafb
Remove HttpServerTest#extraAttributes() method ( #5176 )
...
* Remove HttpServerTest#extraAttributes() method
* fix ktor tests
* fix ratpack and restlet tests
* fix servlet2 tests
* Fix webflux and vertx tests
2022-01-20 10:41:41 -08:00
Mateusz Rzeszutek
872c6c7d80
Add `http.route` to the server span when `ServerSpanNaming` is updated ( #5086 )
...
* Add `http.route` to the server span when `ServerSpanNaming` is updated
* fix camel tests
* fix test compilation failure
* assert route in camel instrumentation
2022-01-14 13:52:06 -08:00
Lauri Tulmin
12c15b226f
Capture servlet request parameters at the end of the request ( #5019 )
...
* Capture servlet request parameters at the end of the request
* add comment
2022-01-06 12:02:42 -08:00
Mateusz Rzeszutek
a65e9633ba
Refactor `ServerSpanNaming` (in preparation for `http.route`) ( #4852 )
...
* Refactor ServerSpanNaming (in preparation for http.route)
* fix tests
* Add ServerSpanNaming to all HTTP server instrumentations
* fix tests
2021-12-14 10:11:20 +01:00
Mateusz Rzeszutek
075434c5bc
Move `AppServerBridge` and `MappingResolver` to `servlet-common:bootstrap` ( #4817 )
...
* Move AppServerBridge and MappingResolver to servlet-common:bootstrap
* Introduce additional gradle configuration for bootstrap libs
2021-12-07 10:20:33 +01:00
Mateusz Rzeszutek
0dc410a2e3
Reorganize shared servlet code (intro to #4317 ) ( #4785 )
...
* Reorganize shared servlet code (intro to #4317 )
* Fix dropwizard tests
* fix compile error
2021-12-06 13:49:55 +01:00
Lauri Tulmin
1dfd8654f6
Avoid logging servlet3 muzzle failure when running on servlet2 ( #4474 )
2021-10-22 22:57:53 +03:00
Lauri Tulmin
ef131acd6d
Enable http server concurrency test everywhere ( #4465 )
...
* Enable http server concurrency test everywhere
* remove testConcurrency method as test is now always enabled
* rebase
2021-10-22 08:39:30 -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
Lauri Tulmin
b06c1f9018
Collect more attributes from servlet instrumenter ( #4356 )
...
* Collect more attributes from servlet instrumenter
* spotless
2021-10-12 10:58:47 -07:00
Mateusz Rzeszutek
354699647a
Test captured HTTP headers - HTTP server tests, part 2 ( #4328 )
...
* Test captured HTTP headers - HTTP server tests, part 2
* Turn off captured HTTP headers testing for grizzly
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-10-08 13:05:35 -07:00
Mateusz Rzeszutek
7473eff1e6
Extract HTTP request/response headers as span attributes ( #4237 )
...
* Extract HTTP request/response headers as span attributes
* fix muzzle
* code review comments
* fix compilation failure after merge conflict
* avoid using streams API when transforming the headers list
* fix liberty extractor
* fix spring webmvc extractor
2021-10-05 10:20:59 +02: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
Mateusz Rzeszutek
a277a8b636
Separate HTTP client/server AttributesExtractors ( #4195 )
2021-09-24 10:06:23 -07:00
Trask Stalnaker
8066f2787c
Add context customizer hook to Instrumenter API ( #4167 )
...
* Add context customizer hook to Instrumenter API
* Use in tomcat instrumentation
* Some of servlet
* Use in rest of servlet
* Feedback
2021-09-22 14:54:04 -07:00
Lauri Tulmin
59439cb464
Make servlet context path key private ( #4125 )
...
* Make servlet context path key private
* remove accidentally added files
* fix servlet2.2
* use non capturing lambda
* Update instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletHttpServerTracer.java
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
* use method reference
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-09-16 10:23:29 -07:00
Lauri Tulmin
15277cf8f5
Convert servlet instrumentation to instrumenter api ( #4078 )
...
* Convert servlet to instrumenter api
* make classes final
* Remove some tracer files
* remove xxx
* fix liberty and wildfly exception smoke test
* fix async smoke test on liberty
* Apply suggestions from code review
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
* generic TextMapGetter for servlets
* not going to use http.route for servlets
* simplify
* add servlet timeout in attribute extractor
* move classes from library to javaagent
* remove unneeded dependency
* make method private
* move helper class initialization to singleton, remove helpers that don't have any methods, add shouldStart checks
* Update instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestContext.java
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
* add import
* rename methods that start and end spans
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-09-13 10:12:34 -07: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
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
b304cc2912
Deprecate CallDepth.reset() and get() ( #3511 )
...
* Deprecate CallDepth.reset() and get()
* Don't pass CallDepth around
2021-07-07 09:24:50 -07:00
Mateusz Rzeszutek
c5ba5c3a71
Use local variable for passing CallDepth between advice enter/exit me… ( #3504 )
...
* Use local variable for passing CallDepth between advice enter/exit methods
* fix broken call depth tracking
* checkstyle
* fix javadocs
2021-07-06 12:05:14 -07:00
Mateusz Rzeszutek
b9fcb6b498
Reduce CallDepth classes' API surface ( #3497 )
2021-07-06 09:24:19 +02:00
Lauri Tulmin
5d6be8764e
Remove jetty-server exclude ( #3453 )
2021-07-01 09:12:26 +09:00
Anuraag Agrawal
761b9c280b
Migrate instrumentation gradle files to kotlin ( #3414 )
...
* Migrate instrumentation gradle files to kotlin
* Convert
* Muzzle
2021-06-28 17:27:12 +09: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
Anuraag Agrawal
80f43b7a6a
Migrate javaagent-instrumentation to plugin ( #3328 )
...
* Migrate instrumentation.gradle to plugin
* Migrate usages
* Remove old
* Fix
* Revert example
* afterEvaluate
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-06-17 23:13:14 +09:00
Trask Stalnaker
4c80c62ce7
Add unused to remaining advice classes ( #3280 )
...
* Add unused to remaining advice classes
* Add newlines for visual separation
2021-06-14 11:12:02 +09:00
Mateusz Rzeszutek
b8aec6a671
Remove no longer needed NameMatchers class ( #3179 )
2021-06-03 14:36:36 -07: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
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
9c7fae3b04
Extract javaagent-extension-api from tooling & spi ( #2879 )
2021-05-06 23:30:25 -07:00