Skip to content

Commit

Permalink
Merge 7064e8f into 4cff453
Browse files Browse the repository at this point in the history
  • Loading branch information
adinauer authored Sep 23, 2024
2 parents 4cff453 + 7064e8f commit bd69a6f
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,18 @@ public static boolean isSentryRequest(
return true;
}

// TODO [POTEL] should check if enabled but multi init with different options makes testing hard
// atm
// if (scopes.getOptions().isEnableSpotlight()) {
final @Nullable String optionsSpotlightUrl = scopes.getOptions().getSpotlightConnectionUrl();
final @NotNull String spotlightUrl =
optionsSpotlightUrl != null ? optionsSpotlightUrl : "http://localhost:8969/stream";
if (scopes.getOptions().isEnableSpotlight()) {
final @Nullable String optionsSpotlightUrl = scopes.getOptions().getSpotlightConnectionUrl();
final @NotNull String spotlightUrl =
optionsSpotlightUrl != null ? optionsSpotlightUrl : "http://localhost:8969/stream";

if (containsSpotlightUrl(fullUrl, spotlightUrl)) {
return true;
}
if (containsSpotlightUrl(httpUrl, spotlightUrl)) {
return true;
if (containsSpotlightUrl(fullUrl, spotlightUrl)) {
return true;
}
if (containsSpotlightUrl(httpUrl, spotlightUrl)) {
return true;
}
}
// }

return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ class SentryAutoConfigurationTest {
"sentry.send-modules=false",
"sentry.ignored-checkins=slug1,slugB",
"sentry.enable-backpressure-handling=false",
"sentry.enable-spotlight=true",
"sentry.spotlight-connection-url=http://local.sentry.io:1234",
"sentry.force-init=true",
"sentry.cron.default-checkin-margin=10",
"sentry.cron.default-max-runtime=30",
Expand Down Expand Up @@ -211,6 +213,8 @@ class SentryAutoConfigurationTest {
assertThat(options.ignoredCheckIns).containsOnly("slug1", "slugB")
assertThat(options.isEnableBackpressureHandling).isEqualTo(false)
assertThat(options.isForceInit).isEqualTo(true)
assertThat(options.isEnableSpotlight).isEqualTo(true)
assertThat(options.spotlightConnectionUrl).isEqualTo("http://local.sentry.io:1234")
assertThat(options.cron).isNotNull
assertThat(options.cron!!.defaultCheckinMargin).isEqualTo(10L)
assertThat(options.cron!!.defaultMaxRuntime).isEqualTo(30L)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,8 @@ class SentryAutoConfigurationTest {
"sentry.send-modules=false",
"sentry.ignored-checkins=slug1,slugB",
"sentry.enable-backpressure-handling=false",
"sentry.enable-spotlight=true",
"sentry.spotlight-connection-url=http://local.sentry.io:1234",
"sentry.force-init=true",
"sentry.cron.default-checkin-margin=10",
"sentry.cron.default-max-runtime=30",
Expand Down Expand Up @@ -210,6 +212,8 @@ class SentryAutoConfigurationTest {
assertThat(options.ignoredCheckIns).containsOnly("slug1", "slugB")
assertThat(options.isEnableBackpressureHandling).isEqualTo(false)
assertThat(options.isForceInit).isEqualTo(true)
assertThat(options.isEnableSpotlight).isEqualTo(true)
assertThat(options.spotlightConnectionUrl).isEqualTo("http://local.sentry.io:1234")
assertThat(options.cron).isNotNull
assertThat(options.cron!!.defaultCheckinMargin).isEqualTo(10L)
assertThat(options.cron!!.defaultMaxRuntime).isEqualTo(30L)
Expand Down
4 changes: 4 additions & 0 deletions sentry/api/sentry.api
Original file line number Diff line number Diff line change
Expand Up @@ -463,12 +463,14 @@ public final class io/sentry/ExternalOptions {
public fun getRelease ()Ljava/lang/String;
public fun getSendClientReports ()Ljava/lang/Boolean;
public fun getServerName ()Ljava/lang/String;
public fun getSpotlightConnectionUrl ()Ljava/lang/String;
public fun getTags ()Ljava/util/Map;
public fun getTracePropagationTargets ()Ljava/util/List;
public fun getTracesSampleRate ()Ljava/lang/Double;
public fun getTracingOrigins ()Ljava/util/List;
public fun isEnableBackpressureHandling ()Ljava/lang/Boolean;
public fun isEnablePrettySerializationOutput ()Ljava/lang/Boolean;
public fun isEnableSpotlight ()Ljava/lang/Boolean;
public fun isEnabled ()Ljava/lang/Boolean;
public fun isForceInit ()Ljava/lang/Boolean;
public fun isSendDefaultPii ()Ljava/lang/Boolean;
Expand All @@ -480,6 +482,7 @@ public final class io/sentry/ExternalOptions {
public fun setEnableBackpressureHandling (Ljava/lang/Boolean;)V
public fun setEnableDeduplication (Ljava/lang/Boolean;)V
public fun setEnablePrettySerializationOutput (Ljava/lang/Boolean;)V
public fun setEnableSpotlight (Ljava/lang/Boolean;)V
public fun setEnableTracing (Ljava/lang/Boolean;)V
public fun setEnableUncaughtExceptionHandler (Ljava/lang/Boolean;)V
public fun setEnabled (Ljava/lang/Boolean;)V
Expand All @@ -497,6 +500,7 @@ public final class io/sentry/ExternalOptions {
public fun setSendDefaultPii (Ljava/lang/Boolean;)V
public fun setSendModules (Ljava/lang/Boolean;)V
public fun setServerName (Ljava/lang/String;)V
public fun setSpotlightConnectionUrl (Ljava/lang/String;)V
public fun setTag (Ljava/lang/String;Ljava/lang/String;)V
public fun setTracesSampleRate (Ljava/lang/Double;)V
}
Expand Down
25 changes: 25 additions & 0 deletions sentry/src/main/java/io/sentry/ExternalOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ public final class ExternalOptions {
private @NotNull Set<String> bundleIds = new CopyOnWriteArraySet<>();
private @Nullable Boolean enabled;
private @Nullable Boolean enablePrettySerializationOutput;
private @Nullable Boolean enableSpotlight;
private @Nullable String spotlightConnectionUrl;

private @Nullable List<String> ignoredCheckIns;

Expand Down Expand Up @@ -188,6 +190,9 @@ public final class ExternalOptions {
options.setCron(cron);
}

options.setEnableSpotlight(propertiesProvider.getBooleanProperty("enable-spotlight"));
options.setSpotlightConnectionUrl(propertiesProvider.getProperty("spotlight-connection-url"));

return options;
}

Expand Down Expand Up @@ -470,4 +475,24 @@ public void setForceInit(final @Nullable Boolean forceInit) {
public void setCron(final @Nullable SentryOptions.Cron cron) {
this.cron = cron;
}

@ApiStatus.Experimental
public void setEnableSpotlight(final @Nullable Boolean enableSpotlight) {
this.enableSpotlight = enableSpotlight;
}

@ApiStatus.Experimental
public @Nullable Boolean isEnableSpotlight() {
return enableSpotlight;
}

@ApiStatus.Experimental
public @Nullable String getSpotlightConnectionUrl() {
return spotlightConnectionUrl;
}

@ApiStatus.Experimental
public void setSpotlightConnectionUrl(final @Nullable String spotlightConnectionUrl) {
this.spotlightConnectionUrl = spotlightConnectionUrl;
}
}
8 changes: 8 additions & 0 deletions sentry/src/main/java/io/sentry/SentryOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -2763,6 +2763,14 @@ public void merge(final @NotNull ExternalOptions options) {
setSendDefaultPii(options.isSendDefaultPii());
}

if (options.isEnableSpotlight() != null) {
setEnableSpotlight(options.isEnableSpotlight());
}

if (options.getSpotlightConnectionUrl() != null) {
setSpotlightConnectionUrl(options.getSpotlightConnectionUrl());
}

if (options.getCron() != null) {
if (getCron() == null) {
setCron(options.getCron());
Expand Down
14 changes: 14 additions & 0 deletions sentry/src/test/java/io/sentry/ExternalOptionsTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,20 @@ class ExternalOptionsTest {
}
}

@Test
fun `creates options with enableSpotlight set to true`() {
withPropertiesFile("enable-spotlight=true") { options ->
assertTrue(options.isEnableSpotlight == true)
}
}

@Test
fun `creates options with spotlightConnectionUrl set`() {
withPropertiesFile("spotlight-connection-url=http://local.sentry.io:1234") { options ->
assertEquals("http://local.sentry.io:1234", options.spotlightConnectionUrl)
}
}

private fun withPropertiesFile(textLines: List<String> = emptyList(), logger: ILogger = mock(), fn: (ExternalOptions) -> Unit) {
// create a sentry.properties file in temporary folder
val temporaryFolder = TemporaryFolder()
Expand Down
14 changes: 14 additions & 0 deletions sentry/src/test/java/io/sentry/SentryOptionsTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,8 @@ class SentryOptionsTest {
defaultFailureIssueThreshold = 40L
defaultRecoveryThreshold = 50L
}
externalOptions.isEnableSpotlight = true
externalOptions.spotlightConnectionUrl = "http://local.sentry.io:1234"

val options = SentryOptions()

Expand Down Expand Up @@ -422,6 +424,8 @@ class SentryOptionsTest {
assertEquals("America/New_York", options.cron?.defaultTimezone)
assertTrue(options.isSendDefaultPii)
assertEquals(RequestSize.MEDIUM, options.maxRequestBodySize)
assertTrue(options.isEnableSpotlight)
assertEquals("http://local.sentry.io:1234", options.spotlightConnectionUrl)
}

@Test
Expand Down Expand Up @@ -575,6 +579,16 @@ class SentryOptionsTest {
assertTrue(SentryOptions().isEnableBackpressureHandling)
}

@Test
fun `when options are initialized, enableSpotlight is set to false by default`() {
assertFalse(SentryOptions().isEnableSpotlight)
}

@Test
fun `when options are initialized, spotlightConnectionUrl is not set by default`() {
assertNull(SentryOptions().spotlightConnectionUrl)
}

@Test
fun `when options are initialized, enableAppStartProfiling is set to false by default`() {
assertFalse(SentryOptions().isEnableAppStartProfiling)
Expand Down

0 comments on commit bd69a6f

Please sign in to comment.