Commit Graph

548 Commits

Author SHA1 Message Date
Lauri Tulmin 7bb0c6bb85
Test whether http client span ends after headers or body is received (#12149) 2024-09-04 15:52:16 +03:00
Mariia Skripchenko 4af6a3d6f0
Fix error span status for successful requests in Ktor (#12161) 2024-09-03 11:26:29 -07:00
Serkan ÖZAL d64eda3204
Add network peer address attributes to the span for the `okhttp-3.0` instrumentation (#12012) 2024-08-26 15:43:27 -07:00
Gregor Zeitlinger 749fafaea8
enforce static imports (#12009) 2024-08-21 10:40:50 -07:00
Mariia Skripchenko c9a9f579a5
Fix ending span in Ktor plugin (#11726) 2024-08-14 17:38:27 -07:00
Jonas Kunz f74af5476e
Force dynamic typing on AssignReturned annotations (#11884) 2024-08-13 07:30:51 -07:00
Jonas Kunz f8c383c62e
Allow any types in invokedynamic advice method signatures (#11873)
Co-authored-by: Lauri Tulmin <tulmin@gmail.com>
2024-08-01 08:59:35 -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
Lauri Tulmin de30e3120a
Add http/2 tests for jdk http client (#11506) 2024-06-01 11:20:45 +03:00
Lauri Tulmin bea670a345
Improve awaitGc reliability (#11419) 2024-05-22 09:23:02 +03:00
Lauri Tulmin 3a9972b16f
Remove incubating semconv dependency from library instrumentation (#11324) 2024-05-15 11:44:21 -07:00
Lauri Tulmin 67417e3ee3
Armeria http client reports wrong protocol (#11334) 2024-05-15 11:41:34 -07:00
Lauri Tulmin defd7cb083
Test undertow and armeria http2 server (#11361) 2024-05-15 10:48:43 -07:00
Andrei Chugunov deac3971d9
spring mvc tests to java (#11114)
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2024-05-08 12:28:35 +03:00
Gregor Zeitlinger 2f79f1dcc0
move the reactive spring tests to a different directory (#11234) 2024-04-29 09:28:23 -07:00
Gregor Zeitlinger d1591f72a7
Small fixes (#11236) 2024-04-29 11:55:35 +03:00
SylvainJuge 955470a63a
Semconv 1.25.0 migration (#10983)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 11:25:52 -07:00
Lauri Tulmin c3f8f7f13a
Remove duplicate GcUtils class (#10871) 2024-03-18 21:33:04 +02:00
Steve Rao 0a5c31193c
Deleted redundant checks (#10434) 2024-02-07 07:30:52 -08:00
Trask Stalnaker 0f534a8a0d
Test that `client.address` is always captured (#10369) 2024-01-31 12:32:32 -08:00
Lauri Tulmin b57c1a023b
Update semconv (#10272) 2024-01-30 17:10:35 +00:00
Lauri Tulmin fda1ee124a
Add timeout to awaitGc (#10081) 2023-12-15 11:45:35 -08:00
Lauri Tulmin afe10b551b
Fix flaky http client test (#10016) 2023-12-06 13:57:00 +02:00
Mateusz Rzeszutek 65ee9510f5
Rename the `instrumentation-api-semconv` module into `instrumentation-api-incubator` (#9985) 2023-12-04 08:28:10 +01:00
Mateusz Rzeszutek dc81aae72f
Move HTTP classes to instrumentation-api (#9977) 2023-12-01 12:04:06 +01:00
Mateusz Rzeszutek 7cd705b555
Remove old HTTP semconv code (#9968) 2023-11-29 08:04:31 -08:00
Mateusz Rzeszutek 280c1ea4c1
Enable stable HTTP semconv by default (#9925) 2023-11-28 10:43:51 -08:00
Lauri Tulmin f491250efa
Allow starting and stopping of test server to throw an exception (#9895) 2023-11-17 07:53:48 -08:00
Mateusz Rzeszutek 020e4abbf0
Remove no longer used HTTP client test case (#9816) 2023-11-07 07:57:04 -08:00
Jonas Kunz 6eb8ae19df
Allow injection of helper bytecode as resources (#9752) 2023-11-06 09:37:52 -08:00
Mateusz Rzeszutek dbe90c5fcf
Change `network.protocol.name` from opt-in to conditionally required (#9797) 2023-11-06 11:48:42 +01:00
Mateusz Rzeszutek d6c2aff7c2
Change `http.request.body.size` and `http.response.body.size` attributes from recommended to opt-in (#9799) 2023-11-02 11:20:50 -07:00
Mateusz Rzeszutek bd6d6ee285
Make `url.scheme` opt in for HTTP client metrics and make `server.port` required (#9784) 2023-11-01 09:01:14 +02:00
Mateusz Rzeszutek 182ee7ea74
Change `client.port` from recommended to opt-in on HTTP server spans (#9786) 2023-11-01 08:58:34 +02:00
Mateusz Rzeszutek b453252b45
Remove conditional requirement on `network.peer.address` and `network.peer.port` (#9775) 2023-10-31 15:31:53 +02:00
Mateusz Rzeszutek b193ca00a1
Change `user_agent.original` from recommended to opt-in on HTTP client spans (#9776) 2023-10-30 17:20:10 +02:00
Mateusz Rzeszutek 96d59d5539
Refactor HTTP server `server.address` and `server.port` attributes (#9760) 2023-10-30 08:55:30 +01:00
Mateusz Rzeszutek 8bc5297d6d
Don't normalize the '-' character in HTTP header names (#9735) 2023-10-24 09:16:13 -07:00
Lauri Tulmin 5a2f52978f
Make kafka library and javaagent instrumentations more similar (#9738) 2023-10-24 09:08:03 -07:00
Lauri Tulmin a2f01e577e
Make more tests run with indy (#9729) 2023-10-24 12:23:50 +03:00
Mateusz Rzeszutek 0fc1a99b82
Make `network.transport` and `network.type` opt-in (#9719) 2023-10-19 13:38:35 -07:00
Jonas Kunz 2d4d010cb0
Add capability for invokedynamic InstrumentationModules to inject proxies (#9565) 2023-10-19 10:11:24 -07:00
Mateusz Rzeszutek 9cb157492c
Replace `(client|server).socket.(address|port)` attributes with `network.(peer|local).(address|port)` (#9676) 2023-10-18 10:36:32 +00:00
Mateusz Rzeszutek ea8f3d0e24
Rename http.resend_count to http.request.resend_count (#9700) 2023-10-17 11:03:48 -07:00
Lauri Tulmin 0511f5f7c3
Suppress exception test should not count as advice failure (#9658) 2023-10-12 13:37:13 +02:00
Lauri Tulmin 9dd220350d
Use class as test parameter instead of object (#9659) 2023-10-12 13:36:22 +02:00
Lauri Tulmin 0de1dcff45
Fail test if advice threw an exception (#9654)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-10-11 19:17:20 +00:00
Mateusz Rzeszutek b6dd11ad6e
Implement error.type attribute in HTTP semconv (#9466) 2023-10-10 15:58:12 -07:00
Mateusz Rzeszutek ab66a85b80
Update HTTP metrics' descriptions (#9635) 2023-10-09 11:32:41 -07:00
Lauri Tulmin 0ae1a59bdf
Remove last usages of old semconv (#9627) 2023-10-09 13:34:12 +02:00
Lauri Tulmin 538c2329d2
Clear exported data after test (#9583) 2023-09-29 13:30:40 -07:00
Lauri Tulmin 553eaa576c
Spring webflux: add user spans as children of the controller span (#9572) 2023-09-28 21:25:34 +03:00
Lauri Tulmin 7d2259742a
Transform inline advice to delegating advice and test indy modules (#9508) 2023-09-22 11:15:39 +03:00
Trask Stalnaker ae25d481ff
Use new semconv constants (#9504) 2023-09-20 14:53:40 +03:00
Mateusz Rzeszutek 3136916749
Add HTTP server tests for non standard methods (#9446) 2023-09-15 08:43:36 -07:00
Jonas Kunz 10480adc64
Implement invokedynamic advice bootstrapping (#9382) 2023-09-13 17:44:47 -07:00
Trask Stalnaker 3b77cc4b2d
Semconv 1.21 (#9408)
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-09-13 19:20:23 +00:00
Lauri Tulmin d157b68efb
Use HTTP instead of non-known method in http span name (#9441)
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2023-09-13 10:14:30 -07:00
Trask Stalnaker cc4e1bf1ae
Update semconv to 1.21.0, PART 2 - HTTP (#9372) 2023-09-07 08:25:23 -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
Lauri Tulmin 30cd005c8a
Add http client non standard method test to groovy tests (#9354) 2023-08-31 08:08:36 -07:00
Mateusz Rzeszutek d7a34f90ba
Refactor and rename `HttpClientResend` and `HttpRouteHolder` (#9280)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-08-26 00:37:25 +00:00
Lauri Tulmin ba9d1ad1fe
Allow spans in any order in http client connectionErrorUnopenedPortWi… (#9240) 2023-08-18 08:24:29 -07:00
Lauri Tulmin 23c20dadaf
Add http client test with non-standard request method (#9204) 2023-08-18 09:01:53 +03:00
Lauri Tulmin 603baa7b1e
Flaky tomcat access log tests (#9195) 2023-08-14 16:22:46 -07:00
Lauri Tulmin b9e459da07
Test http client stable semconv (#9178) 2023-08-13 10:22:04 -07:00
renovate[bot] 01883e3b2e
Update errorProneVersion to v2.21.1 (#9146)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-08-07 11:54:52 +02:00
Mateusz Rzeszutek 27faf8f5b7
Make `HttpServerAttributesGetter` extend `NetServerAttributesGetter` (#9088) 2023-08-02 08:52:44 -07:00
Mateusz Rzeszutek a13c342a58
Fix timeouts in reactor-netty-1.0 tests (🤞) (#9049) 2023-07-26 16:30:04 +02:00
Mateusz Rzeszutek 718fa0da14
Implement HTTP resend spec for Reactor Netty (excl CONNECT spans) (#8111)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-07-21 14:37:48 +00:00
Mateusz Rzeszutek 6e573289ae
Replace NetAttributes with SemanticAttributes (#8992) 2023-07-21 11:27:54 +02:00
jason plumb 23acd5b4fd
Migrate "runtime-metrics" test from groovy to java (#8928)
Co-authored-by: Jean Bisutti <jean.bisutti@gmail.com>
2023-07-18 11:55:15 +02:00
Mateusz Rzeszutek 8815952300
Initialize appenders in the spring boot starter (#8888)
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-07-11 08:47:01 -07:00
Mateusz Rzeszutek cde2e70148
Implement new stable server semantic conventions (#8663) 2023-06-13 11:07:59 +02:00
OpenTelemetry Bot bbb05276be
Update the OpenTelemetry SDK version to 1.27.0 (#8688)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-06-13 12:02:11 +03:00
Mateusz Rzeszutek 506ccb6b7d
Implement new stable network semantic conventions (#8616) 2023-06-12 16:51:47 +02:00
Mateusz Rzeszutek 5b03ae655f
Implement new stable HTTP semantic conventions (#8632) 2023-06-08 20:02:45 -07:00
Mateusz Rzeszutek 8ee63d4441
Implement new stable URL semantic conventions (#8491) 2023-06-05 15:22:22 +00:00
Mateusz Rzeszutek c10108bbe0
Enable HTTP client read timeout tests by default (#8530) 2023-05-19 10:24:49 -07:00
Mateusz Rzeszutek d98c0b4192
Simplify/refactor `AbstractHttpClientTest` and replace protected method… (#8510) 2023-05-17 19:38:04 +03:00
Mateusz Rzeszutek 8ba8082f44
Refactor resend/redirect tests in AbstractHttpClientTest so that they… (#8500) 2023-05-16 12:13:40 -07:00
Mateusz Rzeszutek 48f85fb5f2
Replace target with path and query in HttpServerAttributesGetter (#8382) 2023-05-11 12:47:00 -07:00
dependabot[bot] 3122897b2e
Bump errorProneVersion from 2.18.0 to 2.19.0 (#8459)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-05-10 09:49:55 -07:00
OpenTelemetry Bot 2b7b27b990
Update the OpenTelemetry SDK version to 1.26.0 (#8427)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-05-06 22:55:01 +00:00
Lauri Tulmin 413890d246
Test http pipelining (#8403) 2023-05-04 10:23:48 +03:00
Helen 6295c67def
Fix a todo (#8343) 2023-04-24 20:49:30 -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
Lauri Tulmin 0f258c669a
Use hasAttributesSatisfyingExactly instead of hasAttributesSatisfying (#8336) 2023-04-24 11:57:45 +02:00
Helen ffb63d68eb
Fix nested http.route (#8282)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-04-21 09:27:28 +02:00
Mateusz Rzeszutek e3944a53a5
Make net.transport an optional attribute (#8279) 2023-04-20 08:14:03 -07:00
OpenTelemetry Bot 22df5866b0
Update the OpenTelemetry SDK version to 1.25.0 (#8262)
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-04-10 18:12:57 -07:00
Mateusz Rzeszutek 5b271c4917
Switch from http.flavor to net.protocol.* in HTTP server instrumentat… (#8244) 2023-04-09 08:47:33 -07:00
Mateusz Rzeszutek f501569106
Switch from http.flavor to net.protocol.* in HTTP client instrumentat… (#8131) 2023-04-07 13:39:42 +02:00
Andrei Chugunov 506ca93699
webflux 5.0 groovy to java tests part 2 (#7776)
@trask @mateuszrzeszutek hello, what do you think about
SingleThreadedSpringWebfluxTest, the test contains dependencies on new
reactor netty classes in testLatestDeps case. I tried use reflection for
rewriting the test to java but it was not trivial and I not reach the
result

---------

Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-04-05 19:33:23 -07:00
Lauri Tulmin 4d21d45f3d
Verify that server span ends after child spans in java tests (#8208)
Currently server span end time verification is only implemented for
groovy tests.
2023-04-04 09:54:10 -07: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
OpenTelemetry Bot 288c407d12
Update the OpenTelemetry SDK version to 1.24.0 (#8027)
Update the OpenTelemetry SDK version to `1.24.0`.

---------

Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-03-13 09:14:50 +01:00
Lauri Tulmin bb1bc5d71e
Preserve span order (#8017)
On jdk8 tests occasionally fail when spans starting on the same
millisecond get reordered. As we eventually sort the spans by start time
we can't get the initial oder back when the start time is the same for
these spans. Hopefully preserving the initial order reduces such
flakiness.
2023-03-09 16:37:52 +02:00
James Moessis 3f45f755a9
Spring Webflux Library Instrumentation (#7899)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7436

* Created new Module `spring-webflux-5.3` which contains only
server-side library instrumentation
* Minimum supported version is 5.3 because there are various problems in
older versions of reactor and webflux that prevent a few of the tests
from passing.
* Moved existing `spring-webflux-5.0` (webclient instrumentation) into a
common `spring-webflux` folder next to the 5.3 (server) instrumentation.
Moved the README to the parent folder so the docs are cohesive between
client/server instrumentation.
* Implemented `WebFilter` which instruments the server-side 
* Depends on the `reactor-3.1` instrumentation to pass the context
around. Registers the react hook when it creates the `WebFilter`
* Tests using the standard HTTP server test suite

---------

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2023-03-08 08:43:46 +01:00