Skip to content

Commit 075e242

Browse files
authored
Merge b11af4d into 917b2e3
2 parents 917b2e3 + b11af4d commit 075e242

File tree

9 files changed

+85
-4
lines changed

9 files changed

+85
-4
lines changed

.craft.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ targets:
4545
maven:io.sentry:sentry-opentelemetry-agentcustomization:
4646
maven:io.sentry:sentry-opentelemetry-core:
4747
# maven:io.sentry:sentry-opentelemetry-agentless:
48+
# maven:io.sentry:sentry-opentelemetry-agentless-spring:
4849
maven:io.sentry:sentry-apollo:
4950
maven:io.sentry:sentry-jdbc:
5051
maven:io.sentry:sentry-graphql:

.github/ISSUE_TEMPLATE/bug_report_java.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ body:
1616
- sentry-kotlin-extensions
1717
- sentry-opentelemetry-agent
1818
- sentry-opentelemetry-agentless
19+
- sentry-opentelemetry-agentless-spring
1920
- sentry-opentelemetry-core
2021
- sentry-servlet
2122
- sentry-servlet-jakarta

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
### Features
66

7+
- Add `sentry-opentelemetry-agentless-spring` module (TODO)
8+
- This module can be added as a dependency when using Sentry with OpenTelemetry and Spring Boot but don't want to use our Agent. It takes care of configuring OpenTelemetry for use with Sentry.
9+
- You may want to set `OTEL_LOGS_EXPORTER=none;OTEL_METRICS_EXPORTER=none;OTEL_TRACES_EXPORTER=none` env vars to not have the log flooded with error messages regarding OpenTelemetry features we don't use.
10+
711
- Add `sentry-opentelemetry-agentless` module ([#3961](https://github.com/getsentry/sentry-java/pull/3961))
812
- This module can be added as a dependency when using Sentry with OpenTelemetry but don't want to use our Agent. It takes care of configuring OpenTelemetry for use with Sentry.
913
- To enable the auto configuration of it, please set `-Dotel.java.global-autoconfigure.enabled=true` on the `java` command, when starting your application.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# sentry-opentelemetry-agentless-spring
2+
3+
*NOTE: Our OpenTelemetry modules are still experimental. Any feedback is welcome.*
4+
5+
## How to use it
6+
7+
Add the latest `sentry-opentelemetry-agentless-spring` module as a dependency and add a `sentry.properties`
8+
configuration file to your project that could look like this:
9+
10+
```properties
11+
# NOTE: Replace the test DSN below with YOUR OWN DSN to see the events from this app in your Sentry project/dashboard
12+
dsn=https://[email protected]/5428563
13+
traces-sample-rate=1.0
14+
```
15+
16+
For more details on configuring Sentry via `sentry.properties` please see the
17+
[docs page](https://docs.sentry.io/platforms/java/configuration/).
18+
19+
As an alternative to the `SENTRY_PROPERTIES_FILE` environment variable you can provide individual
20+
settings as environment variables (e.g. `SENTRY_DSN=...`) or you may initialize `Sentry` inside
21+
your target application. If you do so, please make sure to apply OpenTelemetry specific options, e.g.
22+
like this:
23+
24+
```
25+
Sentry.init(
26+
options -> {
27+
options.setDsn("...");
28+
...
29+
OpenTelemetryUtil.applyOpenTelemetryOptions(options, false);
30+
}
31+
)
32+
```
33+
34+
## Getting rid of exporter error messages
35+
36+
In case you are using this module without needing to use any OpenTelemetry exporters you can add
37+
the following environment variables to turn off exporters and stop seeing error messages about
38+
servers not being reachable in the logs.
39+
40+
Example log message:
41+
```
42+
ERROR io.opentelemetry.exporter.internal.grpc.OkHttpGrpcExporter - Failed to export spans. The request could not be executed. Full error message: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:4317
43+
ERROR io.opentelemetry.exporter.internal.grpc.OkHttpGrpcExporter - Failed to export metrics. The request could not be executed. Full error message: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:4317
44+
```
45+
46+
### Traces
47+
48+
To turn off exporting of traces you can set `OTEL_TRACES_EXPORTER=none`
49+
see [OpenTelemetry GitHub](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/autoconfigure#otlp-exporter-span-metric-and-log-exporters)
50+
51+
### Metrics
52+
53+
To turn off exporting of metrics you can set `OTEL_METRICS_EXPORTER=none`
54+
see [OpenTelemetry GitHub](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/autoconfigure#otlp-exporter-span-metric-and-log-exporters)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
plugins {
2+
`java-library`
3+
}
4+
5+
configure<JavaPluginExtension> {
6+
sourceCompatibility = JavaVersion.VERSION_1_8
7+
targetCompatibility = JavaVersion.VERSION_1_8
8+
}
9+
10+
dependencies {
11+
api(projects.sentry)
12+
api(projects.sentryOpentelemetry.sentryOpentelemetryBootstrap)
13+
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentcustomization)
14+
api(Config.Libs.OpenTelemetry.otelSdk)
15+
api(Config.Libs.OpenTelemetry.otelSemconv)
16+
api(Config.Libs.OpenTelemetry.otelSemconvIncubating)
17+
api(Config.Libs.OpenTelemetry.otelExtensionAutoconfigure)
18+
api(Config.Libs.springBoot3StarterOpenTelemetry)
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package io.sentry.opentelemetry.agent;
2+
3+
public final class AgentlessSpringMarker {}

sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ dependencies {
5252
implementation(projects.sentryLogback)
5353
implementation(projects.sentryGraphql22)
5454
implementation(projects.sentryQuartz)
55-
implementation(Config.Libs.springBoot3StarterOpenTelemetry)
56-
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentless)
55+
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentlessSpring)
5756

5857
// database query tracing
5958
implementation(projects.sentryJdbc)

sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ dependencies {
5252
implementation(projects.sentryLogback)
5353
implementation(projects.sentryGraphql)
5454
implementation(projects.sentryQuartz)
55-
implementation(Config.Libs.springBoot3StarterOpenTelemetry)
56-
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentless)
55+
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentlessSpring)
5756

5857
// database query tracing
5958
implementation(projects.sentryJdbc)

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ include(
4949
"sentry-opentelemetry:sentry-opentelemetry-agentcustomization",
5050
"sentry-opentelemetry:sentry-opentelemetry-agent",
5151
"sentry-opentelemetry:sentry-opentelemetry-agentless",
52+
"sentry-opentelemetry:sentry-opentelemetry-agentless-spring",
5253
"sentry-quartz",
5354
"sentry-okhttp",
5455
"sentry-samples:sentry-samples-android",

0 commit comments

Comments
 (0)