Commit Graph

550 Commits

Author SHA1 Message Date
Mateusz Rzeszutek d4c5164809
Add classLoaderMatcher() for Spring WebMVC instrumentations (#8463) 2023-05-11 10:10:51 +02: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
Trask Stalnaker b09bddd6e4
Update gradle to 8.1.1 (#8433) 2023-05-07 09:28:30 +03: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
sfriberg d1b7356ffe
AddingSpanAttributes annotation (#7787)
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2023-04-24 08:58:28 -07: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
Lauri Tulmin 1cd634b341
Replace deprecated method (#8230) 2023-04-06 14:43:36 -07:00
Lauri Tulmin 7c9cf7ab1b
Spring scheduling: run error handler with the same context as task (#8220) 2023-04-06 08:39:33 -07: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
Mateusz Rzeszutek 46e5219f19
Remove some Optional usages (#8190)
I applied [this
comment](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/8131#discussion_r1151076724)
to the whole codebase and removed some `Optional`s that were used in the
hot path
2023-04-03 09:13:59 +02:00
adamleantech d6271cccc7
Spring boot service name (#8006)
resolves #7998

---------

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
Co-authored-by: Lauri Tulmin <ltulmin@splunk.com>
2023-04-01 18:58:43 -07:00
Lauri Tulmin a9fa5aacea
Add testcontainersBuildService to spring kafka tests that don't have it (#8186) 2023-03-31 10:26:06 +02:00
Lauri Tulmin d8b0771929
Use the same kafka docker image in all kafka tests (#8187)
currently we use `confluentinc/cp-kafka:5.4.3` and
`confluentinc/cp-kafka:6.1.9`
2023-03-31 10:25:38 +02:00
Abhinandan Seshadri b23af1bcfe
Convert spring-core tests from groovy to java (#8166)
Related to #7195.

Converts spring core instrumentation tests from groovy to java.

---------

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2023-03-31 10:09:31 +02:00
Lauri Tulmin d24d7986ad
Make spring boot service name detector handle BOOT-INF/classes (#8101)
When spring boot application is packaged in one jar
`application.properties` and `application.yml` are under
`BOOT-INF/classes/`.
2023-03-28 12:32:40 +02:00
Abhinandan Seshadri aa2c2436c2
Convert spring-data tests from groovy to java (#8124)
Related to #7195.

Converts spring data instrumentation tests from groovy to java.
2023-03-27 13:58:15 +02:00
Lauri Tulmin bd3117b165
Fix flaky spring rabbit test (#8015)
https://ge.opentelemetry.io/scans/tests?search.buildOutcome=success&search.relativeStartTime=P28D&search.tags=CI&search.timeZoneId=Europe/Tallinn&tests.container=ContextPropagationTest&tests.sortField=FLAKY&tests.test=should%20propagate%20context%20to%20consumer%2C%20test%20headers:%20true&tests.unstableOnly=true
On jdk8 we can have 2 spans starting on the same millisecond.
2023-03-23 13:50:55 +02:00
Lauri Tulmin 4a87d6b0fd
Remove reference to Tracer bean from javadoc (#8104) 2023-03-22 12:59:51 +01:00
Lauri Tulmin 2cbfec8ac2
Fix spring boot 3 webmvc autoconfiguration (#8051)
Related to
https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/8028#issuecomment-1466496896
spring boot 3 uses `jakarta.servlet` so we need to use
`WebMvcFilterAutoConfigurationSpring6 ` instead of
`WebMvcFilterAutoConfiguration`
2023-03-14 12:39:58 +01:00
Jean Bisutti 2bd2bbcdee
Make the Spring autoconfiguration work with Spring Boot 3 (#8028)
This PR makes the Spring autoconfiguration work from Spring Boot 2.7.

[The way to declare autoconfiguration has indeed changed from Spring
Boot
2.7](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#building-jars-with-maven-shade-plugin-and-gradle-shadow-plugin).

A workaround is to use @EnableOpenTelemetry.
2023-03-13 17:15:19 +01:00
Lauri Tulmin a793c247e6
Remove duplicate -Xmx from kafka memory options (#8022) 2023-03-09 22:02:33 +02:00
Lauri Tulmin 67b6b6cc7c
Limit kafka memory usage (#8018) 2023-03-09 16:37:09 +02:00
Mateusz Rzeszutek 1649a90e29
Add protocol name&version to net attribute getters (#7994)
In preparation for
https://github.com/open-telemetry/opentelemetry-specification/pull/3272
2023-03-09 11:37:52 +00:00
Mateusz Rzeszutek 998e781009
Remove deprecated messaging.url attribute from messaging getter (#8008) 2023-03-09 11:41:51 +01: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
Lauri Tulmin a51535d08e
Test http client captured headers (#7993) 2023-03-07 20:05:29 +02:00
Lauri Tulmin c721852d5f
Convert spring-jms tests to test suites (#7945)
Part of
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7911
2023-03-01 11:24:04 -08:00
Lauri Tulmin 85c541ef92
Implement kafka client id and consumer id attributes (#7860)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7771
Adds `messaging.consumer_id` and `messaging.kafka.client_id` attributes
to kafka spans.
2023-02-21 07:31:28 -08:00
Mateusz Rzeszutek 12ea869855
Implement `messaging.kafka.*` attributes spec (part 1) (#7824)
Part 1 of #7771

It's a lot more than I initially expected it to be; I'll introduce the
clientId attribute in part 2
2023-02-16 13:22:17 -08:00
Mateusz Rzeszutek d9b0eee503
Remove deprecated instrumentation-api-semconv code (#7838) 2023-02-16 13:16:52 -08:00
Mateusz Rzeszutek 4fd52c5a7c
Encode version in library instrumentations' package names (#7764)
Another part of #932

In this PR I changed all the library instrumentation packages -- these
are breaking changes, so I figured the earlier we do this the less
painful it'll be to the users. I know that at least some of them are
actively used, so we'll need to spell this out in the release notes.

---------

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-02-14 23:25:59 +00:00
Mateusz Rzeszutek ea237e3a80
Update HTTP span name extractors (#7730)
Implements
https://github.com/open-telemetry/opentelemetry-specification/issues/2998

---------

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-02-14 07:40:05 -08:00
OpenTelemetry Bot f074b93110
Update the OpenTelemetry SDK version to 1.23.0 (#7800)
Update the OpenTelemetry SDK version to `1.23.0`.

---------

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-02-13 20:22:09 +00:00
Helen c61996f5a4
Change Spring Scheduling to not capture span for one-time jobs (only repeated jobs) (#7760)
We are seeing examples where Spring Scheduling INTERNAL spans are
created inside of an existing parent span, which creates unnecessary
noise.

And these spans don't necessary make sense as these are not "background
jobs" (since they occur inside of an existing span).

(see for example
https://github.com/microsoft/ApplicationInsights-Java/issues/2870)

This PR changes Spring Scheduling instrumentation to only instrumenting
repeating jobs, not one-time scheduled jobs (which corresponds to
ScheduledExecutorService behavior where context is not propagated to
runnable)

---------

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2023-02-13 12:05:06 -08:00
Lauri Tulmin 54d7241c05
Fix autoconfigure for spring boot 3 (#7784)
See
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7312
2023-02-13 10:45:23 +01:00
Lauri Tulmin c5649cc987
Document spring-rmi latest dep limit (#7774) 2023-02-09 17:07:24 +01:00
Trask Stalnaker 7993ef2433
Fix intellij warnings (#7734) 2023-02-06 09:21:30 +01:00
Mateusz Rzeszutek a9c065930d
Return interface instead of concrete implementation in instrumentatio… (#7658)
…n-api-semconv

We're already doing that for `SpanNameExtractor`, `OperationMetrics`,
`ContextCustomizer`, etc., so I figured we should do the same for
`AttributesExtractor` implementation. Also, none of the implementations
have any additional public surface - aside from the builder/factory
method users can just simply use the interface everywhere.
2023-01-31 13:21:28 +01: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
Andrei Chugunov 9f9d6fee95
webflux 5.0 groovy to java tests part 1 (#7625)
I decided splitting changes on different PRs due to there are a lot of
lines of code in tests here and it should simplify review process.

Another option is I can add additional commit to this PR with conversion
of other groovy files.
2023-01-23 08:59:19 +01: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
Alex Kats eaac709162
Update SQL span name for procedures (#7557)
This PR includes updates to the SQLSanitizer, DbClientSpanNameExtractor
and SqlStatementInfo to name spans according to procedure name for CALL
statements. The updates to the naming logic are in the SqlSanitizer and
table has been renamed to identifier as using the table variable for the
procedure name would not be idiomatic. SqlStatementInfo has been updated
so that the db.sql.table attribute is not included for procedures.
2023-01-19 11:01:36 -08:00