diff --git a/core/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java b/core/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java index 4c346cac3..844dd867a 100644 --- a/core/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java +++ b/core/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java @@ -25,7 +25,6 @@ import io.opentelemetry.android.internal.features.networkattrs.NetworkAttributesLogRecordAppender; import io.opentelemetry.android.internal.features.networkattrs.NetworkAttributesSpanAppender; import io.opentelemetry.android.internal.features.persistence.DiskManager; -import io.opentelemetry.android.internal.features.persistence.SimpleTemporaryFileProvider; import io.opentelemetry.android.internal.initialization.InitializationEvents; import io.opentelemetry.android.internal.processors.GlobalAttributesLogRecordAppender; import io.opentelemetry.android.internal.processors.ScreenAttributesLogRecordProcessor; @@ -46,6 +45,8 @@ import io.opentelemetry.contrib.disk.buffering.SpanFromDiskExporter; import io.opentelemetry.contrib.disk.buffering.SpanToDiskExporter; import io.opentelemetry.contrib.disk.buffering.config.StorageConfiguration; +import io.opentelemetry.contrib.disk.buffering.internal.storage.Storage; +import io.opentelemetry.contrib.disk.buffering.internal.utils.SignalTypes; import io.opentelemetry.exporter.logging.LoggingMetricExporter; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.exporter.logging.SystemOutLogRecordExporter; @@ -363,23 +364,32 @@ private void initializeExporters( if (diskBufferingConfig.getEnabled()) { try { StorageConfiguration storageConfiguration = createStorageConfiguration(services); + Storage spanStorage = + Storage.builder(SignalTypes.spans) + .setStorageConfiguration(storageConfiguration) + .build(); + Storage logsStorage = + Storage.builder(SignalTypes.logs) + .setStorageConfiguration(storageConfiguration) + .build(); + Storage metricsStorage = + Storage.builder(SignalTypes.metrics) + .setStorageConfiguration(storageConfiguration) + .build(); final SpanExporter originalSpanExporter = spanExporter; - spanExporter = - SpanToDiskExporter.create(originalSpanExporter, storageConfiguration); + spanExporter = SpanToDiskExporter.create(originalSpanExporter, spanStorage); final LogRecordExporter originalLogsExporter = logsExporter; - logsExporter = - LogRecordToDiskExporter.create(originalLogsExporter, storageConfiguration); + logsExporter = LogRecordToDiskExporter.create(originalLogsExporter, logsStorage); final MetricExporter originalMetricExporter = metricExporter; metricExporter = - MetricToDiskExporter.create(originalMetricExporter, storageConfiguration); + MetricToDiskExporter.create(originalMetricExporter, metricsStorage); signalFromDiskExporter = new SignalFromDiskExporter( - SpanFromDiskExporter.create( - originalSpanExporter, storageConfiguration), + SpanFromDiskExporter.create(originalSpanExporter, spanStorage), MetricFromDiskExporter.create( - originalMetricExporter, storageConfiguration), + originalMetricExporter, metricsStorage), LogRecordFromDiskExporter.create( - originalLogsExporter, storageConfiguration)); + originalLogsExporter, logsStorage)); } catch (IOException e) { Log.e(RumConstants.OTEL_RUM_LOG_TAG, "Could not initialize disk exporters.", e); } @@ -418,8 +428,6 @@ private StorageConfiguration createStorageConfiguration(Services services) throw .setMaxFileAgeForWriteMillis(config.getMaxFileAgeForWriteMillis()) .setMaxFileAgeForReadMillis(config.getMaxFileAgeForReadMillis()) .setMinFileAgeForReadMillis(config.getMinFileAgeForReadMillis()) - .setTemporaryFileProvider( - new SimpleTemporaryFileProvider(diskManager.getTemporaryDir())) .setDebugEnabled(config.getDebugEnabled()) .build(); } diff --git a/core/src/main/java/io/opentelemetry/android/internal/features/persistence/SimpleTemporaryFileProvider.kt b/core/src/main/java/io/opentelemetry/android/internal/features/persistence/SimpleTemporaryFileProvider.kt deleted file mode 100644 index dc632ec63..000000000 --- a/core/src/main/java/io/opentelemetry/android/internal/features/persistence/SimpleTemporaryFileProvider.kt +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.android.internal.features.persistence - -import io.opentelemetry.contrib.disk.buffering.config.TemporaryFileProvider -import java.io.File -import java.util.UUID - -internal class SimpleTemporaryFileProvider( - private val tempDir: File, -) : TemporaryFileProvider { - /** Creates a unique file instance using the provided prefix and the current time in millis. */ - override fun createTemporaryFile(prefix: String): File = File(tempDir, prefix + "_" + UUID.randomUUID() + ".tmp") -} diff --git a/core/src/test/java/io/opentelemetry/android/internal/features/persistence/SimpleTemporaryFileProviderTest.kt b/core/src/test/java/io/opentelemetry/android/internal/features/persistence/SimpleTemporaryFileProviderTest.kt deleted file mode 100644 index 95b89221c..000000000 --- a/core/src/test/java/io/opentelemetry/android/internal/features/persistence/SimpleTemporaryFileProviderTest.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.android.internal.features.persistence - -import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.io.TempDir -import java.io.File - -internal class SimpleTemporaryFileProviderTest { - @TempDir - lateinit var tempDir: File - - @Test - fun createUniqueFilesBasedOnCurrentTimeAndPrefix() { - val provider = SimpleTemporaryFileProvider(tempDir) - val first = provider.createTemporaryFile("a") - val second = provider.createTemporaryFile("b") - Thread.sleep(1) - val third = provider.createTemporaryFile("a") - assertThat(first.getName()).startsWith("a").endsWith(".tmp") - assertThat(second.getName()).startsWith("b").endsWith(".tmp") - assertThat(third.getName()).startsWith("a").endsWith(".tmp") - assertThat(first).isNotEqualTo(third) - assertThat(first.getParentFile()).isEqualTo(tempDir) - assertThat(second.getParentFile()).isEqualTo(tempDir) - assertThat(third.getParentFile()).isEqualTo(tempDir) - } -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a968bd534..ceb4c70bd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ opentelemetry-instrumentation-alpha = "2.17.0-alpha" #opentelemetry-instrumentation = "2.9.0" // alpha bom includes non-alpha bom opentelemetry-semconv = "1.34.0" opentelemetry-semconv-alpha = "1.34.0-alpha" -opentelemetry-contrib = "1.46.0-alpha" +opentelemetry-contrib = "1.47.0-alpha" mockito = "5.18.0" junit = "5.13.2" byteBuddy = "1.17.6"