Create a RUM operation

Note: This endpoint is in Preview and is subject to change. If you have any feedback, contact Datadog support.

POST https://api.ap1.datadoghq.com/api/v2/rum/operationshttps://api.ap2.datadoghq.com/api/v2/rum/operationshttps://api.datadoghq.eu/api/v2/rum/operationshttps://api.ddog-gov.com/api/v2/rum/operationshttps://api.us2.ddog-gov.com/api/v2/rum/operationshttps://api.uk1.datadoghq.com/api/v2/rum/operationshttps://api.datadoghq.com/api/v2/rum/operationshttps://api.us3.datadoghq.com/api/v2/rum/operationshttps://api.us5.datadoghq.com/api/v2/rum/operations

Overview

Create a new RUM operation, defining the journey used to detect it from RUM events.

Request

Body Data (required)

Expand All

Field

Type

Description

data [required]

object

The data object for creating a RUM operation.

attributes [required]

object

Attributes for creating or updating a RUM operation.

application_id

uuid

The RUM application ID the operation belongs to.

category

string

The category of the RUM operation.

description

string

A description of the RUM operation.

display_name

string

A human-readable display name for the RUM operation.

feature_ids

[string]

The list of feature IDs associated with the RUM operation.

journey_rum [required]

object

The definition of a RUM operation's journey, used to detect it from RUM events.

rum_steps [required]

[object]

The ordered list of steps composing the RUM journey.

composite

object

A composite rule combining several predicates. Used as an alternative to nodes on a journey step when several conditions must be matched together, in any order or in a specific order.

composite_rule_id

string

The unique identifier of the composite rule. Generated by the server if omitted.

config_version

string

A hash of the composite rule's configuration, computed by the server.

kind [required]

enum

The rule used to combine the composite rule's predicates. all_of requires every predicate to match, in any order. in_order requires every predicate to match in the given order. Allowed enum values: all_of,in_order

max_window_ms

int64

The maximum time window, in milliseconds, in which all predicates must match.

predicates [required]

[object]

The list of predicates that must be matched by RUM events.

query [required]

string

The RUM search query used to match events for this predicate.

nodes

[object]

The list of nodes that can match this step. Mutually exclusive with composite.

id

string

The unique identifier of the node. Generated by the server if omitted.

query [required]

string

The RUM search query used to match events for this node.

type [required]

enum

The type of a step within a RUM operation's journey. Allowed enum values: start,update,stop,error,abandoned

name [required]

string

The unique name of the RUM operation. Must not contain spaces.

tags [required]

[string]

A list of tags associated with the RUM operation.

type [required]

enum

The JSON:API type for RUM operation resources. Allowed enum values: operations

{
  "data": {
    "attributes": {
      "application_id": "abc12345-1234-5678-abcd-ef1234567890",
      "category": "string",
      "description": "string",
      "display_name": "Checkout completed",
      "feature_ids": [],
      "journey_rum": {
        "rum_steps": [
          {
            "composite": {
              "kind": "all_of",
              "max_window_ms": 30000,
              "predicates": [
                {
                  "query": "@type:action @action.type:click"
                }
              ]
            },
            "nodes": [
              {
                "query": "@type:action @action.type:click"
              }
            ],
            "type": "start"
          }
        ]
      },
      "name": "checkout_completed",
      "tags": [
        "team:checkout"
      ]
    },
    "type": "operations"
  }
}

Response

OK

The response for a single RUM operation.

Expand All

Field

Type

Description

data [required]

object

The data object in a RUM operation response.

attributes [required]

object

Attributes of a RUM operation response.

application_id

uuid

The RUM application ID the operation belongs to.

category

string

The category of the RUM operation.

created_at

date-time

The timestamp when the RUM operation was created.

created_by

object

A Datadog user referenced by a RUM operation.

email

string

The email of the user.

handle

string

The handle of the user.

name

string

The name of the user.

uuid

string

The UUID of the user.

description

string

A description of the RUM operation.

display_name

string

A human-readable display name for the RUM operation.

feature_ids

[string]

The list of feature IDs associated with the RUM operation.

journey_rum [required]

object

The definition of a RUM operation's journey, used to detect it from RUM events.

rum_steps [required]

[object]

The ordered list of steps composing the RUM journey.

composite

object

A composite rule combining several predicates. Used as an alternative to nodes on a journey step when several conditions must be matched together, in any order or in a specific order.

composite_rule_id

string

The unique identifier of the composite rule. Generated by the server if omitted.

config_version

string

A hash of the composite rule's configuration, computed by the server.

kind [required]

enum

The rule used to combine the composite rule's predicates. all_of requires every predicate to match, in any order. in_order requires every predicate to match in the given order. Allowed enum values: all_of,in_order

max_window_ms

int64

The maximum time window, in milliseconds, in which all predicates must match.

predicates [required]

[object]

The list of predicates that must be matched by RUM events.

query [required]

string

The RUM search query used to match events for this predicate.

nodes

[object]

The list of nodes that can match this step. Mutually exclusive with composite.

id

string

The unique identifier of the node. Generated by the server if omitted.

query [required]

string

The RUM search query used to match events for this node.

type [required]

enum

The type of a step within a RUM operation's journey. Allowed enum values: start,update,stop,error,abandoned

name [required]

string

The unique name of the RUM operation. Must not contain spaces.

org_id

int64

The ID of the organization the RUM operation belongs to.

tags [required]

[string]

A list of tags associated with the RUM operation.

updated_at

date-time

The timestamp when the RUM operation was last updated.

updated_by

object

A Datadog user referenced by a RUM operation.

email

string

The email of the user.

handle

string

The handle of the user.

name

string

The name of the user.

uuid

string

The UUID of the user.

id [required]

string

The unique identifier of the RUM operation.

type [required]

enum

The JSON:API type for RUM operation resources. Allowed enum values: operations

{
  "data": {
    "attributes": {
      "application_id": "string",
      "category": "string",
      "created_at": "2019-09-19T10:00:00.000Z",
      "created_by": {
        "email": "string",
        "handle": "string",
        "name": "string",
        "uuid": "string"
      },
      "description": "string",
      "display_name": "Checkout completed",
      "feature_ids": [],
      "journey_rum": {
        "rum_steps": [
          {
            "composite": {
              "composite_rule_id": "string",
              "config_version": "string",
              "kind": "all_of",
              "max_window_ms": 30000,
              "predicates": [
                {
                  "query": "@type:action @action.type:click"
                }
              ]
            },
            "nodes": [
              {
                "id": "string",
                "query": "@type:action @action.type:click"
              }
            ],
            "type": "start"
          }
        ]
      },
      "name": "checkout_completed",
      "org_id": "integer",
      "tags": [
        "team:checkout"
      ],
      "updated_at": "2019-09-19T10:00:00.000Z",
      "updated_by": {
        "email": "string",
        "handle": "string",
        "name": "string",
        "uuid": "string"
      }
    },
    "id": "abc12345-1234-5678-abcd-ef1234567890",
    "type": "operations"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Conflict. An operation with this name already exists.

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  # Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/rum/operations" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "attributes": { "journey_rum": { "rum_steps": [ { "composite": { "kind": "all_of", "predicates": [ { "query": "@type:action @action.type:click" } ] }, "nodes": [ { "query": "@type:action @action.type:click" } ], "type": "start" } ] }, "name": "checkout_completed", "tags": [ "team:checkout" ] }, "type": "operations" } } EOF
"""
Create a RUM operation returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.rum_operations_api import RUMOperationsApi
from datadog_api_client.v2.model.rum_operation_create_request import RUMOperationCreateRequest
from datadog_api_client.v2.model.rum_operation_create_request_data import RUMOperationCreateRequestData
from datadog_api_client.v2.model.rum_operation_journey_composite_rule import RUMOperationJourneyCompositeRule
from datadog_api_client.v2.model.rum_operation_journey_composite_rule_kind import RUMOperationJourneyCompositeRuleKind
from datadog_api_client.v2.model.rum_operation_journey_node import RUMOperationJourneyNode
from datadog_api_client.v2.model.rum_operation_journey_predicate import RUMOperationJourneyPredicate
from datadog_api_client.v2.model.rum_operation_journey_rum import RUMOperationJourneyRum
from datadog_api_client.v2.model.rum_operation_journey_step import RUMOperationJourneyStep
from datadog_api_client.v2.model.rum_operation_journey_step_type import RUMOperationJourneyStepType
from datadog_api_client.v2.model.rum_operation_request_attributes import RUMOperationRequestAttributes
from datadog_api_client.v2.model.rum_operation_type import RUMOperationType
from uuid import UUID

body = RUMOperationCreateRequest(
    data=RUMOperationCreateRequestData(
        attributes=RUMOperationRequestAttributes(
            application_id=UUID("abc12345-1234-5678-abcd-ef1234567890"),
            category=None,
            description=None,
            display_name="Checkout completed",
            feature_ids=[],
            journey_rum=RUMOperationJourneyRum(
                rum_steps=[
                    RUMOperationJourneyStep(
                        composite=RUMOperationJourneyCompositeRule(
                            kind=RUMOperationJourneyCompositeRuleKind.ALL_OF,
                            max_window_ms=30000,
                            predicates=[
                                RUMOperationJourneyPredicate(
                                    query="@type:action @action.type:click",
                                ),
                            ],
                        ),
                        nodes=[
                            RUMOperationJourneyNode(
                                query="@type:action @action.type:click",
                            ),
                        ],
                        type=RUMOperationJourneyStepType.START,
                    ),
                ],
            ),
            name="checkout_completed",
            tags=[
                "team:checkout",
            ],
        ),
        type=RUMOperationType.OPERATIONS,
    ),
)

configuration = Configuration()
configuration.unstable_operations["create_rum_operation"] = True
with ApiClient(configuration) as api_client:
    api_instance = RUMOperationsApi(api_client)
    response = api_instance.create_rum_operation(body=body)

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
# Create a RUM operation returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.create_rum_operation".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RUMOperationsAPI.new

body = DatadogAPIClient::V2::RUMOperationCreateRequest.new({
  data: DatadogAPIClient::V2::RUMOperationCreateRequestData.new({
    attributes: DatadogAPIClient::V2::RUMOperationRequestAttributes.new({
      application_id: "abc12345-1234-5678-abcd-ef1234567890",
      category: nil,
      description: nil,
      display_name: "Checkout completed",
      feature_ids: [],
      journey_rum: DatadogAPIClient::V2::RUMOperationJourneyRum.new({
        rum_steps: [
          DatadogAPIClient::V2::RUMOperationJourneyStep.new({
            composite: DatadogAPIClient::V2::RUMOperationJourneyCompositeRule.new({
              kind: DatadogAPIClient::V2::RUMOperationJourneyCompositeRuleKind::ALL_OF,
              max_window_ms: 30000,
              predicates: [
                DatadogAPIClient::V2::RUMOperationJourneyPredicate.new({
                  query: "@type:action @action.type:click",
                }),
              ],
            }),
            nodes: [
              DatadogAPIClient::V2::RUMOperationJourneyNode.new({
                query: "@type:action @action.type:click",
              }),
            ],
            type: DatadogAPIClient::V2::RUMOperationJourneyStepType::START,
          }),
        ],
      }),
      name: "checkout_completed",
      tags: [
        "team:checkout",
      ],
    }),
    type: DatadogAPIClient::V2::RUMOperationType::OPERATIONS,
  }),
})
p api_instance.create_rum_operation(body)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
// Create a RUM operation returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
	"github.com/google/uuid"
)

func main() {
	body := datadogV2.RUMOperationCreateRequest{
		Data: datadogV2.RUMOperationCreateRequestData{
			Attributes: datadogV2.RUMOperationRequestAttributes{
				ApplicationId: datadog.PtrUUID(uuid.MustParse("abc12345-1234-5678-abcd-ef1234567890")),
				Category:      *datadog.NewNullableString(nil),
				Description:   *datadog.NewNullableString(nil),
				DisplayName:   datadog.PtrString("Checkout completed"),
				FeatureIds:    []string{},
				JourneyRum: datadogV2.RUMOperationJourneyRum{
					RumSteps: []datadogV2.RUMOperationJourneyStep{
						{
							Composite: &datadogV2.RUMOperationJourneyCompositeRule{
								Kind:        datadogV2.RUMOPERATIONJOURNEYCOMPOSITERULEKIND_ALL_OF,
								MaxWindowMs: datadog.PtrInt64(30000),
								Predicates: []datadogV2.RUMOperationJourneyPredicate{
									{
										Query: "@type:action @action.type:click",
									},
								},
							},
							Nodes: []datadogV2.RUMOperationJourneyNode{
								{
									Query: "@type:action @action.type:click",
								},
							},
							Type: datadogV2.RUMOPERATIONJOURNEYSTEPTYPE_START,
						},
					},
				},
				Name: "checkout_completed",
				Tags: []string{
					"team:checkout",
				},
			},
			Type: datadogV2.RUMOPERATIONTYPE_OPERATIONS,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.CreateRUMOperation", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewRUMOperationsApi(apiClient)
	resp, r, err := api.CreateRUMOperation(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `RUMOperationsApi.CreateRUMOperation`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `RUMOperationsApi.CreateRUMOperation`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
// Create a RUM operation returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.RumOperationsApi;
import com.datadog.api.client.v2.model.RUMOperationCreateRequest;
import com.datadog.api.client.v2.model.RUMOperationCreateRequestData;
import com.datadog.api.client.v2.model.RUMOperationJourneyCompositeRule;
import com.datadog.api.client.v2.model.RUMOperationJourneyCompositeRuleKind;
import com.datadog.api.client.v2.model.RUMOperationJourneyNode;
import com.datadog.api.client.v2.model.RUMOperationJourneyPredicate;
import com.datadog.api.client.v2.model.RUMOperationJourneyRum;
import com.datadog.api.client.v2.model.RUMOperationJourneyStep;
import com.datadog.api.client.v2.model.RUMOperationJourneyStepType;
import com.datadog.api.client.v2.model.RUMOperationRequestAttributes;
import com.datadog.api.client.v2.model.RUMOperationResponse;
import com.datadog.api.client.v2.model.RUMOperationType;
import java.util.Collections;
import java.util.UUID;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setUnstableOperationEnabled("v2.createRUMOperation", true);
    RumOperationsApi apiInstance = new RumOperationsApi(defaultClient);

    RUMOperationCreateRequest body =
        new RUMOperationCreateRequest()
            .data(
                new RUMOperationCreateRequestData()
                    .attributes(
                        new RUMOperationRequestAttributes()
                            .applicationId(UUID.fromString("abc12345-1234-5678-abcd-ef1234567890"))
                            .category(null)
                            .description(null)
                            .displayName("Checkout completed")
                            .journeyRum(
                                new RUMOperationJourneyRum()
                                    .rumSteps(
                                        Collections.singletonList(
                                            new RUMOperationJourneyStep()
                                                .composite(
                                                    new RUMOperationJourneyCompositeRule()
                                                        .kind(
                                                            RUMOperationJourneyCompositeRuleKind
                                                                .ALL_OF)
                                                        .maxWindowMs(30000L)
                                                        .predicates(
                                                            Collections.singletonList(
                                                                new RUMOperationJourneyPredicate()
                                                                    .query(
                                                                        "@type:action"
                                                                            + " @action.type:click"))))
                                                .nodes(
                                                    Collections.singletonList(
                                                        new RUMOperationJourneyNode()
                                                            .query(
                                                                "@type:action @action.type:click")))
                                                .type(RUMOperationJourneyStepType.START))))
                            .name("checkout_completed")
                            .tags(Collections.singletonList("team:checkout")))
                    .type(RUMOperationType.OPERATIONS));

    try {
      RUMOperationResponse result = apiInstance.createRUMOperation(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling RumOperationsApi#createRUMOperation");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
// Create a RUM operation returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_rum_operations::RUMOperationsAPI;
use datadog_api_client::datadogV2::model::RUMOperationCreateRequest;
use datadog_api_client::datadogV2::model::RUMOperationCreateRequestData;
use datadog_api_client::datadogV2::model::RUMOperationJourneyCompositeRule;
use datadog_api_client::datadogV2::model::RUMOperationJourneyCompositeRuleKind;
use datadog_api_client::datadogV2::model::RUMOperationJourneyNode;
use datadog_api_client::datadogV2::model::RUMOperationJourneyPredicate;
use datadog_api_client::datadogV2::model::RUMOperationJourneyRum;
use datadog_api_client::datadogV2::model::RUMOperationJourneyStep;
use datadog_api_client::datadogV2::model::RUMOperationJourneyStepType;
use datadog_api_client::datadogV2::model::RUMOperationRequestAttributes;
use datadog_api_client::datadogV2::model::RUMOperationType;
use uuid::Uuid;

#[tokio::main]
async fn main() {
    let body = RUMOperationCreateRequest::new(RUMOperationCreateRequestData::new(
        RUMOperationRequestAttributes::new(
            RUMOperationJourneyRum::new(vec![RUMOperationJourneyStep::new(
                RUMOperationJourneyStepType::START,
            )
            .composite(
                RUMOperationJourneyCompositeRule::new(
                    RUMOperationJourneyCompositeRuleKind::ALL_OF,
                    vec![RUMOperationJourneyPredicate::new(
                        "@type:action @action.type:click".to_string(),
                    )],
                )
                .max_window_ms(30000),
            )
            .nodes(vec![RUMOperationJourneyNode::new(
                "@type:action @action.type:click".to_string(),
            )])]),
            "checkout_completed".to_string(),
            vec!["team:checkout".to_string()],
        )
        .application_id(
            Uuid::parse_str("abc12345-1234-5678-abcd-ef1234567890").expect("invalid UUID"),
        )
        .category(None)
        .description(None)
        .display_name("Checkout completed".to_string())
        .feature_ids(vec![]),
        RUMOperationType::OPERATIONS,
    ));
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.CreateRUMOperation", true);
    let api = RUMOperationsAPI::with_config(configuration);
    let resp = api.create_rum_operation(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * Create a RUM operation returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.createRUMOperation"] = true;
const apiInstance = new v2.RUMOperationsApi(configuration);

const params: v2.RUMOperationsApiCreateRUMOperationRequest = {
  body: {
    data: {
      attributes: {
        applicationId: "abc12345-1234-5678-abcd-ef1234567890",
        category: undefined,
        description: undefined,
        displayName: "Checkout completed",
        featureIds: [],
        journeyRum: {
          rumSteps: [
            {
              composite: {
                kind: "all_of",
                maxWindowMs: 30000,
                predicates: [
                  {
                    query: "@type:action @action.type:click",
                  },
                ],
              },
              nodes: [
                {
                  query: "@type:action @action.type:click",
                },
              ],
              type: "start",
            },
          ],
        },
        name: "checkout_completed",
        tags: ["team:checkout"],
      },
      type: "operations",
    },
  },
};

apiInstance
  .createRUMOperation(params)
  .then((data: v2.RUMOperationResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"