Commit Graph

64 Commits

Author SHA1 Message Date
Lauri Tulmin 940bce8784
Use context instead of request attributes for servlet async instrumentation (#13493) 2025-04-09 16:38:36 -07:00
Lauri Tulmin 553fbb30c2
Add body to http server concurrency test response (#13540) 2025-03-19 12:21:50 +02:00
renovate[bot] b1eb1fd3d9
fix(deps): update dependency io.opentelemetry.semconv:opentelemetry-semconv to v1.30.0-rc.1 (#13116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2025-01-30 14:18:43 -08:00
Jay DeLuca 77b90fc3d9
Update the default expected exception in server tests (#12555) 2024-11-02 17:42:03 +02:00
Trask Stalnaker bb90e0835a
Fix some assertions (#12520) 2024-10-26 15:01:29 -07:00
Lauri Tulmin 7f881d07a3
Don't use HttpServerTest.controller in java tests (#12347) 2024-09-29 17:09:25 -07:00
Lauri Tulmin 4d41ca5dbe
Improve tomcat version detection (#11936) 2024-08-01 11:37:34 -07:00
Lauri Tulmin 4cdd77161c
Fix http.server.active_requests metric with async requests (#11638)
Co-authored-by: Helen <56097766+heyams@users.noreply.github.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2024-07-15 11:13:03 -07:00
Jay DeLuca b36d2845b3
Convert tomcat 7 tests from groovy to java (#11402) 2024-05-21 09:57:35 +03:00
Lauri Tulmin 965ab55ceb
Fix tomcat instrumentation when user includes wrong servlet api (#10757) 2024-03-05 08:48:47 -08:00
Helen fdeb032b33
Disable controller and view spans by default (#10042)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2024-01-04 09:16:46 -08:00
Lauri Tulmin a2d4148067
Remove http stable semconv tests (#10087) 2023-12-21 08:30:26 -08:00
Mateusz Rzeszutek 3136916749
Add HTTP server tests for non standard methods (#9446) 2023-09-15 08:43:36 -07:00
Lauri Tulmin b0a8bd4f47
Test http metrics (#9353) 2023-09-01 11:07:11 +03:00
Lauri Tulmin d20b357c3d
Add http server stable semconv tests (#9360) 2023-08-31 18:43:03 -07:00
siyuniu-ms e87584fac6
change endpoint from enum to regular class (#8325)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-04-24 16:31:32 +00:00
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
Lauri Tulmin e526338fc3
Fix akka-http and tomcat10 latest dep tests (#6766)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/6760
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/6759
2022-09-27 15:45:04 -07:00
Mateusz Rzeszutek 08f013f9d6
Update gradle to 7.5.1 (#6359)
* Update gradle to 7.5

* Bump to 7.5.1

* gradle 7.5.1 with jdk17

* spotless

* one more --add-opens

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2022-08-12 12:03:43 +02:00
Trask Stalnaker 68a9f20eb3
Enable PrivateConstructorForUtilityClass errorprone check (#6427)
* PrivateConstructorForUtilityClass

* Advice

* More advice

* More

* More advice

* More

* Spotless

* Fix

* Fix

* Fix

* A better solution

* Revert

* More

* Fix

* Spotless

* Fix
2022-08-10 11:30:22 +03:00
Lauri Tulmin 30248684d1
Capture enduser.id in servlet instrumentation (#6225)
* Capture enduser.id in servlet instrumentation

* delete TomcatAdditionalAttributesExtractor

* spotless

* spotless
2022-06-27 21:03:54 -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 8d513f9099
Make tests provide expected exception instance instead of class (#5540)
* Make tests provide expected exception instance instead of class

* exception is optional
2022-03-11 14:24:03 +02: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
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 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
Lauri Tulmin 61b0dd3698
Capture servlet request parameters (#4703)
* Capture servlet request parameters

* use concurrenthashmap for cache
2021-12-05 21:25:31 -08:00
Lauri Tulmin bbb571792a
Try to make tomcat async servlet exception test less flaky (#4772) 2021-12-02 08:31:30 -08:00
Lauri Tulmin c53c8a0f01
Record exception for async servlet invocations (#4677)
* Record exception for asyn servlet invocations

* add back accidentally commented out line

* rearrange test so that it passes on both jetty and tomcat
2021-11-22 11:17:59 -08:00
Lauri Tulmin e31439ee0d
Fix context propagation in tomcat thread pool (#4521) 2021-10-27 16:52:55 -07: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
Mateusz Rzeszutek b2bc41453b
Rename some *InstrumenterBuilder classes to *InstrumenterFactory (#4391) 2021-10-15 14:47:32 +03:00
Trask Stalnaker 53a639bbba
Fix tomcat async spans (#4339)
* Add test

* Fix tomcat async spans

* Preserve existing test controller behavior

* Comments
2021-10-13 13:04:23 -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
Lauri Tulmin 478f936d54
Retry strict context check failures (#4282) 2021-10-08 10:47:52 -07:00
Lauri Tulmin 8e54d540bb
Convert liberty instrumentation to instrumenter api (#4205)
* Convert liberty instrumentation to instrumenter api

* review comment
2021-09-28 09:22:55 -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
Trask Stalnaker 20c72f3e98
Format kotlin gradle files (#3942)
* Add ktlint for kotlinGradle

* ktlint fails on wildcard imports

* Auto-format kotlin gradle files
2021-08-25 13:43:57 +09:00
Lauri Tulmin a2928663f4
Strict context check for tomcat and jetty (#3923) 2021-08-24 11:45:53 -07:00
Trask Stalnaker ec344b3184
Small simplification of servlet/tomcat tests (#3710)
* Small simplification of servlet/tomcat tests

* Spotless
2021-08-09 09:24:21 -07:00
Lauri Tulmin 9df06868fb
Instrument tomcat executor (#3789) 2021-08-07 10:07:42 -07:00