Skip to content

Commit 32f7ded

Browse files
committed
RUM-15914: Drop word feature from operations APIs
1 parent ec675d8 commit 32f7ded

20 files changed

Lines changed: 381 additions & 185 deletions

File tree

features/dd-sdk-android-rum/api/apiSurface

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,12 @@ interface com.datadog.android.rum.RumMonitor
124124
fun addViewLoadingTime(Boolean)
125125
fun addViewAttributes(Map<String, Any?>)
126126
fun removeViewAttributes(Collection<String>)
127-
fun startFeatureOperation(String, String? = null, Map<String, Any?> = emptyMap())
128-
fun succeedFeatureOperation(String, String? = null, Map<String, Any?> = emptyMap())
129-
fun failFeatureOperation(String, String? = null, com.datadog.android.rum.featureoperations.FailureReason, Map<String, Any?> = emptyMap())
127+
DEPRECATED fun startFeatureOperation(String, String? = null, Map<String, Any?> = emptyMap())
128+
fun startOperation(String, String? = null, com.datadog.android.rum.operations.OperationOptions = OperationOptions.Empty, Map<String, Any?> = emptyMap())
129+
DEPRECATED fun succeedFeatureOperation(String, String? = null, Map<String, Any?> = emptyMap())
130+
fun succeedOperation(String, String? = null, Map<String, Any?> = emptyMap())
131+
DEPRECATED fun failFeatureOperation(String, String? = null, com.datadog.android.rum.featureoperations.FailureReason, Map<String, Any?> = emptyMap())
132+
fun failOperation(String, String? = null, com.datadog.android.rum.operations.FailureReason, Map<String, Any?> = emptyMap())
130133
fun reportAppFullyDisplayed()
131134
var debug: Boolean
132135
fun _getInternal(): _RumInternalProxy?
@@ -201,7 +204,7 @@ enum com.datadog.android.rum.configuration.VitalsUpdateFrequency
201204
- NEVER
202205
interface com.datadog.android.rum.event.ViewEventMapper : com.datadog.android.event.EventMapper<com.datadog.android.rum.model.ViewEvent>
203206
override fun map(com.datadog.android.rum.model.ViewEvent): com.datadog.android.rum.model.ViewEvent
204-
enum com.datadog.android.rum.featureoperations.FailureReason
207+
DEPRECATED enum com.datadog.android.rum.featureoperations.FailureReason
205208
- ERROR
206209
- ABANDONED
207210
- OTHER
@@ -268,6 +271,12 @@ class com.datadog.android.rum.metric.networksettled.TimeBasedInitialResourceIden
268271
companion object
269272
typealias RumVitalAppLaunchEvent = VitalAppLaunchEvent
270273
typealias RumVitalOperationStepEvent = VitalOperationStepEvent
274+
enum com.datadog.android.rum.operations.FailureReason
275+
- ERROR
276+
- ABANDONED
277+
- OTHER
278+
sealed class com.datadog.android.rum.operations.OperationOptions
279+
object Empty : OperationOptions
271280
fun android.content.Context.getAssetAsRumResource(String, Int = AssetManager.ACCESS_STREAMING, com.datadog.android.api.SdkCore = Datadog.getInstance()): java.io.InputStream
272281
fun android.content.Context.getRawResAsRumResource(Int, com.datadog.android.api.SdkCore = Datadog.getInstance()): java.io.InputStream
273282
fun java.io.InputStream.asRumResource(String, com.datadog.android.api.SdkCore = Datadog.getInstance()): java.io.InputStream

features/dd-sdk-android-rum/api/dd-sdk-android-rum.api

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ public abstract interface class com/datadog/android/rum/RumMonitor {
163163
public abstract fun addViewLoadingTime (Z)V
164164
public abstract fun clearAttributes ()V
165165
public abstract fun failFeatureOperation (Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/rum/featureoperations/FailureReason;Ljava/util/Map;)V
166+
public abstract fun failOperation (Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/rum/operations/FailureReason;Ljava/util/Map;)V
166167
public abstract fun getAttributes ()Ljava/util/Map;
167168
public abstract fun getCurrentSessionId (Lkotlin/jvm/functions/Function1;)V
168169
public abstract fun getDebug ()Z
@@ -172,6 +173,7 @@ public abstract interface class com/datadog/android/rum/RumMonitor {
172173
public abstract fun setDebug (Z)V
173174
public abstract fun startAction (Lcom/datadog/android/rum/RumActionType;Ljava/lang/String;Ljava/util/Map;)V
174175
public abstract fun startFeatureOperation (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
176+
public abstract fun startOperation (Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/rum/operations/OperationOptions;Ljava/util/Map;)V
175177
public abstract fun startResource (Ljava/lang/String;Lcom/datadog/android/rum/RumResourceMethod;Ljava/lang/String;Ljava/util/Map;)V
176178
public abstract fun startView (Ljava/lang/Object;Ljava/lang/String;Ljava/util/Map;)V
177179
public abstract fun stopAction (Lcom/datadog/android/rum/RumActionType;Ljava/lang/String;Ljava/util/Map;)V
@@ -181,15 +183,18 @@ public abstract interface class com/datadog/android/rum/RumMonitor {
181183
public abstract fun stopSession ()V
182184
public abstract fun stopView (Ljava/lang/Object;Ljava/util/Map;)V
183185
public abstract fun succeedFeatureOperation (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
186+
public abstract fun succeedOperation (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
184187
}
185188

186189
public final class com/datadog/android/rum/RumMonitor$DefaultImpls {
187190
public static synthetic fun addAction$default (Lcom/datadog/android/rum/RumMonitor;Lcom/datadog/android/rum/RumActionType;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
188191
public static synthetic fun addError$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Lcom/datadog/android/rum/RumErrorSource;Ljava/lang/Throwable;Ljava/util/Map;ILjava/lang/Object;)V
189192
public static synthetic fun addErrorWithStacktrace$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Lcom/datadog/android/rum/RumErrorSource;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
190193
public static synthetic fun failFeatureOperation$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/rum/featureoperations/FailureReason;Ljava/util/Map;ILjava/lang/Object;)V
194+
public static synthetic fun failOperation$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/rum/operations/FailureReason;Ljava/util/Map;ILjava/lang/Object;)V
191195
public static synthetic fun startAction$default (Lcom/datadog/android/rum/RumMonitor;Lcom/datadog/android/rum/RumActionType;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
192196
public static synthetic fun startFeatureOperation$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
197+
public static synthetic fun startOperation$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/rum/operations/OperationOptions;Ljava/util/Map;ILjava/lang/Object;)V
193198
public static synthetic fun startResource$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Lcom/datadog/android/rum/RumResourceMethod;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
194199
public static synthetic fun startView$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
195200
public static synthetic fun stopAction$default (Lcom/datadog/android/rum/RumMonitor;Lcom/datadog/android/rum/RumActionType;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
@@ -198,6 +203,7 @@ public final class com/datadog/android/rum/RumMonitor$DefaultImpls {
198203
public static synthetic fun stopResourceWithError$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/datadog/android/rum/RumErrorSource;Ljava/lang/Throwable;Ljava/util/Map;ILjava/lang/Object;)V
199204
public static synthetic fun stopView$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/Object;Ljava/util/Map;ILjava/lang/Object;)V
200205
public static synthetic fun succeedFeatureOperation$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
206+
public static synthetic fun succeedOperation$default (Lcom/datadog/android/rum/RumMonitor;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
201207
}
202208

203209
public final class com/datadog/android/rum/RumPerformanceMetric : java/lang/Enum {
@@ -8113,6 +8119,21 @@ public final class com/datadog/android/rum/model/VitalOperationStepEvent$VitalOp
81138119
public final fun fromJsonObject (Lcom/google/gson/JsonObject;)Lcom/datadog/android/rum/model/VitalOperationStepEvent$VitalOperationStepEventView;
81148120
}
81158121

8122+
public final class com/datadog/android/rum/operations/FailureReason : java/lang/Enum {
8123+
public static final field ABANDONED Lcom/datadog/android/rum/operations/FailureReason;
8124+
public static final field ERROR Lcom/datadog/android/rum/operations/FailureReason;
8125+
public static final field OTHER Lcom/datadog/android/rum/operations/FailureReason;
8126+
public static fun valueOf (Ljava/lang/String;)Lcom/datadog/android/rum/operations/FailureReason;
8127+
public static fun values ()[Lcom/datadog/android/rum/operations/FailureReason;
8128+
}
8129+
8130+
public abstract class com/datadog/android/rum/operations/OperationOptions {
8131+
}
8132+
8133+
public final class com/datadog/android/rum/operations/OperationOptions$Empty : com/datadog/android/rum/operations/OperationOptions {
8134+
public static final field INSTANCE Lcom/datadog/android/rum/operations/OperationOptions$Empty;
8135+
}
8136+
81168137
public final class com/datadog/android/rum/resource/ContextExtKt {
81178138
public static final fun getAssetAsRumResource (Landroid/content/Context;Ljava/lang/String;ILcom/datadog/android/api/SdkCore;)Ljava/io/InputStream;
81188139
public static synthetic fun getAssetAsRumResource$default (Landroid/content/Context;Ljava/lang/String;ILcom/datadog/android/api/SdkCore;ILjava/lang/Object;)Ljava/io/InputStream;

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/RumMonitor.kt

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
* Copyright 2016-Present Datadog, Inc.
55
*/
66

7+
@file:Suppress("DEPRECATION")
8+
79
package com.datadog.android.rum
810

911
import android.app.Activity
1012
import androidx.fragment.app.Fragment
11-
import com.datadog.android.rum.featureoperations.FailureReason
13+
import com.datadog.android.rum.operations.FailureReason
14+
import com.datadog.android.rum.operations.OperationOptions
1215
import com.datadog.tools.annotation.NoOpImplementation
16+
import com.datadog.android.rum.featureoperations.FailureReason as DeprecatedFailureReason
1317

1418
/**
1519
* A class enabling Datadog RUM features.
@@ -335,9 +339,29 @@ interface RumMonitor {
335339
* For example, multiple network requests (photo or file uploads) for the same URL.
336340
* @param attributes additional custom attributes to attach to the feature operation.
337341
*/
338-
@ExperimentalRumApi
342+
@Deprecated(
343+
message = "Use startOperation instead.",
344+
replaceWith = ReplaceWith("startOperation(name, operationKey, attributes)")
345+
)
339346
fun startFeatureOperation(name: String, operationKey: String? = null, attributes: Map<String, Any?> = emptyMap())
340347

348+
/**
349+
* Starts the [name] operation.
350+
*
351+
* @param name the name of the operation.
352+
* @param operationKey optional operation key. Allows to track multiple operations of the same [name].
353+
* For example, multiple network requests (photo or file uploads) for the same URL.
354+
* @param options options to attach to this operation.
355+
* @param attributes additional custom attributes to attach to the operation.
356+
*/
357+
@ExperimentalRumApi
358+
fun startOperation(
359+
name: String,
360+
operationKey: String? = null,
361+
options: OperationOptions = OperationOptions.Empty,
362+
attributes: Map<String, Any?> = emptyMap()
363+
)
364+
341365
/**
342366
* Finishes the [name] feature operation with successful status.
343367
*
@@ -348,9 +372,25 @@ interface RumMonitor {
348372
* @param attributes additional custom attributes to attach to the feature operation. Can be
349373
* used to add some result data produced as the result of the operation.
350374
*/
351-
@ExperimentalRumApi
375+
@Deprecated(
376+
message = "Use succeedOperation instead.",
377+
replaceWith = ReplaceWith("succeedOperation(name, operationKey, attributes)")
378+
)
352379
fun succeedFeatureOperation(name: String, operationKey: String? = null, attributes: Map<String, Any?> = emptyMap())
353380

381+
/**
382+
* Finishes the [name] operation with successful status.
383+
*
384+
* @param name the name of the operation.
385+
* @param operationKey optional operation key identifying a specific operation
386+
* instance from the list of operations of the same [name]. Should be provided if [operationKey] was
387+
* provided during [startOperation] invocation.
388+
* @param attributes additional custom attributes to attach to the operation. Can be
389+
* used to add some result data produced as the result of the operation.
390+
*/
391+
@ExperimentalRumApi
392+
fun succeedOperation(name: String, operationKey: String? = null, attributes: Map<String, Any?> = emptyMap())
393+
354394
/**
355395
* Finishes the [name] feature operation with failure status.
356396
*
@@ -362,8 +402,31 @@ interface RumMonitor {
362402
* @param attributes additional custom attributes to attach to the feature operation. Can be
363403
* used to add some result data produced as the result of the operation.
364404
*/
365-
@ExperimentalRumApi
405+
@Deprecated(
406+
message = "Use failOperation instead.",
407+
replaceWith = ReplaceWith("failOperation(name, operationKey, failureReason, attributes)")
408+
)
366409
fun failFeatureOperation(
410+
name: String,
411+
operationKey: String? = null,
412+
// when removing this remove @Suppress("DEPRECATION") also at the file level (for the import)
413+
@Suppress("DEPRECATION") failureReason: DeprecatedFailureReason,
414+
attributes: Map<String, Any?> = emptyMap()
415+
)
416+
417+
/**
418+
* Finishes the [name] operation with failure status.
419+
*
420+
* @param name the name of the operation.
421+
* @param operationKey optional operation key identifying a specific operation
422+
* instance from the list of operations of the same [name]. Should be provided if [operationKey] was
423+
* provided during [startOperation] invocation.
424+
* @param failureReason the reason for the operation failure.
425+
* @param attributes additional custom attributes to attach to the operation. Can be
426+
* used to add some result data produced as the result of the operation.
427+
*/
428+
@ExperimentalRumApi
429+
fun failOperation(
367430
name: String,
368431
operationKey: String? = null,
369432
failureReason: FailureReason,

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/featureoperations/FailureReason.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ package com.datadog.android.rum.featureoperations
88
/**
99
* Represents the possible reasons for a failed feature operation.
1010
*/
11+
@Deprecated(
12+
"Use com.datadog.android.rum.operations.FailureReason instead",
13+
replaceWith = ReplaceWith(
14+
expression = "FailureReason",
15+
imports = ["com.datadog.android.rum.operations.FailureReason"]
16+
)
17+
)
1118
enum class FailureReason {
1219
/**
1320
* Represents a failure caused by an error during execution.

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumEventExt.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import com.datadog.android.rum.RumActionType
1414
import com.datadog.android.rum.RumErrorSource
1515
import com.datadog.android.rum.RumResourceKind
1616
import com.datadog.android.rum.RumResourceMethod
17-
import com.datadog.android.rum.featureoperations.FailureReason
1817
import com.datadog.android.rum.internal.RumErrorSourceType
1918
import com.datadog.android.rum.internal.domain.event.ResourceTiming
2019
import com.datadog.android.rum.internal.startup.RumStartupScenario
@@ -25,6 +24,7 @@ import com.datadog.android.rum.model.ResourceEvent
2524
import com.datadog.android.rum.model.ViewEvent
2625
import com.datadog.android.rum.model.VitalAppLaunchEvent
2726
import com.datadog.android.rum.model.VitalOperationStepEvent
27+
import com.datadog.android.rum.operations.FailureReason
2828
import java.util.Locale
2929

3030
// region Resource.Method conversion
@@ -715,7 +715,7 @@ internal fun RumSessionScope.StartReason.toLongTaskSessionPrecondition(): LongTa
715715

716716
// endregion
717717

718-
// region FeatureOperation
718+
// region Operation
719719

720720
internal fun RumSessionScope.StartReason.toVitalOperationStepSessionPrecondition():
721721
VitalOperationStepEvent.SessionPrecondition {

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumRawEvent.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ import com.datadog.android.rum.RumErrorSource
1313
import com.datadog.android.rum.RumPerformanceMetric
1414
import com.datadog.android.rum.RumResourceKind
1515
import com.datadog.android.rum.RumResourceMethod
16-
import com.datadog.android.rum.featureoperations.FailureReason
1716
import com.datadog.android.rum.internal.RumErrorSourceType
1817
import com.datadog.android.rum.internal.domain.Time
1918
import com.datadog.android.rum.internal.domain.event.ResourceTiming
2019
import com.datadog.android.rum.internal.startup.RumStartupScenario
2120
import com.datadog.android.rum.internal.startup.RumTTIDInfo
2221
import com.datadog.android.rum.model.ActionEvent
22+
import com.datadog.android.rum.operations.FailureReason
2323

2424
internal sealed class RumRawEvent {
2525

@@ -255,14 +255,14 @@ internal sealed class RumRawEvent {
255255
override val eventTime: Time = Time()
256256
) : RumRawEvent()
257257

258-
internal data class StartFeatureOperation(
258+
internal data class StartOperation(
259259
val name: String,
260260
val operationKey: String?,
261261
val attributes: Map<String, Any?>,
262262
override val eventTime: Time = Time()
263263
) : RumRawEvent()
264264

265-
internal data class StopFeatureOperation(
265+
internal data class StopOperation(
266266
val name: String,
267267
val operationKey: String?,
268268
val attributes: Map<String, Any?>,

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewManagerScope.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,8 +433,8 @@ internal class RumViewManagerScope(
433433
RumRawEvent.AddError::class.java,
434434
RumRawEvent.StartAction::class.java,
435435
RumRawEvent.StartResource::class.java,
436-
RumRawEvent.StartFeatureOperation::class.java,
437-
RumRawEvent.StopFeatureOperation::class.java
436+
RumRawEvent.StartOperation::class.java,
437+
RumRawEvent.StopOperation::class.java
438438
)
439439

440440
internal val silentOrphanEventTypes = arrayOf<Class<*>>(

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumViewScope.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ internal open class RumViewScope(
240240
is RumRawEvent.AddViewAttributes -> onAddViewAttributes(event)
241241
is RumRawEvent.RemoveViewAttributes -> onRemoveViewAttributes(event)
242242

243-
is RumRawEvent.StartFeatureOperation -> onStartFeatureOperation(event, datadogContext, writeScope, writer)
244-
is RumRawEvent.StopFeatureOperation -> onStopFeatureOperation(event, datadogContext, writeScope, writer)
243+
is RumRawEvent.StartOperation -> onStartOperation(event, datadogContext, writeScope, writer)
244+
is RumRawEvent.StopOperation -> onStopOperation(event, datadogContext, writeScope, writer)
245245

246246
else -> delegateEventToChildren(event, datadogContext, writeScope, writer)
247247
}
@@ -256,8 +256,8 @@ internal open class RumViewScope(
256256
}
257257
}
258258

259-
private fun onStartFeatureOperation(
260-
event: RumRawEvent.StartFeatureOperation,
259+
private fun onStartOperation(
260+
event: RumRawEvent.StartOperation,
261261
datadogContext: DatadogContext,
262262
writeScope: EventWriteScope,
263263
writer: DataWriter<Any>
@@ -278,8 +278,8 @@ internal open class RumViewScope(
278278
sendViewUpdate(event, datadogContext, writeScope, writer)
279279
}
280280

281-
private fun onStopFeatureOperation(
282-
event: RumRawEvent.StopFeatureOperation,
281+
private fun onStopOperation(
282+
event: RumRawEvent.StopOperation,
283283
datadogContext: DatadogContext,
284284
writeScope: EventWriteScope,
285285
writer: DataWriter<Any>

0 commit comments

Comments
 (0)