Seguimiento de operaciones

Descripción general

Pestaña de operaciones en RUM > Performance Monitoring

En Datadog Real User Monitoring (RUM), un recorrido representa un área importante de su aplicación orientada al usuario, como el pago, el inicio de sesión o la búsqueda. Cada recorrido incluye operaciones, que son los pasos técnicos críticos que hacen que la experiencia funcione.

  • Los equipos de negocios utilizan recorridos para rastrear y mejorar la conversión de usuarios.
  • Los equipos de ingeniería utilizan operaciones para hacer un seguimiento y minimizar las fallas técnicas que afectan los momentos clave del usuario.

Puede crear operaciones con las API del SDK de RUM, directamente en Datadog o mediante programación con Datadog API.

Por ejemplo, la experiencia de pago de una plataforma de comercio electrónico es un recorrido. Dentro de él, las operaciones pueden incluir ingresar los detalles de pago, guardar un método de pago y completar una compra. Después de crear las operaciones, Datadog RUM mide el rendimiento de cada operación, incluido el volumen de ejecución, la tasa de finalización y la tasa de fallas. Medir el estado de las operaciones le permite identificar exactamente cuándo y por qué los usuarios pueden no convertir en su recorrido.

La siguiente tabla muestra ejemplos adicionales de recorridos y sus operaciones de recorrido asociadas por industria.

IndustriaRecorridoOperaciones de recorrido
Red socialPerfilLos usuarios pueden cargar su perfil
Los usuarios pueden subir una imagen
Los usuarios pueden actualizar su estado
Comercio electrónicoPagoLos usuarios pueden ingresar los detalles de pago
Los usuarios pueden guardar su método de pago
Los usuarios pueden pagar
StreamingBúsquedaLos usuarios pueden encontrar resultados para su búsqueda
Los usuarios pueden cargar la descripción de un título
Los usuarios pueden comenzar a ver el tráiler
CRMCotizaciónLos usuarios pueden iniciar una nueva cotización
Los usuarios pueden agregar partidas a la cotización
Los usuarios pueden enviar una cotización a los destinatarios

Requisitos previos

Crear operaciones con las API del SDK

Utilice las API del SDK para definir sus operaciones.

Iniciar una operación

Toda operación debe iniciarse llamando a startOperation (algunos SDK pueden usar el nombre heredado de esta API - startFeatureOperation).

DD_RUM.init({
...,
enableExperimentalFeatures: ["feature_operation_vital"], // you need to have this flag turned on for the API to work
})

startFeatureOperation: (
name: string,
options?: {
 operationKey?: string,
 context?: Context,
 description?: string,
}) => void
GlobalRumMonitor.get().startOperation(
	name: String,
	operationKey: String?,
	options: OperationOptions,
	attributes: Map<String, Any?>
)
RUMMonitor.shared().startOperation(
	name: String,
	operationKey: String?,
	attributes: [AttributeKey: AttributeValue]?,
	options: OperationOptions?
)
DdRum.startFeatureOperation(
	name: string,
	operationKey?: string,
	attributes?: Record<string, any>
)
DatadogSdk.instance.rum?.startFeatureOperation(
    String name, {
    String? operationKey,
    Map<String, Object?> attributes = const {},
  }
)

Para usar operaciones en Flutter Web, habilite la función experimental feature_operation_vital en el Browser SDK.

m.global.datadogRumAgent@.startOperation(
    name as string,
    operationKey = invalid as dynamic, ' optional: string or invalid for unkeyed operations
    context = {} as object             ' optional: AssocArray of custom attributes
)
El nombre de la operación solo puede contener letras, dígitos o los caracteres - _ . @ $, y no puede contener espacios en blanco.

Detener una operación con éxito

Toda operación iniciada debe tener una detención. Use succeedOperation para detener una operación con un resultado exitoso (algunos SDK pueden usar el nombre heredado de esta API - succeedFeatureOperation).

succeedFeatureOperation: (
name: string,
options?: {
 operationKey?: string,
 context?: Context,
 description?: string,
}) => void
GlobalRumMonitor.get().succeedOperation(
	name: String,
	operationKey: String?,
	attributes: Map<String, Any?>
)
RUMMonitor.shared().succeedOperation(
	name: String,
	operationKey: String?,
	attributes: [AttributeKey: AttributeValue]?
)
DdRum.succeedFeatureOperation(
	name: string,
	operationKey?: string,
	attributes?: Record<string, any>
)
DatadogSdk.instance.rum?.succeedFeatureOperation(
    String name, {
    String? operationKey,
    Map<String, Object?> attributes = const {},
  }
)

Para usar operaciones en Flutter Web, habilite la función experimental feature_operation_vital en el Browser SDK.

m.global.datadogRumAgent@.succeedOperation(
    name as string,
    operationKey = invalid as dynamic, ' optional: string or invalid for unkeyed operations
    context = {} as object             ' optional: AssocArray of custom attributes
)
El operationKey debe ser el mismo en el evento de inicio y fin de la operación.

Detener una operación con error

Toda operación iniciada debe tener una detención. Use failOperation para detener una operación con un resultado de error (algunos SDK pueden usar el nombre heredado de esta API - failFeatureOperation).

DD_RUM.init({
...,
enableExperimentalFeatures: ["feature_operation_vital"], // this flag needs to be enabled for the API to work
})

failFeatureOperation: (
name: string, 
failureReason: FailureReason, //'error' | 'abandoned' | 'other'
options?: {
 operationKey?: string,
 context?: Context,
 description?: string,
}) => void
GlobalRumMonitor.get().failOperation(
	name: String,
	operationKey: String?,
	failureReason: FailureReason,	// ERROR, ABANDONED, OTHER
	attributes: Map<String, Any?>
)
RUMMonitor.shared().failOperation(
	name: String,
	operationKey: String?,
    reason: RUMFeatureOperationFailureReason,  // .error, .abandoned, .other
	attributes: [AttributeKey: AttributeValue]
)
m.global.datadogRumAgent@.failOperation(
    name as string,
    failureReason as string,           ' "error", "abandoned", or "other"
    operationKey = invalid as dynamic, ' optional: string or invalid for unkeyed operations
    context = {} as object             ' optional: AssocArray of custom attributes
)
DdRum.failFeatureOperation(
	name: string,
	operationKey?: string,
	reason: FeatureOperationFailure, // 'ERROR' | 'ABANDONED' | 'OTHER'
	attributes: Record<string, any>
)
DatadogSdk.instance.rum?.failFeatureOperation(
    String name,
    RumFeatureOperationFailureReason failureReason, // .error, .abandoned, .other
    {
    String? operationKey,
    Map<String, Object?> attributes = const {},
  }
)

Para usar operaciones en Flutter Web, habilite la función experimental feature_operation_vital en el Browser SDK.

Paralelización

Es posible que tenga casos en los que los usuarios inicien varias operaciones de recorrido en paralelo. Para rastrearlos individualmente, utilice el operationKey definido al llamar a startOperation. Debe reutilizar el mismo operationKey más adelante en otras API, por ejemplo, al llamar a succeedOperation.

Las operaciones que se han iniciado pero no se han detenido explícitamente se terminan automáticamente cuando expira la sesión RUM. Esas se marcan como fallidas, con @operation.failure_reason:timeout.

Si se llamó a una API de detención de operación que no se inició en primer lugar, el evento de detención emitido por el SDK se descarta durante la ingesta.

Crear operaciones desde Datadog

Puede crear una operación desde el catálogo de operaciones o desde el informe de detalles de un recorrido:

  • Catálogo de operaciones: Navegue a RUM > Operations, luego haga clic en New Operation
  • Journey Monitoring: Navegue a Digital Experience > Journey Monitoring, seleccione un recorrido, navegue a su Details Report, luego haga clic en New Operation
Página para crear operaciones desde la interfaz de usuario de Datadog
Cada aplicación RUM admite hasta 1000 operaciones creadas desde Datadog a través de la interfaz de usuario o la API. No existe un límite a nivel de organización para las operaciones creadas directamente en Datadog.

Paso 1: Ingrese los detalles de la operación y seleccione la categoría de la operación

Seleccione la aplicación RUM de la operación e ingrese un nombre para mostrar. Opcionalmente, puede agregar una descripción a la operación.

Seleccione la categoría de la operación para determinar los tipos de eventos RUM compatibles con las condiciones de inicio, éxito y falla.

Categoría de operaciónResumenTipos de eventos compatibles
Carga de componentesMida cuánto tiempo tarda en completarse una acción iniciada por el usuarioInicio: Acción
Éxito: Recurso o acción personalizada
Falla: Recurso, error o acción personalizada
Envío de formularioMida cuánto tiempo tarda en completarse un envío de formulario o una mutaciónInicio: Acción
Éxito: Recurso, visualización o acción personalizada
Falla: Recurso, error o acción personalizada
Carga de página o pantallaMida cuánto tiempo tarda una página o pantalla en cargar y mostrar datosInicio: Visualización
Éxito: Recurso, visualización o acción personalizada
Error: Recurso, error o acción personalizada
Navegación de página o pantallaMida cuánto tiempo tarda en completarse una navegación de una página o pantalla a otraInicio: Acción o visualización
Éxito: Recurso, visualización o acción personalizada
Error: Recurso, error o acción personalizada
PersonalizadaDefina una operación personalizada con cualquier combinación de tipos de eventosInicio: Acción o visualización
Éxito: Recurso, visualización o acción personalizada
Error: Recurso, error o acción personalizada

Paso 2: Defina el evento de inicio

Cada operación debe tener un evento RUM de inicio. Las operaciones pueden comenzar con un evento de acción o de visualización, según la categoría de operación seleccionada.

Paso 3: Defina las condiciones de éxito

Cada operación debe tener una condición para finalizar en un éxito. Las operaciones pueden finalizar en éxito con un evento de recurso, visualización o acción personalizada, según la categoría de operación seleccionada.

Paso 4: Defina las condiciones de error

Cada operación debe tener una condición para finalizar en un error:

  • Error los errores pueden finalizar como un recurso, error o acción personalizada.
  • Abandono los errores se pueden activar en caso de que el usuario navegue fuera de la visualización inicial antes de que finalice la operación.
Espere hasta 15 minutos para que las métricas aparezcan en el catálogo de operaciones después de crear una operación en Datadog a través de la interfaz de usuario o la Datadog API.

Cree operaciones con la Datadog API

Las operaciones también se pueden crear a través de la Datadog API.

Edite operaciones

En el catálogo de operaciones, haga clic en el icono del lápiz para editar una operación. Puede editar la descripción de cualquier operación, independientemente de cómo se haya creado. Las operaciones creadas a través de la interfaz de usuario o la API se pueden editar por completo (no solo la descripción).

Haga un seguimiento de su disponibilidad en Datadog

Pestaña de operaciones en RUM > Performance Monitoring

Después de crear operaciones con el SDK de RUM, directamente en Datadog, o con la Datadog API, haga un seguimiento de ellas navegando a RUM > Performance Monitoring > Operations.

Datadog agrupa todas las operaciones con el mismo nombre en un catálogo.

Cada operación tiene dos métricas predeterminadas calculadas sobre su tráfico completo, ingerido y sin muestreo:

  • rum.measure.operation, que cuenta el volumen de operaciones reportadas a Datadog
  • rum.measure.operation.duration, que mide el tiempo transcurrido entre el inicio y el final de todas las operaciones reportadas a Datadog

Ambas métricas se conservan durante 15 meses e incluyen varias dimensiones:

  • operation.name, que se define en el lado del cliente
  • operation.status, que es éxito o fracaso
  • operation.failure_reason, que puede ser un error, un abandono u otro

Esas métricas están incluidas en el precio de RUM Measure y están disponibles para todos los clientes de RUM without Limits que definan una o más operaciones.

Investigue las causas raíz con IA

Puede ejecutar una investigación con el agente sobre una sola operación directamente desde la página de Operaciones. El agente analiza tanto la tasa de éxito como la latencia de la operación y presenta investigaciones enfocadas para cada modo de falla (errores, tiempos de espera, abandono) y para regresiones de latencia. Para obtener más información, consulte Operation AI Investigation.

Configure filtros de retención

Las operaciones son un nuevo tipo de evento en RUM. Las operaciones están vinculadas a una sesión de RUM, pero pueden representar múltiples RUM Views. Las operaciones pueden ser seleccionadas en filtros de retención. Esto le permite alinear su estrategia de retención con los recorridos que son fundamentales para la experiencia de sus usuarios. Por ejemplo, puede mantener mediante programación las sesiones RUM en las que fallaron operaciones específicas o que tardan más de lo deseado.

Pestaña de operaciones en RUM > Performance Monitoring

De manera similar a las métricas, esos eventos incluyen atributos específicos que puede utilizar en los filtros de retención:

  • @operation.name
  • @operation.status
  • @operation.failure_reason
  • @operation.duration
  • @operation.start_view.name
  • @operation.end_view.name

Lecturas adicionales