Skip to content

Commit b68011a

Browse files
authored
Log debug messages giving info about OpenTelemetry related config settings (#4122)
* Log debug messages giving info about OpenTelemetry related config settings * changelog
1 parent 2fc1ed7 commit b68011a

File tree

4 files changed

+61
-22
lines changed

4 files changed

+61
-22
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- Can be set in `sentry.properties`, e.g. `ignored-errors=Some error,Another .*`
1010
- Can be set in environment variables, e.g. `SENTRY_IGNORED_ERRORS=Some error,Another .*`
1111
- For Spring Boot, it can be set in `application.properties`, e.g. `sentry.ignored-errors=Some error,Another .*`
12+
- Log OpenTelemetry related Sentry config ([#4122](https://github.com/getsentry/sentry-java/pull/4122))
1213

1314
### Fixes
1415

sentry/api/sentry.api

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4253,7 +4253,8 @@ public abstract interface class io/sentry/internal/viewhierarchy/ViewHierarchyEx
42534253

42544254
public final class io/sentry/opentelemetry/OpenTelemetryUtil {
42554255
public fun <init> ()V
4256-
public static fun applyIgnoredSpanOrigins (Lio/sentry/SentryOptions;Lio/sentry/util/LoadClass;)V
4256+
public static fun applyIgnoredSpanOrigins (Lio/sentry/SentryOptions;)V
4257+
public static fun updateOpenTelemetryModeIfAuto (Lio/sentry/SentryOptions;Lio/sentry/util/LoadClass;)V
42574258
}
42584259

42594260
public final class io/sentry/profilemeasurements/ProfileMeasurement : io/sentry/JsonSerializable, io/sentry/JsonUnknown {

sentry/src/main/java/io/sentry/Sentry.java

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -322,9 +322,9 @@ private static void init(final @NotNull SentryOptions options, final boolean glo
322322
final IScope rootIsolationScope = new Scope(options);
323323
rootScopes = new Scopes(rootScope, rootIsolationScope, globalScope, "Sentry.init");
324324

325+
initLogger(options);
325326
initForOpenTelemetryMaybe(options);
326327
getScopesStorage().set(rootScopes);
327-
328328
initConfigurations(options);
329329

330330
globalScope.bindClient(new SentryClient(options));
@@ -348,6 +348,19 @@ private static void init(final @NotNull SentryOptions options, final boolean glo
348348
finalizePreviousSession(options, ScopesAdapter.getInstance());
349349

350350
handleAppStartProfilingConfig(options, options.getExecutorService());
351+
352+
options
353+
.getLogger()
354+
.log(SentryLevel.DEBUG, "Using openTelemetryMode %s", options.getOpenTelemetryMode());
355+
options
356+
.getLogger()
357+
.log(
358+
SentryLevel.DEBUG,
359+
"Using span factory %s",
360+
options.getSpanFactory().getClass().getName());
361+
options
362+
.getLogger()
363+
.log(SentryLevel.DEBUG, "Using scopes storage %s", scopesStorage.getClass().getName());
351364
} else {
352365
options
353366
.getLogger()
@@ -359,6 +372,7 @@ private static void init(final @NotNull SentryOptions options, final boolean glo
359372
}
360373

361374
private static void initForOpenTelemetryMaybe(SentryOptions options) {
375+
OpenTelemetryUtil.updateOpenTelemetryModeIfAuto(options, new LoadClass());
362376
if (SentryOpenTelemetryMode.OFF == options.getOpenTelemetryMode()) {
363377
options.setSpanFactory(new DefaultSpanFactory());
364378
// } else {
@@ -367,7 +381,13 @@ private static void initForOpenTelemetryMaybe(SentryOptions options) {
367381
// NoOpLogger.getInstance()));
368382
}
369383
initScopesStorage(options);
370-
OpenTelemetryUtil.applyIgnoredSpanOrigins(options, new LoadClass());
384+
OpenTelemetryUtil.applyIgnoredSpanOrigins(options);
385+
}
386+
387+
private static void initLogger(final @NotNull SentryOptions options) {
388+
if (options.isDebug() && options.getLogger() instanceof NoOpLogger) {
389+
options.setLogger(new SystemOutLogger());
390+
}
371391
}
372392

373393
private static void initScopesStorage(SentryOptions options) {
@@ -505,16 +525,9 @@ private static boolean preInitConfigurations(final @NotNull SentryOptions option
505525

506526
@SuppressWarnings("FutureReturnValueIgnored")
507527
private static void initConfigurations(final @NotNull SentryOptions options) {
508-
ILogger logger = options.getLogger();
509-
510-
if (options.isDebug() && logger instanceof NoOpLogger) {
511-
options.setLogger(new SystemOutLogger());
512-
logger = options.getLogger();
513-
}
528+
final @NotNull ILogger logger = options.getLogger();
514529
logger.log(SentryLevel.INFO, "Initializing SDK with DSN: '%s'", options.getDsn());
515530

516-
OpenTelemetryUtil.applyIgnoredSpanOrigins(options, new LoadClass());
517-
518531
// TODO: read values from conf file, Build conf or system envs
519532
// eg release, distinctId, sentryClientName
520533

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.sentry.opentelemetry;
22

33
import io.sentry.NoOpLogger;
4+
import io.sentry.SentryLevel;
45
import io.sentry.SentryOpenTelemetryMode;
56
import io.sentry.SentryOptions;
67
import io.sentry.util.LoadClass;
@@ -15,37 +16,60 @@
1516
public final class OpenTelemetryUtil {
1617

1718
@ApiStatus.Internal
18-
public static void applyIgnoredSpanOrigins(
19-
final @NotNull SentryOptions options, final @NotNull LoadClass loadClass) {
19+
public static void applyIgnoredSpanOrigins(final @NotNull SentryOptions options) {
2020
if (Platform.isJvm()) {
21-
final @NotNull List<String> ignored = ignoredSpanOrigins(options, loadClass);
21+
final @NotNull List<String> ignored = ignoredSpanOrigins(options);
2222
for (String origin : ignored) {
2323
options.addIgnoredSpanOrigin(origin);
2424
}
2525
}
2626
}
2727

28-
private static @NotNull List<String> ignoredSpanOrigins(
28+
@ApiStatus.Internal
29+
public static void updateOpenTelemetryModeIfAuto(
2930
final @NotNull SentryOptions options, final @NotNull LoadClass loadClass) {
31+
if (!Platform.isJvm()) {
32+
return;
33+
}
34+
3035
final @NotNull SentryOpenTelemetryMode openTelemetryMode = options.getOpenTelemetryMode();
3136
if (SentryOpenTelemetryMode.AUTO.equals(openTelemetryMode)) {
3237
if (loadClass.isClassAvailable(
3338
"io.sentry.opentelemetry.agent.AgentMarker", NoOpLogger.getInstance())) {
34-
return SpanUtils.ignoredSpanOriginsForOpenTelemetry(SentryOpenTelemetryMode.AGENT);
39+
options
40+
.getLogger()
41+
.log(SentryLevel.DEBUG, "openTelemetryMode has been inferred from AUTO to AGENT");
42+
options.setOpenTelemetryMode(SentryOpenTelemetryMode.AGENT);
43+
return;
3544
}
3645
if (loadClass.isClassAvailable(
3746
"io.sentry.opentelemetry.agent.AgentlessMarker", NoOpLogger.getInstance())) {
38-
return SpanUtils.ignoredSpanOriginsForOpenTelemetry(SentryOpenTelemetryMode.AGENTLESS);
47+
options
48+
.getLogger()
49+
.log(SentryLevel.DEBUG, "openTelemetryMode has been inferred from AUTO to AGENTLESS");
50+
options.setOpenTelemetryMode(SentryOpenTelemetryMode.AGENTLESS);
51+
return;
3952
}
4053
if (loadClass.isClassAvailable(
4154
"io.sentry.opentelemetry.agent.AgentlessSpringMarker", NoOpLogger.getInstance())) {
42-
return SpanUtils.ignoredSpanOriginsForOpenTelemetry(
43-
SentryOpenTelemetryMode.AGENTLESS_SPRING);
55+
options
56+
.getLogger()
57+
.log(
58+
SentryLevel.DEBUG,
59+
"openTelemetryMode has been inferred from AUTO to AGENTLESS_SPRING");
60+
options.setOpenTelemetryMode(SentryOpenTelemetryMode.AGENTLESS_SPRING);
61+
return;
4462
}
45-
} else {
46-
return SpanUtils.ignoredSpanOriginsForOpenTelemetry(openTelemetryMode);
63+
}
64+
}
65+
66+
private static @NotNull List<String> ignoredSpanOrigins(final @NotNull SentryOptions options) {
67+
final @NotNull SentryOpenTelemetryMode openTelemetryMode = options.getOpenTelemetryMode();
68+
69+
if (SentryOpenTelemetryMode.OFF.equals(openTelemetryMode)) {
70+
return Collections.emptyList();
4771
}
4872

49-
return Collections.emptyList();
73+
return SpanUtils.ignoredSpanOriginsForOpenTelemetry(openTelemetryMode);
5074
}
5175
}

0 commit comments

Comments
 (0)