Commit Graph

100 Commits

Author SHA1 Message Date
Trask Stalnaker 74a9fd0353
Better qualify Java HttpClient instrumentation package name (#13296)
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2025-02-18 17:46:36 +00:00
Trask Stalnaker ffda571dd4
Remove deprecated HTTP library methods (#13150) 2025-02-01 08:05:03 +02:00
Trask Stalnaker c66816fa49
Rename setSetEmit... to internalSetEmit... (#13034) 2025-01-14 07:47:25 +02:00
Trask Stalnaker 2ea27b29e2
End span after closing scope (#12952) 2024-12-27 09:22:26 -08:00
Trask Stalnaker e5a9d1cfb7
Change `setKnownMethods(Set)` to `setKnownMethods(Collection)` (#12902) 2024-12-24 10:29:15 -08:00
Trask Stalnaker 6b9e68ebfd
Change `setCaptured*Headers(List)` to `setCaptured*Headers(Collection)` (#12901) 2024-12-23 15:49:55 -08:00
Trask Stalnaker b08d272e23
Remove experimental methods out of (to-be-public) TelemetryBuilder classes (#12847) 2024-12-16 18:40:06 -08:00
Trask Stalnaker 4cc4e1c0b2
Consistent naming of addAttributesExtractor (#12860) 2024-12-10 12:45:20 -08:00
Trask Stalnaker 2371589ec5
Statically import semconv constants in tests (#12575) 2024-11-06 08:17:57 -08:00
Gregor Zeitlinger b9f09cae88
Http server builder (#11651) 2024-10-07 09:41:24 -07:00
Gregor Zeitlinger e397159bfb
http server and client builder for netty (#12083) 2024-09-24 07:53:18 +03:00
Lauri Tulmin 7bb0c6bb85
Test whether http client span ends after headers or body is received (#12149) 2024-09-04 15:52:16 +03:00
Gregor Zeitlinger b00ccd7834
use DefaultHttpClientInstrumenterBuilder and DefaultHttpServerInstrumenterBuilder for armeria (#11797)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2024-08-14 17:37:24 -07:00
Gregor Zeitlinger 0e218de455
Remove reflection from builder (#11673) 2024-06-27 07:38:54 +00:00
Gregor Zeitlinger 47ebb94253
re-use logic for http client configuration (#11620)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2024-06-21 16:58:41 -07:00
Lauri Tulmin de30e3120a
Add http/2 tests for jdk http client (#11506) 2024-06-01 11:20:45 +03:00
Lauri Tulmin 7a06507f80
Allow library instrumentations to override span name (#11355)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2024-05-17 12:10:32 +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 a2d4148067
Remove http stable semconv tests (#10087) 2023-12-21 08:30:26 -08: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 280c1ea4c1
Enable stable HTTP semconv by default (#9925) 2023-11-28 10:43:51 -08: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
Matthieu MOREL 9a1c178d58
PeerService Resolver (#9061)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
Co-authored-by: jason plumb <75337021+breedx-splk@users.noreply.github.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-10-12 07:52:05 -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 b9e459da07
Test http client stable semconv (#9178) 2023-08-13 10:22:04 -07:00
Trask Stalnaker 67f91b8833
Update network.protocol.version 2.0 -> 2 and 3.0 -> 3 (#9145) 2023-08-13 10:01:47 -07:00
Mateusz Rzeszutek d81630331b
Make `HttpClientAttributesGetter` extend `NetClientAttributesGetter` (#9015) 2023-07-31 11:09:09 -07:00
Mateusz Rzeszutek cabf0dfdf4
Refactor setKnownMethods() in HTTP instrumentations to avoid nullable… (#8994) 2023-07-23 20:03:14 -07:00
Mateusz Rzeszutek 6e573289ae
Replace NetAttributes with SemanticAttributes (#8992) 2023-07-21 11:27:54 +02:00
Mateusz Rzeszutek 59e2da5aa3
Extract HTTP client experimental metrics to a separate class (#8769) 2023-07-18 08:34:39 -07:00
Mateusz Rzeszutek cc8160cffb
Support the `http.request.method_original` attribute (#8779) 2023-07-17 09:41:41 +00:00
Mateusz Rzeszutek cde2e70148
Implement new stable server semantic conventions (#8663) 2023-06-13 11:07:59 +02: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 e3944a53a5
Make net.transport an optional attribute (#8279) 2023-04-20 08:14:03 -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
Lauri Tulmin 08236a710f
Add library instrumentation for java http client (#8138)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/8069
The javaagent instrumentation also supports propagating context into
[BodyHandler](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.BodyHandler.html)
implemented in
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/java-http-client/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpclient/BodyHandlerWrapper.java
I think the initial idea behind it was that this allowed propagating
context into callbacks. Because this didn't work for
`connectionErrorUnopenedPortWithCallback` test later we also added
wrapping completable future to take care of propagating context into
callbacks. Should I also implement context propagation for `BodyHandler`
in library instrumentation or should I just delete it? I guess it could
come handy if someone builds a custom `BodyHandler` and wants to emit
spans from there, though this doesn't feel too likely. I'd like deleting
it more.

---------

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-04-03 13:08:29 -07:00
Lauri Tulmin 8deaaaedbf
Avoid duplicate instrumentation in jdk http client sendAsyncMethod (#8127)
There are 2 `sendAsync` methods
https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html#sendAsync(java.net.http.HttpRequest,java.net.http.HttpResponse.BodyHandler)
and one of them calls the other.
2023-03-25 13:08:40 +02:00
jason plumb db6b764421
More HTTP testing refactor prework (#7630)
This is another follow-up from #7616. This makes the test options class
immutable and uses `@AutoValue` and `@AutoValue.Builder`. As a result, a
bunch of the configuration/setup code for these said options now flings
around a builder instance. This isn't great, but I think it's an
incremental improvement that can be seen in the `@BeforeAll
AbstractHttpClientTest.setupOptions()` method, where the immutable
options are (finally) instantiated.
2023-01-23 09:42:32 -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
jason plumb c5e384fe9f
Http testing refactor prework (#7623)
As part of discussions #7616, the idea of trying to do a more piecemeal
approach came up. A reasonable ask.

This is the first step in refactoring the http client tests. It factors
out the `HttpClientResult` inner class of the `AbstractHttpClientTest`
so that this can be reused by new test framework later. It also factors
the relevant abstract methods in the abstract class to a new type
adapter, which will also be reused.

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2023-01-20 18:20:42 +00:00
Mateusz Rzeszutek 40667ce719
Fix inconsistent handling of net.peer.port in HTTP instrumentations (#7618)
Resolves #4329
2023-01-20 09:57:46 +01:00
Mateusz Rzeszutek 95ec4a8c1f
HTTP semconv: filter out default peer/host ports (#7258)
After a loooong break, the next part of the HTTP semconv implementation:
filtering out default HTTP ports, client and server.

>  [5]: If not default (80 for http scheme, 443 for https).


https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#http-client
2022-11-22 17:14:20 +00:00
Mateusz Rzeszutek 77035fc88c
Extract `net.peer.{name,port}` on start for CLIENT spans (#6828)
The [HTTP
spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#http-client)
says these two attributes must be provided at span creation time - I
think it makes sense to extend it over to all `net`-related
instrumentations, cause these are supposed to be the logical peer
name/port, which are supposed to be known before the connection is
started/exchange is made.
2022-10-10 16:00:19 -07: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