Skip to content

Commit 55e2f11

Browse files
authored
Merge pull request #2675 from DataDog/xgouchet/RUM-9501/remove_error_logs
RUM-9501 Don't send fatal errors to Logs, only send them to RUM
2 parents b105196 + ba29caf commit 55e2f11

29 files changed

+79
-2012
lines changed

dd-sdk-android-core/api/apiSurface

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,6 @@ sealed class com.datadog.android.core.feature.event.JvmCrash
253253
abstract val throwable: Throwable
254254
abstract val message: String
255255
abstract val threads: List<ThreadDump>
256-
data class Logs : JvmCrash
257-
constructor(String, Throwable, Long, String, String, List<ThreadDump>)
258256
data class Rum : JvmCrash
259257
constructor(Throwable, String, List<ThreadDump>)
260258
data class com.datadog.android.core.feature.event.ThreadDump

dd-sdk-android-core/api/dd-sdk-android-core.api

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -673,27 +673,6 @@ public abstract class com/datadog/android/core/feature/event/JvmCrash {
673673
public abstract fun getThrowable ()Ljava/lang/Throwable;
674674
}
675675

676-
public final class com/datadog/android/core/feature/event/JvmCrash$Logs : com/datadog/android/core/feature/event/JvmCrash {
677-
public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;)V
678-
public final fun component1 ()Ljava/lang/String;
679-
public final fun component2 ()Ljava/lang/Throwable;
680-
public final fun component3 ()J
681-
public final fun component4 ()Ljava/lang/String;
682-
public final fun component5 ()Ljava/lang/String;
683-
public final fun component6 ()Ljava/util/List;
684-
public final fun copy (Ljava/lang/String;Ljava/lang/Throwable;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/datadog/android/core/feature/event/JvmCrash$Logs;
685-
public static synthetic fun copy$default (Lcom/datadog/android/core/feature/event/JvmCrash$Logs;Ljava/lang/String;Ljava/lang/Throwable;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/datadog/android/core/feature/event/JvmCrash$Logs;
686-
public fun equals (Ljava/lang/Object;)Z
687-
public final fun getLoggerName ()Ljava/lang/String;
688-
public fun getMessage ()Ljava/lang/String;
689-
public final fun getThreadName ()Ljava/lang/String;
690-
public fun getThreads ()Ljava/util/List;
691-
public fun getThrowable ()Ljava/lang/Throwable;
692-
public final fun getTimestamp ()J
693-
public fun hashCode ()I
694-
public fun toString ()Ljava/lang/String;
695-
}
696-
697676
public final class com/datadog/android/core/feature/event/JvmCrash$Rum : com/datadog/android/core/feature/event/JvmCrash {
698677
public fun <init> (Ljava/lang/Throwable;Ljava/lang/String;Ljava/util/List;)V
699678
public final fun component1 ()Ljava/lang/Throwable;

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/feature/event/JvmCrash.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,6 @@ sealed class JvmCrash {
1616
abstract val message: String
1717
abstract val threads: List<ThreadDump>
1818

19-
data class Logs(
20-
val threadName: String,
21-
override val throwable: Throwable,
22-
val timestamp: Long,
23-
override val message: String,
24-
val loggerName: String,
25-
override val threads: List<ThreadDump>
26-
) : JvmCrash()
27-
2819
data class Rum(
2920
override val throwable: Throwable,
3021
override val message: String,

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/CoreFeature.kt

Lines changed: 3 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,11 @@ import com.datadog.android.core.internal.data.upload.RotatingDnsResolver
3232
import com.datadog.android.core.internal.net.DefaultFirstPartyHostHeaderTypeResolver
3333
import com.datadog.android.core.internal.net.info.BroadcastReceiverNetworkInfoProvider
3434
import com.datadog.android.core.internal.net.info.CallbackNetworkInfoProvider
35-
import com.datadog.android.core.internal.net.info.NetworkInfoDeserializer
3635
import com.datadog.android.core.internal.net.info.NetworkInfoProvider
3736
import com.datadog.android.core.internal.net.info.NoOpNetworkInfoProvider
3837
import com.datadog.android.core.internal.persistence.JsonObjectDeserializer
39-
import com.datadog.android.core.internal.persistence.file.FileMover
4038
import com.datadog.android.core.internal.persistence.file.FilePersistenceConfig
41-
import com.datadog.android.core.internal.persistence.file.FileReaderWriter
4239
import com.datadog.android.core.internal.persistence.file.FileWriter
43-
import com.datadog.android.core.internal.persistence.file.advanced.ScheduledWriter
4440
import com.datadog.android.core.internal.persistence.file.batch.BatchFileReaderWriter
4541
import com.datadog.android.core.internal.persistence.file.deleteSafe
4642
import com.datadog.android.core.internal.persistence.file.existsSafe
@@ -70,16 +66,13 @@ import com.datadog.android.core.internal.time.TimeProvider
7066
import com.datadog.android.core.internal.user.DatadogUserInfoProvider
7167
import com.datadog.android.core.internal.user.MutableUserInfoProvider
7268
import com.datadog.android.core.internal.user.NoOpMutableUserInfoProvider
73-
import com.datadog.android.core.internal.user.UserInfoDeserializer
7469
import com.datadog.android.core.internal.utils.executeSafe
7570
import com.datadog.android.core.internal.utils.unboundInternalLogger
7671
import com.datadog.android.core.persistence.PersistenceStrategy
7772
import com.datadog.android.core.thread.FlushableExecutorService
7873
import com.datadog.android.ndk.internal.DatadogNdkCrashHandler
7974
import com.datadog.android.ndk.internal.NdkCrashHandler
8075
import com.datadog.android.ndk.internal.NdkCrashLogDeserializer
81-
import com.datadog.android.ndk.internal.NdkNetworkInfoDataWriter
82-
import com.datadog.android.ndk.internal.NdkUserInfoDataWriter
8376
import com.datadog.android.ndk.internal.NoOpNdkCrashHandler
8477
import com.datadog.android.privacy.TrackingConsent
8578
import com.datadog.android.security.Encryption
@@ -377,10 +370,7 @@ internal class CoreFeature(
377370
storageDir,
378371
persistenceExecutorService,
379372
NdkCrashLogDeserializer(internalLogger),
380-
NetworkInfoDeserializer(internalLogger),
381-
UserInfoDeserializer(internalLogger),
382373
internalLogger,
383-
envFileReader = FileReaderWriter.create(internalLogger, localDataEncryption),
384374
lastRumViewEventProvider = { lastViewEvent },
385375
nativeCrashSourceType = nativeSourceType ?: "ndk"
386376
)
@@ -524,44 +514,14 @@ internal class CoreFeature(
524514
setupNetworkInfoProviders(appContext)
525515

526516
// User Info Provider
527-
setupUserInfoProvider()
528-
}
529-
530-
private fun setupUserInfoProvider() {
531-
val userInfoWriter = ScheduledWriter(
532-
NdkUserInfoDataWriter(
533-
storageDir,
534-
trackingConsentProvider,
535-
persistenceExecutorService,
536-
FileReaderWriter.create(internalLogger, localDataEncryption),
537-
FileMover(internalLogger),
538-
internalLogger,
539-
buildFilePersistenceConfig()
540-
),
541-
persistenceExecutorService,
542-
internalLogger
543-
)
544-
userInfoProvider = DatadogUserInfoProvider(userInfoWriter)
517+
userInfoProvider = DatadogUserInfoProvider()
545518
}
546519

547520
private fun setupNetworkInfoProviders(appContext: Context) {
548-
val networkInfoWriter = ScheduledWriter(
549-
NdkNetworkInfoDataWriter(
550-
storageDir,
551-
trackingConsentProvider,
552-
persistenceExecutorService,
553-
FileReaderWriter.create(internalLogger, localDataEncryption),
554-
FileMover(internalLogger),
555-
internalLogger,
556-
buildFilePersistenceConfig()
557-
),
558-
persistenceExecutorService,
559-
internalLogger
560-
)
561521
networkInfoProvider = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
562-
CallbackNetworkInfoProvider(networkInfoWriter, internalLogger = internalLogger)
522+
CallbackNetworkInfoProvider(internalLogger = internalLogger)
563523
} else {
564-
BroadcastReceiverNetworkInfoProvider(networkInfoWriter)
524+
BroadcastReceiverNetworkInfoProvider()
565525
}
566526
networkInfoProvider.register(appContext)
567527
}

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/DatadogCore.kt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import com.datadog.android.core.internal.utils.scheduleSafe
3939
import com.datadog.android.core.thread.FlushableExecutorService
4040
import com.datadog.android.error.internal.CrashReportsFeature
4141
import com.datadog.android.internal.telemetry.InternalTelemetryEvent
42-
import com.datadog.android.ndk.internal.NdkCrashHandler
4342
import com.datadog.android.privacy.TrackingConsent
4443
import com.google.gson.JsonObject
4544
import java.io.File
@@ -135,16 +134,8 @@ internal class DatadogCore(
135134
features[feature.name] = sdkFeature
136135
sdkFeature.initialize(context, instanceId)
137136

138-
when (feature.name) {
139-
Feature.LOGS_FEATURE_NAME -> {
140-
coreFeature.ndkCrashHandler
141-
.handleNdkCrash(this, NdkCrashHandler.ReportTarget.LOGS)
142-
}
143-
144-
Feature.RUM_FEATURE_NAME -> {
145-
coreFeature.ndkCrashHandler
146-
.handleNdkCrash(this, NdkCrashHandler.ReportTarget.RUM)
147-
}
137+
if (feature.name == Feature.RUM_FEATURE_NAME) {
138+
coreFeature.ndkCrashHandler.handleNdkCrash(this)
148139
}
149140
}
150141

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/net/info/BroadcastReceiverNetworkInfoProvider.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,19 @@ import android.net.ConnectivityManager
1616
import android.os.Build
1717
import android.telephony.TelephonyManager
1818
import com.datadog.android.api.context.NetworkInfo
19-
import com.datadog.android.core.internal.persistence.DataWriter
2019
import com.datadog.android.core.internal.receiver.ThreadSafeReceiver
2120
import com.datadog.android.core.internal.system.BuildSdkVersionProvider
2221
import android.net.NetworkInfo as AndroidNetworkInfo
2322

2423
@Suppress("DEPRECATION")
2524
@SuppressLint("InlinedApi")
2625
internal class BroadcastReceiverNetworkInfoProvider(
27-
private val dataWriter: DataWriter<NetworkInfo>,
2826
private val buildSdkVersionProvider: BuildSdkVersionProvider = BuildSdkVersionProvider.DEFAULT
2927
) :
3028
ThreadSafeReceiver(),
3129
NetworkInfoProvider {
3230

3331
private var networkInfo: NetworkInfo = NetworkInfo()
34-
set(value) {
35-
field = value
36-
@Suppress("ThreadSafety") // TODO RUM-3756 delegate to another thread
37-
dataWriter.write(field)
38-
}
3932

4033
// region BroadcastReceiver
4134

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/net/info/CallbackNetworkInfoProvider.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,17 @@ import android.os.Build
1515
import androidx.annotation.RequiresApi
1616
import com.datadog.android.api.InternalLogger
1717
import com.datadog.android.api.context.NetworkInfo
18-
import com.datadog.android.core.internal.persistence.DataWriter
1918
import com.datadog.android.core.internal.system.BuildSdkVersionProvider
2019

2120
@RequiresApi(Build.VERSION_CODES.N)
2221
internal class CallbackNetworkInfoProvider(
23-
private val dataWriter: DataWriter<NetworkInfo>,
2422
private val buildSdkVersionProvider: BuildSdkVersionProvider = BuildSdkVersionProvider.DEFAULT,
2523
private val internalLogger: InternalLogger
2624
) :
2725
ConnectivityManager.NetworkCallback(),
2826
NetworkInfoProvider {
2927

3028
private var lastNetworkInfo: NetworkInfo = NetworkInfo()
31-
set(value) {
32-
field = value
33-
@Suppress("ThreadSafety") // TODO RUM-3756 delegate to another thread
34-
dataWriter.write(field)
35-
}
3629

3730
// region NetworkCallback
3831

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/net/info/NetworkInfoDeserializer.kt

Lines changed: 0 additions & 42 deletions
This file was deleted.

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/net/info/NetworkInfoSerializer.kt

Lines changed: 0 additions & 18 deletions
This file was deleted.

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/user/DatadogUserInfoProvider.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,10 @@
77
package com.datadog.android.core.internal.user
88

99
import com.datadog.android.api.context.UserInfo
10-
import com.datadog.android.core.internal.persistence.DataWriter
1110

12-
internal class DatadogUserInfoProvider(
13-
internal val dataWriter: DataWriter<UserInfo>
14-
) : MutableUserInfoProvider {
11+
internal class DatadogUserInfoProvider : MutableUserInfoProvider {
1512

1613
private var internalUserInfo = UserInfo()
17-
set(value) {
18-
field = value
19-
@Suppress("ThreadSafety") // TODO RUM-3756 delegate to another thread
20-
dataWriter.write(field)
21-
}
2214

2315
override fun setUserInfo(id: String, name: String?, email: String?, extraInfo: Map<String, Any?>) {
2416
internalUserInfo = internalUserInfo.copy(

0 commit comments

Comments
 (0)