From 0a41b97f83bafbd1d1d2487e78c3e0c4be17d88d Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Thu, 13 Aug 2026 05:53:43 +0200 Subject: [PATCH 1/3] feat(core): Remove Metrics enable flag Capture manual Metrics without an aggregate option and always create the configured batch processor. Keep legacy external and Android keys only for subsequent migration warnings. Co-Authored-By: Claude --- CHANGELOG.md | 1 + .../android/core/ManifestMetadataReader.java | 5 --- .../core/ManifestMetadataReaderTest.kt | 39 +++++-------------- sentry/api/sentry.api | 2 - .../src/main/java/io/sentry/SentryClient.java | 9 +---- .../main/java/io/sentry/SentryOptions.java | 25 ------------ .../java/io/sentry/metrics/MetricsApi.java | 9 ----- sentry/src/test/java/io/sentry/ScopesTest.kt | 14 ++++--- .../test/java/io/sentry/SentryClientTest.kt | 7 ++++ .../test/java/io/sentry/SentryOptionsTest.kt | 14 ------- 10 files changed, 28 insertions(+), 97 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7acf5cc301..040701cbb5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Features +- Remove the aggregate Sentry Metrics enable flag; `Sentry.metrics()` calls now capture Metrics by default ([#5953](https://github.com/getsentry/sentry-java/pull/5953)) - Remove the aggregate Sentry Logs enable flag; manual `Sentry.logger()` calls now capture Logs by default ([#5947](https://github.com/getsentry/sentry-java/pull/5947)) - Add an explicit Logs opt-in to Spring Boot logging auto-configuration ([#5946](https://github.com/getsentry/sentry-java/pull/5946)) - Add an explicit Logs opt-in to the Android Logcat integration ([#5945](https://github.com/getsentry/sentry-java/pull/5945)) diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java b/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java index 2aa10e98abc..38ee0c1d347 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java @@ -729,11 +729,6 @@ static void applyMetadata( options.setEnableLogcatLogs( readBool(metadata, logger, ENABLE_LOGCAT_LOGS, options.isEnableLogcatLogs())); - options - .getMetrics() - .setEnabled( - readBool(metadata, logger, ENABLE_METRICS, options.getMetrics().isEnabled())); - final @NotNull SentryFeedbackOptions feedbackOptions = options.getFeedbackOptions(); feedbackOptions.setNameRequired( readBool(metadata, logger, FEEDBACK_NAME_REQUIRED, feedbackOptions.isNameRequired())); diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt index 6a0b17cff70..c2dfa7d544a 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt @@ -11,6 +11,8 @@ import io.sentry.ProfileLifecycle import io.sentry.SentryLevel import io.sentry.SentryReplayOptions import io.sentry.TransactionOptions +import io.sentry.test.createSentryClientMock +import io.sentry.test.createTestScopes import kotlin.test.BeforeTest import kotlin.test.Test import kotlin.test.assertEquals @@ -20,6 +22,7 @@ import kotlin.test.assertNull import kotlin.test.assertTrue import org.junit.runner.RunWith import org.mockito.kotlin.any +import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.never @@ -2051,41 +2054,17 @@ class ManifestMetadataReaderTest { } @Test - fun `applyMetadata reads metrics enabled and keep default value if not found`() { - // Arrange - val context = fixture.getContext() - - // Act - ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider) - - // Assert - assertTrue(fixture.options.metrics.isEnabled) - } - - @Test - fun `applyMetadata reads metrics enabled to options`() { - // Arrange + fun `legacy metrics metadata does not disable capture`() { val bundle = bundleOf(ManifestMetadataReader.ENABLE_METRICS to false) val context = fixture.getContext(metaData = bundle) + val client = createSentryClientMock() - // Act ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider) + fixture.options.dsn = "https://key@sentry.io/proj" + val scopes = createTestScopes(fixture.options).also { it.bindClient(client) } + scopes.metrics().count("metric name") - // Assert - assertFalse(fixture.options.metrics.isEnabled) - } - - @Test - fun `applyMetadata reads metrics enabled to options when set to true`() { - // Arrange - val bundle = bundleOf(ManifestMetadataReader.ENABLE_METRICS to true) - val context = fixture.getContext(metaData = bundle) - - // Act - ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider) - - // Assert - assertTrue(fixture.options.metrics.isEnabled) + verify(client).captureMetric(any(), anyOrNull(), anyOrNull()) } @Test diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index 4f3980b9f7d..5041ecf13f8 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -3976,9 +3976,7 @@ public final class io/sentry/SentryOptions$Metrics { public fun ()V public fun getBeforeSend ()Lio/sentry/SentryOptions$Metrics$BeforeSendMetricCallback; public fun getMetricsBatchProcessorFactory ()Lio/sentry/metrics/IMetricsBatchProcessorFactory; - public fun isEnabled ()Z public fun setBeforeSend (Lio/sentry/SentryOptions$Metrics$BeforeSendMetricCallback;)V - public fun setEnabled (Z)V public fun setMetricsBatchProcessorFactory (Lio/sentry/metrics/IMetricsBatchProcessorFactory;)V } diff --git a/sentry/src/main/java/io/sentry/SentryClient.java b/sentry/src/main/java/io/sentry/SentryClient.java index 04ef439ba6b..b17abf3b17f 100644 --- a/sentry/src/main/java/io/sentry/SentryClient.java +++ b/sentry/src/main/java/io/sentry/SentryClient.java @@ -10,7 +10,6 @@ import io.sentry.hints.TransactionEnd; import io.sentry.logger.ILoggerBatchProcessor; import io.sentry.metrics.IMetricsBatchProcessor; -import io.sentry.metrics.NoOpMetricsBatchProcessor; import io.sentry.protocol.Contexts; import io.sentry.protocol.DebugMeta; import io.sentry.protocol.FeatureFlags; @@ -62,12 +61,8 @@ public SentryClient(final @NotNull SentryOptions options) { final RequestDetailsResolver requestDetailsResolver = new RequestDetailsResolver(options); transport = transportFactory.create(options, requestDetailsResolver.resolve()); loggerBatchProcessor = options.getLogs().getLoggerBatchProcessorFactory().create(options, this); - if (options.getMetrics().isEnabled()) { - metricsBatchProcessor = - options.getMetrics().getMetricsBatchProcessorFactory().create(options, this); - } else { - metricsBatchProcessor = NoOpMetricsBatchProcessor.getInstance(); - } + metricsBatchProcessor = + options.getMetrics().getMetricsBatchProcessorFactory().create(options, this); } private boolean shouldApplyScopeData( diff --git a/sentry/src/main/java/io/sentry/SentryOptions.java b/sentry/src/main/java/io/sentry/SentryOptions.java index aa136d176aa..5394c22e2d2 100644 --- a/sentry/src/main/java/io/sentry/SentryOptions.java +++ b/sentry/src/main/java/io/sentry/SentryOptions.java @@ -3748,10 +3748,6 @@ public void merge(final @NotNull ExternalOptions options) { } } - if (options.isEnableMetrics() != null) { - getMetrics().setEnabled(options.isEnableMetrics()); - } - if (options.getProfileSessionSampleRate() != null) { setProfileSessionSampleRate(options.getProfileSessionSampleRate()); } @@ -4023,9 +4019,6 @@ public interface BeforeSendLogCallback { public static final class Metrics { - /** Whether Sentry Metrics feature is enabled and metrics are sent to Sentry. */ - private boolean enable = true; - /** * This function is called with a metric key and tags and can return false to skip sending the * metric @@ -4035,24 +4028,6 @@ public static final class Metrics { private @NotNull IMetricsBatchProcessorFactory metricsBatchProcessorFactory = new DefaultMetricsBatchProcessorFactory(); - /** - * Whether Sentry Metrics feature is enabled and metrics are sent to Sentry. - * - * @return true if Sentry Metrics should be enabled - */ - public boolean isEnabled() { - return enable; - } - - /** - * Whether Sentry Metrics feature is enabled and metrics are sent to Sentry. - * - * @param enableMetrics true if Sentry Metrics should be enabled - */ - public void setEnabled(final boolean enableMetrics) { - this.enable = enableMetrics; - } - /** * Returns the BeforeSendMetric callback * diff --git a/sentry/src/main/java/io/sentry/metrics/MetricsApi.java b/sentry/src/main/java/io/sentry/metrics/MetricsApi.java index cebcad9735c..d70b4ab5c97 100644 --- a/sentry/src/main/java/io/sentry/metrics/MetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/MetricsApi.java @@ -118,15 +118,6 @@ private void captureMetrics( return; } - if (!options.getMetrics().isEnabled()) { - options - .getLogger() - .log( - SentryLevel.WARNING, - "Sentry Metrics is disabled and this 'metrics' call is a no-op."); - return; - } - if (name == null) { return; } diff --git a/sentry/src/test/java/io/sentry/ScopesTest.kt b/sentry/src/test/java/io/sentry/ScopesTest.kt index 9e44c9ae847..980e89353c6 100644 --- a/sentry/src/test/java/io/sentry/ScopesTest.kt +++ b/sentry/src/test/java/io/sentry/ScopesTest.kt @@ -3290,11 +3290,15 @@ class ScopesTest { } @Test - fun `when metrics is not enabled, do nothing`() { - val (sut, mockClient) = getEnabledScopes { it.metrics.isEnabled = false } + fun `legacy external metrics configuration does not disable capture`() { + val (sut, mockClient) = + getEnabledScopes { options -> + options.merge(ExternalOptions().also { it.isEnableMetrics = false }) + } sut.metrics().count("metric name") - verify(mockClient, never()).captureMetric(any(), anyOrNull(), anyOrNull()) + + verify(mockClient).captureMetric(any(), anyOrNull(), anyOrNull()) } @Test @@ -4226,7 +4230,7 @@ class ScopesTest { @Test fun `metric event has spanId from active span`() { - val (sut, mockClient) = getEnabledScopes { it.metrics.isEnabled = true } + val (sut, mockClient) = getEnabledScopes() val transaction = sut.startTransaction( @@ -4253,7 +4257,7 @@ class ScopesTest { @Test fun `metric event has spanId from propagation context when no active span`() { - val (sut, mockClient) = getEnabledScopes { it.metrics.isEnabled = true } + val (sut, mockClient) = getEnabledScopes() var propagationContext: PropagationContext? = null sut.configureScope { propagationContext = it.propagationContext } diff --git a/sentry/src/test/java/io/sentry/SentryClientTest.kt b/sentry/src/test/java/io/sentry/SentryClientTest.kt index 008597b428e..6376a216b98 100644 --- a/sentry/src/test/java/io/sentry/SentryClientTest.kt +++ b/sentry/src/test/java/io/sentry/SentryClientTest.kt @@ -153,6 +153,13 @@ class SentryClientTest { assertTrue(sut.isEnabled) } + @Test + fun `when client is created, metrics batch processor is created`() { + val sut = fixture.getSut() + + verify(fixture.metricsBatchProcessorFactory).create(fixture.sentryOptions, sut) + } + @Test fun `when dsn is an invalid string, client throws`() { fixture.sentryOptions.dsn = "invalid-dsn" diff --git a/sentry/src/test/java/io/sentry/SentryOptionsTest.kt b/sentry/src/test/java/io/sentry/SentryOptionsTest.kt index 17546c62136..d56cbeb41ac 100644 --- a/sentry/src/test/java/io/sentry/SentryOptionsTest.kt +++ b/sentry/src/test/java/io/sentry/SentryOptionsTest.kt @@ -485,7 +485,6 @@ class SentryOptionsTest { assertTrue(options.isEnableSpotlight) assertEquals("http://local.sentry.io:1234", options.spotlightConnectionUrl) assertTrue(options.isGlobalHubMode!!) - assertFalse(options.metrics.isEnabled) assertEquals(0.8, options.profileSessionSampleRate) assertEquals("/profiling-traces${File.separator}${hash}", options.profilingTracesDirPath) assertEquals(ProfileLifecycle.TRACE, options.profileLifecycle) @@ -499,14 +498,6 @@ class SentryOptionsTest { assertTrue(options.isEnableUncaughtExceptionHandler) } - @Test - fun `merging options when enableMetrics is not set preserves the default value`() { - val externalOptions = ExternalOptions() - val options = SentryOptions() - options.merge(externalOptions) - assertTrue(options.metrics.isEnabled) - } - @Test fun `merging options does not warn when legacy logs configuration is absent`() { val logger = mock() @@ -804,11 +795,6 @@ class SentryOptionsTest { assertFalse(SentryOptions().isEnableQueueTracing) } - @Test - fun `when options are initialized, metrics is enabled by default`() { - assertTrue(SentryOptions().metrics.isEnabled) - } - @Test fun `when options are initialized, enableSpotlight is set to false by default`() { assertFalse(SentryOptions().isEnableSpotlight) From 81e86e19fcb26fef3c71283e1b29d3cd9e8a4ec2 Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Wed, 30 Sep 2026 10:45:39 +0200 Subject: [PATCH 2/3] ref(core): Remove legacy Metrics warning inputs Remove obsolete external and Android manifest parsing retained only for migration warnings that will not ship in v9. Co-Authored-By: Claude --- .../android/core/ManifestMetadataReader.java | 2 -- .../core/ManifestMetadataReaderTest.kt | 17 ----------------- sentry/api/sentry.api | 2 -- .../main/java/io/sentry/ExternalOptions.java | 11 ----------- .../java/io/sentry/ExternalOptionsTest.kt | 19 ------------------- sentry/src/test/java/io/sentry/ScopesTest.kt | 12 ------------ .../test/java/io/sentry/SentryOptionsTest.kt | 1 - 7 files changed, 64 deletions(-) diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java b/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java index 438ad40501b..217f4937bf1 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java @@ -196,8 +196,6 @@ final class ManifestMetadataReader { static final String ENABLE_LOGCAT_LOGS = "io.sentry.logcat.logs.enabled"; - static final String ENABLE_METRICS = "io.sentry.metrics.enabled"; - static final String ENABLE_AUTO_TRACE_ID_GENERATION = "io.sentry.traces.enable-auto-id-generation"; diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt index 6d02c3c3132..4e64dc616b5 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt @@ -13,8 +13,6 @@ import io.sentry.ProfileLifecycle import io.sentry.SentryLevel import io.sentry.SentryReplayOptions import io.sentry.TransactionOptions -import io.sentry.test.createSentryClientMock -import io.sentry.test.createTestScopes import kotlin.test.AfterTest import kotlin.test.BeforeTest import kotlin.test.Test @@ -25,7 +23,6 @@ import kotlin.test.assertNull import kotlin.test.assertTrue import org.junit.runner.RunWith import org.mockito.kotlin.any -import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.never @@ -2227,20 +2224,6 @@ class ManifestMetadataReaderTest { assertThat(fixture.options.isEnableLogcatLogs).isFalse() } - @Test - fun `legacy metrics metadata does not disable capture`() { - val bundle = bundleOf(ManifestMetadataReader.ENABLE_METRICS to false) - val context = fixture.getContext(metaData = bundle) - val client = createSentryClientMock() - - ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider) - fixture.options.dsn = "https://key@sentry.io/proj" - val scopes = createTestScopes(fixture.options).also { it.bindClient(client) } - scopes.metrics().count("metric name") - - verify(client).captureMetric(any(), anyOrNull(), anyOrNull()) - } - @Test fun `applyMetadata reads feedback name required and keep default value if not found`() { // Arrange diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index 0a3e9d9350f..f5ac34d52d3 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -590,7 +590,6 @@ public final class io/sentry/ExternalOptions { public fun isEnableBackpressureHandling ()Ljava/lang/Boolean; public fun isEnableCacheTracing ()Ljava/lang/Boolean; public fun isEnableDatabaseTransactionTracing ()Ljava/lang/Boolean; - public fun isEnableMetrics ()Ljava/lang/Boolean; public fun isEnablePrettySerializationOutput ()Ljava/lang/Boolean; public fun isEnableQueueTracing ()Ljava/lang/Boolean; public fun isEnableSpotlight ()Ljava/lang/Boolean; @@ -610,7 +609,6 @@ public final class io/sentry/ExternalOptions { public fun setEnableCacheTracing (Ljava/lang/Boolean;)V public fun setEnableDatabaseTransactionTracing (Ljava/lang/Boolean;)V public fun setEnableDeduplication (Ljava/lang/Boolean;)V - public fun setEnableMetrics (Ljava/lang/Boolean;)V public fun setEnablePrettySerializationOutput (Ljava/lang/Boolean;)V public fun setEnableQueueTracing (Ljava/lang/Boolean;)V public fun setEnableSpotlight (Ljava/lang/Boolean;)V diff --git a/sentry/src/main/java/io/sentry/ExternalOptions.java b/sentry/src/main/java/io/sentry/ExternalOptions.java index 1bfec0f05b4..83497c2fb06 100644 --- a/sentry/src/main/java/io/sentry/ExternalOptions.java +++ b/sentry/src/main/java/io/sentry/ExternalOptions.java @@ -46,7 +46,6 @@ public final class ExternalOptions { private @Nullable Boolean enabled; private @Nullable Boolean enablePrettySerializationOutput; private @Nullable Boolean enableSpotlight; - private @Nullable Boolean enableMetrics; private @Nullable String spotlightConnectionUrl; private @Nullable List ignoredCheckIns; @@ -177,8 +176,6 @@ public final class ExternalOptions { options.setCaptureOpenTelemetryEvents( propertiesProvider.getBooleanProperty("capture-open-telemetry-events")); - options.setEnableMetrics(propertiesProvider.getBooleanProperty("metrics.enabled")); - for (final String ignoredExceptionType : propertiesProvider.getList("ignored-exceptions-for-type")) { try { @@ -714,14 +711,6 @@ public void setCaptureOpenTelemetryEvents(final @Nullable Boolean captureOpenTel return captureOpenTelemetryEvents; } - public void setEnableMetrics(final @Nullable Boolean enableMetrics) { - this.enableMetrics = enableMetrics; - } - - public @Nullable Boolean isEnableMetrics() { - return enableMetrics; - } - public @Nullable Double getProfileSessionSampleRate() { return profileSessionSampleRate; } diff --git a/sentry/src/test/java/io/sentry/ExternalOptionsTest.kt b/sentry/src/test/java/io/sentry/ExternalOptionsTest.kt index 1d99f810747..349058e4b3b 100644 --- a/sentry/src/test/java/io/sentry/ExternalOptionsTest.kt +++ b/sentry/src/test/java/io/sentry/ExternalOptionsTest.kt @@ -530,25 +530,6 @@ class ExternalOptionsTest { } } - @Test - fun `creates options with enableMetrics set to true`() { - withPropertiesFile("metrics.enabled=true") { options -> - assertTrue(options.isEnableMetrics == true) - } - } - - @Test - fun `creates options with enableMetrics set to false`() { - withPropertiesFile("metrics.enabled=false") { options -> - assertTrue(options.isEnableMetrics == false) - } - } - - @Test - fun `creates options with enableMetrics set to null when not set`() { - withPropertiesFile { assertNull(it.isEnableMetrics) } - } - @Test fun `creates options with profileSessionSampleRate set to 0_8`() { withPropertiesFile("profile-session-sample-rate=0.8") { options -> diff --git a/sentry/src/test/java/io/sentry/ScopesTest.kt b/sentry/src/test/java/io/sentry/ScopesTest.kt index 5833054e5f2..324a097a7fd 100644 --- a/sentry/src/test/java/io/sentry/ScopesTest.kt +++ b/sentry/src/test/java/io/sentry/ScopesTest.kt @@ -3300,18 +3300,6 @@ class ScopesTest { verify(mockClient, never()).captureMetric(any(), anyOrNull(), anyOrNull()) } - @Test - fun `legacy external metrics configuration does not disable capture`() { - val (sut, mockClient) = - getEnabledScopes { options -> - options.merge(ExternalOptions().also { it.isEnableMetrics = false }) - } - - sut.metrics().count("metric name") - - verify(mockClient).captureMetric(any(), anyOrNull(), anyOrNull()) - } - @Test fun `creating count metric works`() { val (sut, mockClient) = getEnabledScopes() diff --git a/sentry/src/test/java/io/sentry/SentryOptionsTest.kt b/sentry/src/test/java/io/sentry/SentryOptionsTest.kt index 07fc28476a4..3d38f48d08d 100644 --- a/sentry/src/test/java/io/sentry/SentryOptionsTest.kt +++ b/sentry/src/test/java/io/sentry/SentryOptionsTest.kt @@ -579,7 +579,6 @@ class SentryOptionsTest { externalOptions.isEnableSpotlight = true externalOptions.spotlightConnectionUrl = "http://local.sentry.io:1234" externalOptions.isGlobalHubMode = true - externalOptions.isEnableMetrics = false externalOptions.profileSessionSampleRate = 0.8 externalOptions.profilingTracesDirPath = "/profiling-traces" externalOptions.profileLifecycle = ProfileLifecycle.TRACE From a1e848a484dad6821358ac48da2a7e01235c74f6 Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Fri, 9 Oct 2026 11:35:57 +0200 Subject: [PATCH 3/3] ref(metrics): Remove unused no-op batch processor Remove the internal no-op batch processor now that SentryClient always creates the configured Metrics processor and no SDK path selects the stub. Co-Authored-By: Claude --- sentry/api/sentry.api | 7 ---- .../metrics/NoOpMetricsBatchProcessor.java | 32 ------------------- 2 files changed, 39 deletions(-) delete mode 100644 sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index 6a6cb18d68c..9b988911417 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -5678,13 +5678,6 @@ public final class io/sentry/metrics/NoOpMetricsApi : io/sentry/metrics/IMetrics public static fun getInstance ()Lio/sentry/metrics/NoOpMetricsApi; } -public final class io/sentry/metrics/NoOpMetricsBatchProcessor : io/sentry/metrics/IMetricsBatchProcessor { - public fun add (Lio/sentry/SentryMetricsEvent;)V - public fun close (Z)V - public fun flush (J)V - public static fun getInstance ()Lio/sentry/metrics/NoOpMetricsBatchProcessor; -} - public final class io/sentry/metrics/SentryMetricsParameters { public fun ()V public static fun create (Lio/sentry/SentryAttributes;)Lio/sentry/metrics/SentryMetricsParameters; diff --git a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java deleted file mode 100644 index 021bed5ee32..00000000000 --- a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsBatchProcessor.java +++ /dev/null @@ -1,32 +0,0 @@ -package io.sentry.metrics; - -import io.sentry.SentryMetricsEvent; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; - -@ApiStatus.Internal -public final class NoOpMetricsBatchProcessor implements IMetricsBatchProcessor { - - private static final NoOpMetricsBatchProcessor instance = new NoOpMetricsBatchProcessor(); - - private NoOpMetricsBatchProcessor() {} - - public static NoOpMetricsBatchProcessor getInstance() { - return instance; - } - - @Override - public void add(@NotNull SentryMetricsEvent event) { - // do nothing - } - - @Override - public void close(final boolean isRestarting) { - // do nothing - } - - @Override - public void flush(long timeoutMillis) { - // do nothing - } -}