Commit Graph

86 Commits

Author SHA1 Message Date
Lauri Tulmin b9e459da07
Test http client stable semconv (#9178) 2023-08-13 10:22:04 -07:00
Mateusz Rzeszutek d81630331b
Make `HttpClientAttributesGetter` extend `NetClientAttributesGetter` (#9015) 2023-07-31 11:09:09 -07: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 eeb6ffd6e3
Deprecate InetSocketAddressNetClientAttributesGetter and move its met… (#8591) 2023-05-31 08:30:56 +02:00
Mateusz Rzeszutek c10108bbe0
Enable HTTP client read timeout tests by default (#8530) 2023-05-19 10:24:49 -07:00
Mateusz Rzeszutek 8ba8082f44
Refactor resend/redirect tests in AbstractHttpClientTest so that they… (#8500) 2023-05-16 12:13:40 -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
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 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
jason plumb d9b25d34df
Guard against null HttpContext (#6792)
Resolves #6787

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-10-06 16:03:03 -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
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
Trask Stalnaker f1774cabe2
Update net semantic convention changes (#6268)
* New net conventions: option a

* Feedback + sock.family + sock.peer.name

* peer.service + tests

* server net attributes attempt 1

* server net attributes attempt 2

* Javadoc

* Revisions

* Apply to instrumentations

* Feedback

* One more default method

* Spotless

* Fix javadoc
2022-08-18 09:02:23 -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 5a152cd289
Deprecate uncompressed content length HTTP attributes (#6383) 2022-07-29 06:17:38 +02:00
Mateusz Rzeszutek 82b39b1012
Rename `newInstrumenter()` into `buildInstrumenter()` (#6363)
* Rename newInstrumenter() into buildInstrumenter()

* spotless
2022-07-25 12:02:46 -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 87b412fb40
Instrumentation API changes: OperationMetrics, OperationListener (#6016)
* Instrumentation API changes: OperationMetrics, OperationListener

* errorprone
2022-05-12 11:16:46 -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
Anuraag Agrawal 333e7bbd50
Migrate apache-httpclient-4.3 tests to Java. (#5774)
* Migrate apache-httpclient-4.3 tests to Java.

* Spot
2022-04-08 15:04:23 +09: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 dfaaa86623
Migrate ApacheHttpAsyncClient tests to Java (#5660) 2022-03-22 13:56:39 +09: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
jason plumb c5c0a2bcdf
NetClientAttributesAdapter - favor composition over inheritance (#5030)
* first pass at separating NetAttributesAdapter interface and make NetClientAttributesExtractor concrete

* rename the implementations extractor -> adapter

* hide constructor and make factory method

* rename to client and add javadoc

* spotless

* finish javadoc thought

* rebase

* renamed NetClientAttributesAdapter to NetClientAttributesGetter

* fix lettuce

* code review comments

* code review comments -- renaming for consistency

* adapter -> getter

* fix ratpack

* adapter -> getter
2022-01-20 10:51:13 -08:00
Lauri Tulmin b287c8d1d0
Enable read timeout test for some http clients (#4702)
* Enable read timeout test for some http clients

* remove unused import

* use separate client for read timeout request
2021-11-28 13:18:26 -08:00
Nikita Salnikov-Tarnovski e7b8cca107
Convert TextMapSetters and TextMapGetters to enums (#4522)
* Convert TextMapSetters to enums

* Convert TextMapGetters to enums
2021-11-08 22:01:40 +02:00
Lauri Tulmin bc7b125718
Fix IndexOutOfBounds in apache http clients (#4575)
* Fix IndexOutOfBounds in apache http clients

* aws test has an extra span now that http client instrumentation doesn't fail with execption
2021-11-03 09:36:41 -07:00
Martin d314d76fce
rename `newBuilder()` to `builder()` (#4475)
* rename `newBuilder()` to `builder()`

* rename `newBuilder()` to `builder()`
2021-10-22 20:50:43 -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
Trask Stalnaker 63a2383905
Split NetAttributesExtractor into NetClientAttributesExtractor and NetServerAttributesExtractor (#4287)
* Net Extractors

* Either request or response but not both

* Fix merge conflicts

* Separate by OnStart/OnEnd

* PeerServiceAttributes

* Fix test

* Restructure to client/server

* Fix merge conflict in main

* more

* peer.service

* Feedback

* peer.service is only for clients

* Fix merge conflict

* rename

* Armeria

* peer.service is only for clients

* rename

* WIP

* Sync Dubbo with Armeria

* More Dubbo and Armeria

* gRPC

* Revert some Dubbo changes

* more peer.service

* Fix test

* Fix merge

* Fixes
2021-10-07 15:40:15 -07:00
Nikita Salnikov-Tarnovski a48bd9de3f
Move PeerServiceAttributesExtractor from javaagent api to instrumentation api (#4235)
* Move PeerServiceAttributesExtractor from javaagent api to instrumentation api

* spotless
2021-10-06 12:42:55 -07:00
Mateusz Rzeszutek d3dbe415a1
Move HttpHeadersConfig methods back to instrumentation-api (#4298)
* Move HttpHeadersConfig methods back to instrumentation-api

* remove unnecessary method
2021-10-06 10:51:45 +02: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
Trask Stalnaker 9ea33edf08
Remove attrs from http client attributes extractor (#4210)
* Remove scheme/host/target from HttpClientAttributesExtractor

* And jaxrs-client

* Remove unused methods
2021-09-28 12:58:42 -07:00
Mateusz Rzeszutek a277a8b636
Separate HTTP client/server AttributesExtractors (#4195) 2021-09-24 10:06:23 -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
Anuraag Agrawal 8cbec715ff
Fill HTTP_CLIENT_IP in ServerInstrumenter (#3756) 2021-08-05 13:11:30 +09:00
Trask Stalnaker d305f3140b
Fix NPE in Apache HttpAsyncClient instrumentation (#3692)
* Fix NPE in Apache HttpAsyncClient instrumentation

* Fix Apache HttpClient host + absolute uri

* Add similar test for Apache HttpClient 5

* Better tests

* Sync with 4.0 and 4.3

* Fix

* sync

* Elasticsearch twist

* Remove so-called optimization path
2021-07-28 10:21:43 -07:00
Anuraag Agrawal 47be4a16b4
Convert HttpClientTest to JUnit (#3652)
* Migrate HttpClientTest to junit to allow both Java or spock tests.

* More

* Update

* Finish

* Cleanup

* Better stack

* Java 15

* Merge

* Fix name

* Cleanup

* ? extends

* Moar
2021-07-27 21:55:40 +09:00
Lauri Tulmin 437e568fee
Enable disable apache async http client tests (#3667) 2021-07-26 13:11:25 +09:00