Commit Graph

2350 Commits

Author SHA1 Message Date
Lauri Tulmin 278f797ae7
Add instrumentation for opentelemetry-extension-kotlin (#7341)
Hopefully resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7124
Our kotlin coroutine instrumentation relies on a shaded copy of
`opentelemetry-extension-kotlin`. This doesn't work well when
application also uses `opentelemetry-extension-kotlin`, because the
shaded and unshaded copy store opentelemery context under different key.
This pr attempts to fix this by instrumenting
`opentelemetry-extension-kotlin` provided by the application so that it
would delegate to the one shaded inside the agent.

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2022-12-05 21:06:04 -08:00
Mateusz Rzeszutek 17b3fdb04a
Make preparations for Spring Web & WebMVC 6 instrumentations (#7343)
Just moving things around, extracting parent dir for `spring-web` and
`spring-webmvc`
2022-12-01 13:08:32 +01:00
Trask Stalnaker bbcd3d1cb4
Update gwt rpc span from INTERNAL to SERVER (#7342)
Now that we are allowing/support nested SERVER spans.

cc @lmolkova
2022-11-30 11:29:00 -08:00
Trask Stalnaker 238042afca
Remove scala from dependency management (#7296)
Will close #7216 after this is merged and that PR is rebased.

I tested and it does bring a few more scala versions into Intellij
without this, but scala is an odd case.
2022-11-29 07:55:35 -08:00
Mateusz Rzeszutek 69938b3f79
Support Spring Kafka 3 (#7271)
Fixes #7265

I took a look at the new Observation API, and I think that it still
makes sense to continue using the interceptors to implement this
instrumentation: they implement the OTel spec (which includes way more
attributes than the default observation convention implemented in
Spring), and cooperate with the Kafka client instrumentation and link
the receive and process spans together. And it's quite a simple change
in one of our interceptors, instead of rewriting everything.

(Draft because Spring Boot 3 hasn't released yet, and it is required to
run the tests. If we're not in a hurry this PR can wait a bit for that)
2022-11-29 12:07:57 +02:00
Michal Vavřík 6207887479
OpenTelemetryDriver don't require DriverManager for underlying drivers (#7089)
closes: #7028

For reasons explained in the linked issue, it might be handy to register
drivers directly against `OpenTelemetryDriver` rather than against
`DriverManager`. I decided to also go with static registry as drivers
are often instantiated connect pools (like Agroal) and it could be
difficult to use instance varibles. This PR adds additional `Driver`
collection where drivers can be registered. If driver is registered both
with `OpenTelemtryDriver` and `DriverManager`, drivers registered with
`OpenTelemetryDriver` are preferred.
2022-11-28 14:46:22 -08:00
Trask Stalnaker c336bf4cb1
Add test latest dep limit for struts2 (#7322) 2022-11-28 11:21:53 -08:00
Mateusz Rzeszutek 2b8f13830a
Limit spring boot version in grails latest dep tests (#7310)
Fixes #7309 
Fixes #7308
2022-11-25 15:14:09 +01:00
Mateusz Rzeszutek 6ea1c2414a
Limit Spring Batch versions and exclude newly released 5.0 (#7305) 2022-11-24 14:08:12 +01:00
Peter Findeisen c4ceaaa8d9
Issue 7212 - Allow multiple YAML configuration files for JMX rules (#7284)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-24 11:20:08 +01:00
Trask Stalnaker 16272753cc
Refactor UrlParser (#7294)
I thought I was going to need this for #7293, but it seems like still a
good change, removes a bit of duplication across getHost and getPort,
and could be useful in the future if we want logic to grab both host and
port in a "single pass"
2022-11-24 10:19:19 +01:00
Trask Stalnaker f9c2c80ef7
Avoid constructing URI (#7293)
Resolves #6568 (Reactor Netty optimization was already implemented in
#6600)
2022-11-24 10:14:10 +01:00
Aaron Ai 85b3644787
Remove redundant code in AbstractRocketMqClientTest (#7285) 2022-11-23 17:21:28 +01:00
Trask Stalnaker 88c79ee3f5
Temporarily limit latest dependency tests for spring-integration (#7278)
Created tracking issue for supporting version 6+: #7277

Resolves #7276
Resolves #7286
2022-11-22 20:55:26 -08:00
Trask Stalnaker 05471b053b
Webflux instrumentation fix (#7251)
When a webflux filter is added which throws an exception, the
instrumentation does not currently capture the `http.status_code`.

The fix is to move `WebClientTracingFilter` from the first to the last
filter in the chain, which I think(?) is the general strategy we've
taken for other client instrumentation, e.g. so that if a filter makes
another http call it won't be suppressed.

I don't love the test coverage I added, so let me know if you have any
better suggestions?

EDIT: btw, I did archaeology to confirm that behavior (adding to the
beginning of the chain) has been in place since the webflux
instrumentation was added originally
6f472a62a0 (diff-493ad89b5bde807c90387aa2bb67eb10d3bcef6b6a388bd31e11796a6d01ac38R36)
2022-11-22 15:09:22 -08: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
Lauri Tulmin 910d177e6c
Rocketmq 5: set context for async callback (#7238)
Run callbacks added to the `CompletableFuture` returned from `sendAsync`
with the context that was used when `sendAsync` was called.
Add test for capturing message headers.
2022-11-22 08:25:59 -08:00
Lauri Tulmin ae49d4f642
Fix rabbitmq latest deps test (#7262)
Resolves #7269

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-21 20:24:40 -08:00
jack-berg 94ba33e395
Use contrib AwsXrayPropagator (#7234)
Reflects move of `AwsXrayPropagator` to
[opentelemetry-java-contrib/aws-xray-propagator](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/aws-xray-propagator).
2022-11-21 11:31:17 -08:00
Lauri Tulmin 4379cfbeec
Limit latest dep spring data version (#7237)
Spring data 3 depends on spring 6
2022-11-18 11:44:36 -08:00
Trask Stalnaker 61ed2d14db
Update SDK version (#7223)
Resolves #7221 
Resolves #7222
2022-11-18 18:13:39 +00:00
Aaron Ai 2d7395c44b
Introduce markdown lint check (#7175)
Fixes #7129
2022-11-16 20:48:42 -08:00
Trask Stalnaker 51f0e17a63
Temporarily limit instrumentation to exclude Spring 6 (#7202)
Tracking issue to support Spring 6 #7203
2022-11-16 22:36:48 +00:00
Trask Stalnaker 0035f4b480
Update annotation instrumentation property name (#7196)
Missed this when copying over the instrumentation for the old
annotations to the instrumentation for the new annotations.
2022-11-16 09:33:55 +01:00
Peter Findeisen 4db65b6d1f
JMX Metric Insight (#6573)
Solving
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/6131
(JMX Support).

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-15 19:52:12 -08:00
jack-berg 97f036c3e5
Stop relocating :instrumentation:resources:library (#7136)
Per the discussion in the today's SIG and this
[comment](https://github.com/open-telemetry/opentelemetry-java/issues/4919#issuecomment-1305774636).

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-15 22:37:17 +00:00
jack-berg e39e5a68ed
Replace runtime.jvm.gc.time/runtime.jvm.gc.count metrics with process.runtime.jvm.gc.duration histogram (#6964)
Replaces #6362.

I've reduced the attributes to only record the gc name and the action
that was taken (i.e. I've removed the gc cause). If needed we can add
the cause later, but for now this should be sufficient to determine
total time spent in GC, and categorize time spent as stop the world or
parallel.
2022-11-15 14:01:36 -08:00
Lauri Tulmin 0cb8c75df7
Fix tests for mongodb 4.8 (#7183)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7170
2022-11-15 13:21:07 -08:00
jason plumb b09fb67e6b
Support cgroup v2 (#7167)
This resolves #6694.

We've been tracking the update to cgroup version support and want to get
ahead of the widespread usage. The surface of the existing
`ContainerResource` has not changed, but its internals have been
factored out to two "extractor" utilities -- one that understands cgroup
v1 and another for v2. v1 is attempted and, if successful, the result is
used. If v1 fails, then the `ContainerResource` will fall back to v2.

As mentioned in #6694, the approach taken in this PR is borrowed from
[this SO
post](https://stackoverflow.com/questions/68816329/how-to-get-docker-container-id-from-within-the-container-with-cgroup-v2)
combined with local experimentation on docker desktop on a Mac, which
already uses cgroup2 v2.
2022-11-15 12:12:11 -08:00
Lauri Tulmin 33b0b580f0
Fix latest deps tests for tomcat 10.1.2+ (#7184) 2022-11-15 11:09:47 -08:00
Aaron Ai b3cd45685d
Implement consumer part of rocketmq new client instrumentation (#7019)
Fixes #6764 , This PR is about the consumer part.

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-15 13:21:14 +01:00
Trask Stalnaker 87c7147a25
Remove wildcard + dependency (#7172)
Should help with maven central sporadic failure:

```
Could not determine the dependencies of task ':instrumentation:hibernate:hibernate-3.3:javaagent:test'.
> Could not resolve all task dependencies for configuration ':instrumentation:hibernate:hibernate-3.3:javaagent:testRuntimeClasspath'.
   > Could not resolve javassist:javassist:+.
```
2022-11-15 08:57:15 +01:00
Arik Sher deebf6d06c
Enhancement/add additionalServerExtractors (#7155)
fixes issue #7153

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-15 08:52:43 +01:00
Trask Stalnaker 4e36285b6c
Temporary fix for testLatestDeps failure (#7169)
Tracking issues to fix for real: #7170, #7171
2022-11-14 18:20:46 -08:00
Trask Stalnaker a9e7eb1264
Fix CI (#7138)
Resolves #7139
2022-11-11 13:42:19 -08:00
Lauri Tulmin 2107109d0d
Avoid NPE when DirectWithAttributesChannel class is not available (#7133)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7123
2022-11-11 10:46:34 -08:00
Trask Stalnaker 597b2a5321
More spotless (#7126) 2022-11-11 05:01:21 +00:00
Trask Stalnaker 5345c87680
End groovy files with newline (#7127) 2022-11-10 12:21:55 +01:00
sharp-pixel 31f4d12d31
Add support for OpenSearch 1.x and 2.x auto-instrumentation (#6998)
This PR adds support for OpenSearch 1.x and 2.x Java clients
auto-instrumentation.

This is made possible by OpenTelemetry specification v1.14.0 and
OpenTelemetry Java SDK v1.19.0.

Testing is being done using
org.opensearch:opensearch-testcontainers:2.0.0
(https://github.com/opensearch-project/opensearch-testcontainers)

Resolves #7007 

Signed-off-by: Cédric Pelvet <cedric.pelvet@gmail.com>

Signed-off-by: Cédric Pelvet <cedric.pelvet@gmail.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-11-09 20:44:14 -08:00
Trask Stalnaker d88d8cc24e
Update couchbase instrumentation shading (#7023)
for consistency with other instrumentations
2022-11-09 08:10:25 -08:00
Mateusz Rzeszutek c1eea368ac
Disable reactor 3.5 latest dep tests (#7119)
Continuation of
https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/7106
2022-11-09 13:49:42 +01:00
jack-berg 177d9cd531
Record memory usage after garbage collection (#6963)
Per conversation in #6362.
2022-11-08 22:44:48 +00:00
Trask Stalnaker d40377bbd7
Add muzzle limits to fix CI (#7106)
~I'll create a tracking issue to remove these and support new versions.~

Tracking issue added to support latest project reactor 3.5.0 and revert
these limits: #7107
2022-11-08 13:05:57 -08:00
Trask Stalnaker 11eef37a4c
Add toString on BridgedTraceFlags (#7086)
to improve the situation when logging/debugging
`Span.current().getSpanContext()`, currently:

> ImmutableSpanContext{traceId=115a2de6dffb17eaafd13a66d7aec660,
spanId=56af5c30e85bfb08,
traceFlags=**io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.BridgedTraceFlags@20ea6fa6**,
traceState=ArrayBasedTraceState{entries=[]}, remote=false, valid=true}
2022-11-08 08:45:09 -08:00
Johnny Lim 944ee84a3d
Fix typos (#7044)
This PR fixes typos.
2022-11-04 18:21:32 -07:00
jack-berg fce5a5f881
Add readme for runtime-metrics (#7012)
In the 10/27 java sig we discussed that it would be valuable to
enumerate the attributes reported for memory pool and gc metrics when
different gcs are used.

I've went ahead and added a readme for the runtime metrics which
includes detailed information on the attributes reported. Note that I
also have the same data for gc metrics added in #6964 and #6963, but
will wait to add until those PRs are merged.
2022-11-02 14:46:07 -07:00
Trask Stalnaker e5040f10e2
Update c3p0 muzzle config (#7017) 2022-11-01 11:25:29 -07:00
Aaron Ai 029ed3d98b
Implement producer part of RocketMQ new client instrumentation (#6884)
Fix #6764 . This pull request is about the producer part.
2022-10-27 19:25:22 -07:00
Lauri Tulmin b0012b083b
okhttp: run our interceptor before other interceptors (#6997)
Resolves
https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/6909
If our interceptor runs before other interceptors then other
interceptors replacing the request won't affect our interceptor.
2022-10-27 12:45:02 -07:00
Aaron Ai d266a604ed
Add docs for gRPC library instrumentation (#6981)
Fixes #6980
2022-10-27 15:31:28 +02:00