Commit Graph

450 Commits

Author SHA1 Message Date
Mateusz Rzeszutek 4a98dae431
Add builders for setting optional attributes on HTTP extractors (#5347)
* Add builders for setting optional attributes on HTTP extractors

* errorprone

* fix compilation failure
2022-03-08 17:21:14 +01:00
Mateusz Rzeszutek 4ef6d165a9
Disable the messaging receive span telemetry by default (#5500)
* Disable the messaging receive span telemetry by default

* fix spring-kafka tests

* remove no longer needed link from the kafka-clients library instrumentation

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-03-07 22:30:40 -08:00
Trask Stalnaker 8d18e463ea
Add markdown link check (#5449)
* Add markdown link check

* Fix links

* update workflows

* move comment
2022-02-28 11:30:16 -08:00
Trask Stalnaker 0a6b87eb69
Remove server span peer name (#5404)
* Fix server -> client reference

* Remove server span peer name
2022-02-27 11:06:20 -08:00
Trask Stalnaker 02a4fd41c2
Fix regression in spring-scheduling span name (#5436) 2022-02-24 12:27:43 -08:00
Trask Stalnaker d7725d248b
Fix server -> client reference (#5396) 2022-02-19 11:49:00 -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
Mateusz Rzeszutek 27ed47ccda
Split out CodeAttributesGetter (#5342) 2022-02-17 16:47:18 -08:00
Lauri Tulmin 9b9fe6a8b3
Setting bean class name overwrites bean class (#5387) 2022-02-17 11:02:24 +02:00
Lauri Tulmin 53359f09ea
Use repository interface name in spring data operation name (#5352)
* Use repository interface name in spring data operation name

* Update instrumentation/spring/spring-data-1.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/data/SpringDataInstrumentationModule.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* spotless

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2022-02-16 12:04:42 +02:00
Lauri Tulmin c7f9715f34
Wait for kafka to start (#5341) 2022-02-10 09:55:49 -08:00
Mateusz Rzeszutek 551418c283
Refactor AttributesExtractor so that it extracts route from Context (#5288)
* Refactor AttributesExtractor so that it extracts route from Context

* typo

* fix tests

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpRouteHolder.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* fix all AttributesExtractors

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-02-08 10:38:41 +01:00
Trask Stalnaker a0f3ad7279
Add code attributes to spring-scheduling spans (#5306) 2022-02-07 17:31:11 -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 3bee90a69b
Use BatchSpanProcessor (#5275) 2022-01-31 09:14:03 -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 16335a0c47
Use HttpRouteHolder in spring-webflux instrumentation (#5239) 2022-01-28 10:07:19 +01:00
Mateusz Rzeszutek edc185b133
Rename ServerSpanNaming to HttpRouteHolder (#5211)
* Rename ServerSpanNaming to HttpRouteHolder

* HttpRouteBiGetter
2022-01-25 09:44:15 -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
jason plumb fe8a132ee9
Factor out NetServerAttributesGetter (#5194)
* factor out NetServerAttributesGetter and favor composition over inheritance.

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesGetter.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* errorprone and spotless

* spotless

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2022-01-21 17:01:30 -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
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
Trask Stalnaker d8a392210a
Remove unnecessary destroyMethod (#5179) 2022-01-20 11:39:34 +02:00
Christian Frommeyer d017d5f18a
SdkTracerProvider auto closed as separate Context Bean (#5124) (#5125) 2022-01-19 20:48:49 -08:00
Anuraag Agrawal 52394a2ff9
Remove deprecated tracer API (#5175)
* Remove deprecated tracer API

* Groovy too
2022-01-19 09:52:51 -08:00
Lauri Tulmin f6c520a062
Hopefully fix flaky spring-rmi test (#5172) 2022-01-19 11:28:24 +02:00
Mateusz Rzeszutek 4f29770f73
Remove old TraceUtils and use InstrumentationTestRunner#run*Span() (almost) everywhere (#5160)
* Remove old TraceUtils and use InstrumentationTestRunner#run*Span() (almost) everywhere

* Fix HTTP server tests

* Fix compilation failure

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-18 13:42:53 -08:00
Anuraag Agrawal bdd82a899e
Parameterize VirtualField field type (#5165)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-18 13:42:44 -08:00
Mateusz Rzeszutek 69fc3df19a
Try to make Spring RMI tests less flaky (hopefully) (#5164) 2022-01-18 10:58:45 -08:00
Anuraag Agrawal b7a95857c7
Fix some java lint warnings (#5120)
* Convert InstrumentationTestRunner from interface to abstract class

* Foo

* Commit

* Revert unintended
2022-01-17 10:26:03 -08:00
Samudraneel Dasgupta 3b0c49094d
Spring RMI instrumentation (#5033)
* Spring RMI instrumentation

* Change the order of import statements

* remove extra separation in import statements

* stylistic changes

* Fix groovy rule violations

* Formatting changes in groovy file

* Spotless fixes and muzzle check version change

* Fixed minimum version in filenames and fixed muzzle check

* single InstrumentationModule and added context propagation test

* Merged singletons, use random port in test and add stricter matchers.

* Remove unused import
2022-01-14 13:56:40 -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
Nikita Salnikov-Tarnovski 1a9c633b4b
Rename some packages, move some classes (#5043)
* Rename some packages, move some classes
2022-01-09 13:26:51 +02:00
Nikita Salnikov-Tarnovski 25550e0a63
Stop using deprecated constructor (#5040)
* Stop using deprecated constructor

* Try to fix the build
2022-01-07 11:47:54 -08:00
Anuraag Agrawal f6bcd76219
Update errorprone (#5016)
* Update errorprone

* gwt

* Remove unnecessary final

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-06 14:21:56 -08:00
Lauri Tulmin 175d1bfdcb
Create producer span from spring integration instrumentation (#4932)
* Add an option to create producer span from spring integration instrumentation

* Update instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* add null check

* add doc

* Update instrumentation/spring/README.md

Co-authored-by: Fabrizio Ferri-Benedetti <fferribenedetti@splunk.com>

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
Co-authored-by: Fabrizio Ferri-Benedetti <fferribenedetti@splunk.com>
2022-01-05 13:00:22 -08:00
Fabrizio Ferri-Benedetti 4d7a5d5062
Add settings docs for instrumentations (#4981)
* First commit

* Add other instrumentation docs

* Peer edits

* Update instrumentation/kafka/kafka-clients/README.md

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>

* Update instrumentation/methods/README.md

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/netty/README.md

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/reactor/reactor-netty/README.md

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/servlet/README.md

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Fixes

* Update instrumentation/couchbase/README.md

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/rocketmq-client-4.8/README.md

Well spotted!

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/spring/README.md

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2022-01-03 10:24:48 -08:00
Trask Stalnaker d0fb7d5c83
Fix spring-ws muzzle (#4970) 2021-12-22 14:57:08 -08:00
Trask Stalnaker 6884d66c09
Reduce top level instrumentation directories (#4965)
* akka

* dropwizard

* kafka

* reactor

* vertx
2021-12-22 10:16:13 -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
Lauri Tulmin 0dbc1f2e1f
Add startup check to all rabitmq container usages (#4893) 2021-12-13 17:28:52 -08:00
Mateusz Rzeszutek 0bab0c2aa3
Move `ServletContextPath` to `servlet-common:bootstrap` (#4824)
* Move ServletContextPath to servlet-common:bootstrap

* fix tests

* Simplify ServletContextPath calls in restlet instrumentation
2021-12-08 15:59:31 +01:00
Zane XiaoYe cd863f6726
update the documentation (#4834)
the `filter` method does not compile in this example, use `filters` instead of `filter`.
2021-12-07 20:40:30 -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
Trask Stalnaker 31fddb7afd
Propagate Context instead of SpanContext (#4806)
* Propagate Context instead of SpanContext

* Update spring-kafka

* Fix nesting

* Comment
2021-12-06 09:31:53 -08: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
Trask Stalnaker ce4cef76f9
Clean up groovy assertions (#4805) 2021-12-05 23:23:58 -08:00
Lauri Tulmin 7c387853a0
Fix flaky spring batch test (#4801) 2021-12-06 08:25:03 +02:00
Mateusz Rzeszutek f948ef8051
Use containerIpAddress instead of hard-coded 127.0.0.1 in rabbit tests (#4745)
* Use containerIpAddress instead of hard-coded 127.0.0.1 in rabbit tests

* Fix a situation where testcontainers returns 'localhost' instead of IP

* Fix a situation where testcontainers returns 'localhost' instead of IP

* Don't use the getContainerIpAddress() method, it'll be deprecated anyways
2021-11-30 15:25:23 -08:00
Trask Stalnaker ea7588cd15
Update references to master branch (#4706) 2021-11-24 13:11:21 -08:00
Lauri Tulmin 903926904d
Fix spring webmvc latest dep test (#4687)
* Fix spring webmvc latest dep test

* review comments

* remove latest dep version restriction
2021-11-24 09:20:50 -08:00
Nikita Salnikov-Tarnovski 821a4b870b
Drop instrumentation-api-caching module and move weak cache implementation to instrumentation-api (#4667)
* Drop instrumentation-api-caching module and move weak cache implementation to instrumentation-api

* Some test fixes

* Some cleanup

* Temporary workaround for using weak values in FutureListenerWrappers

* Spotless

* Update ClassNames and SpanNames

* Compilation and comment

* Add bounded cache and clean interface

* Polish

* Add comment

* Vendor ConcurrentLinkedHashMap in

* Let errorprone ignore vendored CLHM for now

* Keep license in java files too

* Convert Netty wrapper cache to VirtualField

* Work around lambda instrumentation failure

Ideally we would ignore instrumenting helper classes...

* Revert "Work around lambda instrumentation failure"

This reverts commit 6d63815b44.

* Revert "Convert Netty wrapper cache to VirtualField"

This reverts commit dac1522a3f.

* Handle cleared weak values

* Fix comment

* Delete instrumentation-api-caching

* Copy in weak-lock-free

* Remove caffeine remnants

* Fix checkstyle

* Rename BoundedCache to MapBackedCached

* Remove duplicate LICENSE

* Remove outdated comment

* Sync with SDK copy of weaklockfree

* Enable checkstyle:off comment

* Re-generate license report

* Move NOTICE file to package-info.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-11-24 09:05:12 -08:00
Trask Stalnaker 2ddd01f304
Temporary fix for test latest deps (#4682) 2021-11-21 14:44:59 -08:00
Trask Stalnaker 6c98ba6b2b
Fix spring-kafka latest dep tests (#4676) 2021-11-19 13:12:18 -08:00
Anuraag Agrawal bcae1b11d3
Remove gRPC dependency for export (#4674) 2021-11-19 11:21:34 -08:00
Trask Stalnaker e6a9a6fd47
Fix spring-integration context leak (#4673) 2021-11-19 10:22:42 -08:00
Lauri Tulmin 3458afb8a4
Suppress muzzle warning from spring integration instrumentation (#4656) 2021-11-17 17:31:40 +02: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
Trask Stalnaker 1cddc96c8d
Spring Integration interceptor ordering (#4602) 2021-11-08 21:59:44 +02:00
Trask Stalnaker 8b15b483b8
Update spring-integration instrumentation name (#4601) 2021-11-08 08:47:09 -08:00
Mateusz Rzeszutek 270c4b4e12
Migrate Spring Webflux HTTP client instrumentation to Instrumenter API (#4517)
* Migrate Spring Webflux HTTP client instrumentation to Instrumenter API

* Update instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxHttpAttributesExtractor.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-10-27 12:52:02 -07:00
Nikita Salnikov-Tarnovski 8ea59f0846
Rename all InjectAdapters to Setters (#4489)
* Rename all InjectAdapters to Setters

* Errorprone fixes

* Make setter public
2021-10-25 12:36:59 -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
Lauri Tulmin 9b8ab5eeec
Migrate to spock 2 (#4458)
* Migrate to spock 2

* Fix smoke test suites

* address review comments

* review comment

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-10-22 08:40:58 -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
Osher Vaknin 7998c842db
Netty server instrumentation now captures http.scheme (#4446)
* Netty server instrumentation now captures http.scheme

* Fixed Spring Netty related tests

* Fixed Spring Netty related tests
2021-10-21 10:39:00 -07:00
jason plumb a50c13382f
Don't report 400 level as error for SERVER spans (#4403)
* don't report 400 level as error for server spans

* fix HttpServerTest base class

* fix JspInstrumentationForward test

* split HttpStatusConverter into client and server implementations, and create two HttpSpanStatusExtractor.create methods, one for server and one for client.

* rebase

* fix test

* spotless

* fix test

* remove unused

* use strongly typed attributes converters and rename to overloaded create()

* fix tests

* remove redundant assert

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-10-20 13:39:35 -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 7f44ebf2c3
Fix testLatestDeps (#4402)
* Fix testLatestDeps

* Fix play-2.6 testLatestDeps too
2021-10-16 13:36:34 -07:00
Mateusz Rzeszutek 2904578875
Test HTTP headers capturing on Netty-based server frameworks (#4395)
* Test HTTP headers capturing on Netty-based server frameworks

* fix vertx circuit breaker tests

* fix play async tests
2021-10-15 12:30:24 -07:00
Nikita Salnikov-Tarnovski efddb72cef
Convert AttributesExtractor to interface (#4363) 2021-10-14 08:36:47 +03:00
Mateusz Rzeszutek 25bfb49b80
Migrate Netty 4.x server instrumentations to Instrumenter API (#4342)
* Migrate Netty 4.x server instrumentations to Instrumenter API

* fix vertx tests

* codenarc

* code review comments

* fix broken assertion

* Update instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/server/NettyServerInstrumenterFactory.java

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2021-10-13 15:32:24 +02: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 b371361bb9
Set server span name only when needed (#4331) 2021-10-08 13:05:20 -07:00
Lauri Tulmin 478f936d54
Retry strict context check failures (#4282) 2021-10-08 10:47:52 -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
Mateusz Rzeszutek 581a5e3980
Test captured HTTP headers - HTTP server tests, part 1 (#4320)
* Test captured HTTP headers - HTTP server tests, part 1

* Upgrade undertow in resteasy tests (Undertow 1.0 had a bug where it thrown NPE on getHeaders())
2021-10-07 13:41:48 -07:00
Mateusz Rzeszutek f80f4a9f63
Allow configuring captured HTTP headers in library instrumentations (#4309) 2021-10-06 13:32:39 +02: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 7791be24e0
Remove implementations of host() and userAgent() in HTTP extractors (#4299)
* Remove implementations of host() and userAgent() in HTTP extractors

* fix broken headers copying
2021-10-05 10:25:45 -07:00
Lauri Tulmin 0cfc71c3c6
Support kafka streams 3 (#4236)
* Support kafka streams 3

* make thread local wider so it would work on all kafka-streams versions

* Move classes used by multiple instrumentations into bootstrap module to ensure that everybody uses the same copy of them

* spotless

* allow project as muzzle extra dependency

* add comment

* fix merge
2021-10-05 09:43:00 -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
Trask Stalnaker dafc97f96e
Simplify gradle files (#4292) 2021-10-04 21:53:35 -07:00
Mateusz Rzeszutek 300e7dab7e
Move all Kafka library instrumenter parts to internal package (#4284) 2021-10-04 19:03:15 +02:00
Trask Stalnaker 506ae2b894
Flavor extractor (#4274) 2021-10-04 09:23:58 -07:00
Trask Stalnaker 92394ad9ae
Remove url from HttpServerAttributesExtractor (#4209)
* Remove url from HttpServerAttributesExtractor

* Remove UriBuilder

* Tracers too

* apache-camel

* Finatra

* jsp

* Ratpack

* Ratpack library

* Ratpack

* Spark

* Feedback

* Fix Undertow

* Vertx

* vertx-web

* play-2.4

* webflux

* jaxrs

* Spotless

* Update semantic-conventions.md

* Update smoke tests

* More realistic target

* Remove outdated doc

* Wording
2021-10-03 09:17:23 -07:00
Mateusz Rzeszutek 07ca690f8e
Convert Spring Web MVC library instrumentation to Instrumenter API (#4258)
* Convert Spring Web MVC library instrumentation to Instrumenter API

* Apply suggestions from code review

Co-authored-by: Lauri Tulmin <tulmin@gmail.com>

* improve the README a bit

* StatusCodeExtractor

Co-authored-by: Lauri Tulmin <tulmin@gmail.com>
2021-10-02 11:41:27 -07:00
Aleš Justin ff0bf0a8f3
Add support for Kafka consumer and producer interceptors. (#4065)
* Add support for Kafka consumer and producer interceptors, move common Kafka code to library module.

* Apply feedback

* Apply feedback, #3.

* Apply feedback, #4.

* Add producer / consumer wrappers.

* Move to kafka-clients-2.6.

* Apply feedback #5.

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-10-02 11:27:57 -07: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
HyunGook-Kim cf85fbb275
chore typo in gradle implementation package name (#4250)
change ```opentelemetry-exporters``` to ```opentelemetry-exporter```
2021-09-30 10:34:50 +09: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
Lauri Tulmin 559cdcbbee
Transform lambda classes (#4182)
* Transform lambda classes

* improve comment
2021-09-24 09:52:15 -07:00
Christian Frommeyer ae7ad4b7e8
Fix spring context reload issue (open-telemetry#3841) (#4051)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-09-24 15:59:48 +03:00
Mateusz Rzeszutek 085066edb3
Add some testcontainers dependencies to dependencyManagement dep set (#4185) 2021-09-22 14:53:45 -07:00
Lauri Tulmin de6c9087fc
Remove reference to bintray in spring doc (#4139) 2021-09-16 10:18:20 -07:00
Mateusz Rzeszutek 836491ef5f
Make CONSUMER receive span a parent of CONSUMER process spans in Kafka… (#4122)
* Make CONSUMER receive span a parent of CONSUMER process spans in Kafka instrumentations

* Fix kafka-streams tests

* fixed imports order
2021-09-15 10:39:56 -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 05d1a4a54f
Separate suppression strategies for CONSUMER receive/process spans (#4076)
* Separate suppression strategies for CONSUMER receive/process spans

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/SpanKeyExtractor.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* spotless

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-09-10 10:55:50 -07:00
Trask Stalnaker c13eb7932e
Update collector port (#4071) 2021-09-08 18:18:05 -07:00
Mateusz Rzeszutek e30b082259
Start a CONSUMER span for Kafka poll(); and refactor spring-kafka... (#4041)
* Start a separate CONSUMER receive span for each non-empty KafkaConsumer#poll() call

* One batch receive + one batch process span in spring-kafka

* Add CONSUMER receive spans to kafka-streams too

* codenarc

* code review comments
2021-09-08 13:12:58 -07:00
Mateusz Rzeszutek 4820ec4855
Add error parameter to EndTimeExtractor and AttributesExtractor#onEnd() (#3988) 2021-09-08 07:58:13 -07:00
Trask Stalnaker 400d99467a
Follow http.client_ip spec clarification (#4063) 2021-09-08 07:54:59 -07:00
jack-berg 4e221d6e4c
Transition spring batch 3.0 module to Instrumenter API (#4029)
* Convert spring-batch-3.0 step execution instrumentation to Instrumenter API

* Convert spring-batch-3.0 job execution instrumentation to Instrumenter API

* Convert spring-batch-3.0 chunk execution instrumentation to Instrumenter API

* Convert spring-batch-3.0 item instrumentation to Instrumenter API

* Fix rebase issue.

* Respond to PR feedback.

* Respond to PR comments.
2021-09-07 15:13:55 -07:00
Trask Stalnaker 65335962de
Remove capturing lambda (optimization) (#4014)
* Remove capturing lambda

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/servlet/ServerSpanNameSupplier.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/servlet/ServerSpanNameTwoArgSupplier.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/jsf/jsf-common/library/src/main/java/io/opentelemetry/instrumentation/jsf/JsfServerSpanNaming.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* checkstyle

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-08-30 20:26:00 -07:00
Mateusz Rzeszutek 01ea967d67
Use kafka transactions to make spring-kafka tests more stable (#4024)
* Use kafka transactions to make spring-kafka tests more stable

* manual acks

* another approach: batch error handler that immediately recovers

* another try

* yet another try

* do nothing error handler

* spotless
2021-08-30 15:04:16 -07:00
Trask Stalnaker 436aeaf99a
Another ClassValue optimization (#4013)
* Another ClassValue optimization

* Spotless
2021-08-30 09:02:59 -07:00
jack-berg 789c92d79e
Transition spring-scheduling-3.1 to instrumenter API (#3993) 2021-08-30 09:01:43 -07:00
jack-berg 0c5a67167a
Transition spring-data-1.8 module to instrumenter API (#3991) 2021-08-30 09:01:37 -07:00
Mateusz Rzeszutek 4567bc0c2f
Instrument spring-kafka batch message listeners (#3922)
* Instrument spring-kafka batch message listeners

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* fix compilation failure

* Suppress nested CONSUMER spans

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-08-27 08:02:37 -07:00
Mateusz Rzeszutek ab9c688e7a
Test nested CLIENT span suppression in library instrumentations (#3970) 2021-08-27 11:16:59 +02:00
Trask Stalnaker 38d5c39579
Remove invalid message header (#3958) 2021-08-26 08:53:21 -07:00
Trask Stalnaker 6f22d90aa6
Option to suppress controller and view spans (#3865)
* Add option to suppress controller and view spans

* Apply to all existing Instrumenters

* Introduce ExperimentalConfig

* Singleton?

* No need for lazy
2021-08-25 13:43:38 -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
Mateusz Rzeszutek 5c71d28ed7
Remove deprecated Config methods (#3908) 2021-08-23 16:44:54 -07:00
Lauri Tulmin 38c8f8940c
Move helper class to spring package so that loadClass can find it (#3718)
* Move helper class to spring package so that loadClass can find it

* spotless

* Add tests

* Add comments

* remove unneeded dependency

* comments
2021-08-20 12:31:25 -07:00
Trask Stalnaker 31f22eb4f7
Use valid Java identifiers for message keys (#3863) 2021-08-19 16:55:29 -07:00
Lauri Tulmin 7a705d861e
Move SpringRestTemplateTest (#3870) 2021-08-19 12:58:24 +03:00
Lauri Tulmin c74853274d
Remove Nullable from methods that return non-null value (#3843) 2021-08-14 09:29:23 -07:00
Lauri Tulmin 6ad277c659
Check scope for null before closing it (#3836) 2021-08-13 16:39:28 -07:00
Trask Stalnaker 84e9d188af
Update webflux to Instrumenter API (and improvements/simplifications) (#3798)
* Update Webflux to Instrumenter API

* Change webflux handler to match other handlers

* Further simplification

* Fix Mono failure tests

* Use extractors!

* Renames

* Fix comment

* Update instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/AdviceUtils.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-08-13 09:03:50 -07:00
Lauri Tulmin 8c89420753
Skip bad spring-rabbit version (#3829) 2021-08-12 08:57:28 -07:00
Trask Stalnaker da55d98a87
Simplify webflux mono handling (#3816) 2021-08-12 08:54:26 -07:00
Lauri Tulmin f4e6baf22d
Make spring webflux tests pass with strict context check (#3811)
* Make spring webflux tests pass with strict context check

* Add comment
2021-08-11 06:51:31 -07:00
Mateusz Rzeszutek 92a69c3309
Simplify shouldStart() check for SERVER & CONSUMER spans (#3771) 2021-08-10 21:00:34 -07:00
Lauri Tulmin 3257e18e02
Convert spring-ws-2.0 to instrumenter api (#3801) 2021-08-09 12:23:14 -07:00
Trask Stalnaker bb461e5274
Fix tests on windows (#3360) 2021-08-09 09:23:41 -07:00
Trask Stalnaker 842ab42136
Call shouldStart for Spring handler span (#3793)
* Call shouldStart for Spring handler span

* Update server span name even if shouldStart returns false
2021-08-09 09:22:43 -07:00
Anuraag Agrawal 8cbec715ff
Fill HTTP_CLIENT_IP in ServerInstrumenter (#3756) 2021-08-05 13:11:30 +09:00
Mateusz Rzeszutek ba4db4801f
Clean up concurrent advice utilities in javaagent-instrumentation-api (#3757)
* Clean up concurrent advice utilities in javaagent-instrumentation-api

* fix classloading tests
2021-08-03 09:17:19 -07:00
Mateusz Rzeszutek f960456240
Add tests that verify that Span.current() works in spring batch listeners (#3758) 2021-08-03 09:17:03 -07:00
Lauri Tulmin 77dc1ecf27
Fix warning in build scripts (#3739) 2021-08-02 19:37:35 +03:00
HaloFour b52fd39d8d
Port Spring Boot WithSpanAspect to Instrumenter API (#3607)
* Start porting WithSpanAspect to use Instrumenter API

* Some cleanup and refactoring

* Switch caching dependency to compile only

* Minor refactors, javadocs

* Fix instrumentation name

* Rename builder methods

* spotless

* Add request type to extract Method and WithSpan annotation, use method references

* Add comment about IntelliJ dependency workaround

* Make cache non-configurable, use AsyncOperationEndSupport directly

* Address PR comments

* Move to static factory method, method-keyed cache
2021-07-30 11:39:09 -07:00
Mateusz Rzeszutek cbd8bb29fd
Spring web instrumenter 2 (#3731)
* Refactor spring-web library instrumentation to Instrumenter API

* errorprone

* fix typo
2021-07-30 09:28:27 -07:00
Lauri Tulmin 0689f86ed3
Fix running tests from intellij (#3702) 2021-07-28 10:21:19 -07:00
Trask Stalnaker 91b302a7d2
Reduce overhead of unsampled requests (#3681)
* Optimize sampled out requests

* Comment
2021-07-27 17:00:00 -07:00
Lauri Tulmin ff5472a822
Limit number of concurrently running docker tests (#3664)
* Limit number of concurrently running docker tests

* rename heavy to testcontainers

* use shorter expression
2021-07-27 15:41:39 -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
Trask Stalnaker e2d23cd8c1
Fix bounds check (#3612)
* Fix bounds check

* Update instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/WithSpanAspectAttributeBinder.java

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
2021-07-20 09:29:45 +09:00
Anuraag Agrawal e0cb216610
Remove remaining usages of basic span asserts (#3616) 2021-07-19 10:09:44 -07:00
Trask Stalnaker 344e205720
Help out Intellij (#3595) 2021-07-16 15:55:30 +09:00
Anuraag Agrawal d3b62de8a5
Replace most uses of TraceUtils with testRunner runWithSpan. (#3582) 2021-07-15 10:30:34 -07:00
HaloFour 814239c8c0
Adds binding of attributes in methods annotated with @WithSpan (#3188)
* Add binding of span attributes for traced methods

* Spring Aspect support, memoization

* Test with attribute name from ParameterNameDiscoverer

* Refactorings, javadocs and tests

* Refactor out creating AttributeBinding to separate class

* Wrapped attribute bindings for array parameters

* Attribute binding for List and EnumSet

* Attribute binding for subclass of List with reflection helper class

* Fix test failures in JDK 8

* Attribute binding to Set<? extends Enum>

* Move attribute binding to instrumentation-annotation-support project

* Fix copypastaed missing imports in tests

* Simplify ParameterizedClass based on PR feedback and add javadocs

* Remove blank javadoc

* Switch to cache with weak keys for memoizing attribute bindings by method

* Remove binding support for EnumSet<?>

* Clean up javadoc

* Use SpanAttribute annotation from opentelemetry 1.4.0-SNAPSHOT

* Address some PR concerns

* Clean up

* Fix instrumentation dependency in Springboot

* Update documentation

* Switch javaagent dep to compileOnly per PR comment

* spotless

* Kick CI

* Rename annotation support module and packages

* Resolve SpanAttribute annotation at runtime with fallback for older OTel versions

* Remove unnecessary dependency

* Move reflection helper to annotation support module

* Remove unnecessary enum and fields from unit test
2021-07-14 13:32:07 -07:00
Mateusz Rzeszutek e5bbc392c6
Use 'Tasklet' for spans that are produced by custom Spring Batch asklets (#3528) 2021-07-13 08:41:31 +02:00
Anna Nosek e46ae82e94
Springboot propagators (#3506)
* set propagators in sdk builder

* add test for propagators

* introduce CompositeTextMapPropagator

* simplify composite TextMapPropagator creation, use SDK names for PropagationType

* Update instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfiguration.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* Update instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* replace enum with string, remove unnecessary noop propagator addition

* add warning and test for unsupported value

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-07-12 21:40:09 -07:00
Anuraag Agrawal f601863d12
Merge Java TraceUtils into extension and switch to Instrumenter API. (#3532)
* Merge Java TraceUtils into extension and switch to Instrumenter API.

* Woah
2021-07-10 13:21:12 +09: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 9e4da754c2
Use consistent logger field name (#3515) 2021-07-07 10:47:46 -07: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