diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java b/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java index a0547a78b3..c7c590d624 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java @@ -1,6 +1,7 @@ package io.sentry.android.core; import static io.sentry.android.core.NdkIntegration.SENTRY_NDK_CLASS_NAME; +import static io.sentry.util.IntegrationUtils.addIntegrationToSdkVersion; import android.annotation.SuppressLint; import android.app.Application; @@ -378,6 +379,8 @@ private static void setupProfiler( () -> new PerfettoProfiler( appContext, options.getLogger(), options.getExecutorService()))); + // Report adoption of the Perfetto continuous profiling backend (API 35+). + addIntegrationToSdkVersion("PerfettoContinuousProfiling"); } else if (options.isEnableLegacyProfiling()) { options.setContinuousProfiler( new AndroidContinuousProfiler( diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt index 6df1ed7167..85fba36f7d 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt @@ -17,6 +17,7 @@ import io.sentry.ITransactionProfiler import io.sentry.MainEventProcessor import io.sentry.NoOpContinuousProfiler import io.sentry.NoOpTransactionProfiler +import io.sentry.SentryIntegrationPackageStorage import io.sentry.SentryOptions import io.sentry.android.core.SentryAndroidOptions.AndroidUserFeedbackFormHandler import io.sentry.android.core.cache.AndroidEnvelopeCache @@ -383,6 +384,32 @@ class AndroidOptionsInitializerTest { assertTrue(fixture.sentryOptions.continuousProfiler is PerfettoContinuousProfiler) } + @Config(sdk = [35]) + @Test + fun `init on API 35+ reports PerfettoContinuousProfiling integration`() { + SentryIntegrationPackageStorage.getInstance().clearStorage() + fixture.initSut() + + assertTrue( + SentryIntegrationPackageStorage.getInstance() + .integrations + .contains("PerfettoContinuousProfiling") + ) + } + + @Config(sdk = [34]) + @Test + fun `init below API 35 does not report PerfettoContinuousProfiling integration`() { + SentryIntegrationPackageStorage.getInstance().clearStorage() + fixture.initSut(configureOptions = { isEnableLegacyProfiling = true }) + + assertFalse( + SentryIntegrationPackageStorage.getInstance() + .integrations + .contains("PerfettoContinuousProfiling") + ) + } + @Config(sdk = [34]) @Test fun `init below API 35 with enableLegacyProfiling true sets AndroidContinuousProfiler`() {