Agréger des événements RUM
https://api.datadoghq.com/api/v2/rum/analytics/aggregatehttps://api.us3.datadoghq.com/api/v2/rum/analytics/aggregatehttps://api.us5.datadoghq.com/api/v2/rum/analytics/aggregatehttps://api.datadoghq.eu/api/v2/rum/analytics/aggregatehttps://api.ap1.datadoghq.com/api/v2/rum/analytics/aggregatehttps://api.ap2.datadoghq.com/api/v2/rum/analytics/aggregatehttps://api.uk1.datadoghq.com/api/v2/rum/analytics/aggregatehttps://api.ddog-gov.com/api/v2/rum/analytics/aggregatehttps://api.us2.ddog-gov.com/api/v2/rum/analytics/aggregatePrésentation
Endpoint d'API pour agréger les événements RUM sous forme de compartiments composés de métriques et de séries temporelles calculées.
Requête
Body Data (required)
computeL'objet envoyé avec la requête pour récupérer les compartiments d'agrégation des événements RUM de votre organisation.
aggregation [required]An aggregation function.
count, cardinality, pc75, pc90, pc95, pc98, pc99, sum, min, maxShow 2 more
avg, medianintervalThe time buckets' size (only used for type=timeseries) Defaults to a resolution of 150 points.
metricThe metric to use.
typeThe type of compute.
totaltimeseries, totalfilterThe search and filter query settings.
fromThe minimum time for the requested events; supports date (in ISO 8601 format with full date, hours, minutes, and the Z UTC indicator - seconds and fractional seconds are optional), math, and regular timestamps (in milliseconds).
now-15mqueryThe search query following the RUM search syntax.
*toThe maximum time for the requested events; supports date (in ISO 8601 format with full date, hours, minutes, and the Z UTC indicator - seconds and fractional seconds are optional), math, and regular timestamps (in milliseconds).
nowgroup_byThe rules for the group by.
facet [required]The name of the facet to use (required).
histogramUsed to perform a histogram computation (only for measure facets). Note: At most 100 buckets are allowed, the number of buckets is (max - min)/interval.
interval [required]The bin size of the histogram buckets.
max [required]The maximum value for the measure used in the histogram (values greater than this one are filtered out).
min [required]The minimum value for the measure used in the histogram (values smaller than this one are filtered out).
limitThe maximum buckets to return for this group-by.
10missingThe value to use for logs that don't have the facet used to group by.
Object 1The missing value to use if there is string valued facet.
Object 2The missing value to use if there is a number valued facet.
sortA sort rule.
aggregationAn aggregation function.
count, cardinality, pc75, pc90, pc95, pc98, pc99, sum, min, maxShow 2 more
avg, medianmetricThe metric to sort by (only used for type=measure).
orderThe order to use, ascending or descending.
asc, desctypeThe type of sorting algorithm.
alphabeticalalphabetical, measuretotalA resulting object to put the given computes in over all the matching records.
Object 1If set to true, creates an additional bucket labeled "$facet_total".
Object 2A string to use as the key value for the total bucket.
Object 3A number to use as the key value for the total bucket.
optionsGlobal query options that are used during the query. Note: Only supply timezone or time offset, not both. Otherwise, the query fails.
time_offsetThe time offset (in seconds) to apply to the query.
timezoneThe timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).
UTCpagePaging attributes for listing events.
cursorList following results with a cursor provided in the previous query.
limitMaximum number of events in the response.
10{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}Réponse
OK
The response object for the RUM events aggregate API endpoint.
dataThe query results.
bucketsThe list of matching buckets, one item per bucket.
byThe key-value pairs for each group-by.
<any-key>The values for each group-by.
computesA map of the metric name to value for regular compute, or a list of values for a timeseries.
<any-key>A bucket value, can be either a timeseries or a single value.
Object 1A single string value.
Object 2A single number value.
Object 3A timeseries array.
timeThe time value for this point.
valueThe value for this point.
linksLinks attributes.
nextLink for the next set of results. Note that the request can also be made using the POST endpoint.
metaThe metadata associated with a request.
elapsedThe time elapsed in milliseconds.
pagePaging attributes.
afterThe cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of page[cursor].
request_idThe identifier of the request.
statusThe status of the response.
done, timeoutwarningsA list of warnings (non-fatal errors) encountered. Partial results may return if warnings are present in the response.
codeA unique code for this type of warning.
detailA detailed explanation of this specific warning.
titleA short human-readable summary of the warning.
{
"data": {
"buckets": [
{
"by": {
"<any-key>": "string"
},
"computes": {
"<any-key>": {
"description": "undefined",
"type": "undefined"
}
}
}
]
},
"links": {
"next": "https://app.datadoghq.com/api/v2/rum/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ=="
},
"meta": {
"elapsed": 132,
"page": {
"after": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ=="
},
"request_id": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
"status": "done",
"warnings": [
{
"code": "unknown_index",
"detail": "indexes: foo, bar",
"title": "One or several indexes are missing or invalid, results hold data from the other indexes"
}
]
}
}Bad Request
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Not Authorized
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Exemple de code
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/rum/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "pc90",
"metric": "@view.time_spent",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@type:view AND @session.type:user",
"to": "now"
},
"group_by": [
{
"facet": "@view.time_spent",
"limit": 10,
"total": false
}
],
"options": {
"timezone": "GMT"
},
"page": {
"limit": 25
}
}
EOF// Aggregate RUM events 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"
)
func main() {
body := datadogV2.RUMAggregateRequest{
Compute: []datadogV2.RUMCompute{
{
Aggregation: datadogV2.RUMAGGREGATIONFUNCTION_PERCENTILE_90,
Metric: datadog.PtrString("@view.time_spent"),
Type: datadogV2.RUMCOMPUTETYPE_TOTAL.Ptr(),
},
},
Filter: &datadogV2.RUMQueryFilter{
From: datadog.PtrString("now-15m"),
Query: datadog.PtrString("@type:view AND @session.type:user"),
To: datadog.PtrString("now"),
},
GroupBy: []datadogV2.RUMGroupBy{
{
Facet: "@view.time_spent",
Limit: datadog.PtrInt64(10),
Total: &datadogV2.RUMGroupByTotal{
RUMGroupByTotalBoolean: datadog.PtrBool(false)},
},
},
Options: &datadogV2.RUMQueryOptions{
Timezone: datadog.PtrString("GMT"),
},
Page: &datadogV2.RUMQueryPageOptions{
Limit: datadog.PtrInt32(25),
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewRUMApi(apiClient)
resp, r, err := api.AggregateRUMEvents(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `RUMApi.AggregateRUMEvents`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `RUMApi.AggregateRUMEvents`:\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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Aggregate RUM events returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.RumApi;
import com.datadog.api.client.v2.model.RUMAggregateRequest;
import com.datadog.api.client.v2.model.RUMAggregationFunction;
import com.datadog.api.client.v2.model.RUMAnalyticsAggregateResponse;
import com.datadog.api.client.v2.model.RUMCompute;
import com.datadog.api.client.v2.model.RUMComputeType;
import com.datadog.api.client.v2.model.RUMGroupBy;
import com.datadog.api.client.v2.model.RUMGroupByTotal;
import com.datadog.api.client.v2.model.RUMQueryFilter;
import com.datadog.api.client.v2.model.RUMQueryOptions;
import com.datadog.api.client.v2.model.RUMQueryPageOptions;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
RumApi apiInstance = new RumApi(defaultClient);
RUMAggregateRequest body =
new RUMAggregateRequest()
.compute(
Collections.singletonList(
new RUMCompute()
.aggregation(RUMAggregationFunction.PERCENTILE_90)
.metric("@view.time_spent")
.type(RUMComputeType.TOTAL)))
.filter(
new RUMQueryFilter()
.from("now-15m")
.query("@type:view AND @session.type:user")
.to("now"))
.groupBy(
Collections.singletonList(
new RUMGroupBy()
.facet("@view.time_spent")
.limit(10L)
.total(new RUMGroupByTotal(false))))
.options(new RUMQueryOptions().timezone("GMT"))
.page(new RUMQueryPageOptions().limit(25));
try {
RUMAnalyticsAggregateResponse result = apiInstance.aggregateRUMEvents(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling RumApi#aggregateRUMEvents");
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Aggregate RUM events returns "OK" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.rum_api import RUMApi
from datadog_api_client.v2.model.rum_aggregate_request import RUMAggregateRequest
from datadog_api_client.v2.model.rum_aggregation_function import RUMAggregationFunction
from datadog_api_client.v2.model.rum_compute import RUMCompute
from datadog_api_client.v2.model.rum_compute_type import RUMComputeType
from datadog_api_client.v2.model.rum_group_by import RUMGroupBy
from datadog_api_client.v2.model.rum_query_filter import RUMQueryFilter
from datadog_api_client.v2.model.rum_query_options import RUMQueryOptions
from datadog_api_client.v2.model.rum_query_page_options import RUMQueryPageOptions
body = RUMAggregateRequest(
compute=[
RUMCompute(
aggregation=RUMAggregationFunction.PERCENTILE_90,
metric="@view.time_spent",
type=RUMComputeType.TOTAL,
),
],
filter=RUMQueryFilter(
_from="now-15m",
query="@type:view AND @session.type:user",
to="now",
),
group_by=[
RUMGroupBy(
facet="@view.time_spent",
limit=10,
total=False,
),
],
options=RUMQueryOptions(
timezone="GMT",
),
page=RUMQueryPageOptions(
limit=25,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = RUMApi(api_client)
response = api_instance.aggregate_rum_events(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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Aggregate RUM events returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::RUMAPI.new
body = DatadogAPIClient::V2::RUMAggregateRequest.new({
compute: [
DatadogAPIClient::V2::RUMCompute.new({
aggregation: DatadogAPIClient::V2::RUMAggregationFunction::PERCENTILE_90,
metric: "@view.time_spent",
type: DatadogAPIClient::V2::RUMComputeType::TOTAL,
}),
],
filter: DatadogAPIClient::V2::RUMQueryFilter.new({
from: "now-15m",
query: "@type:view AND @session.type:user",
to: "now",
}),
group_by: [
DatadogAPIClient::V2::RUMGroupBy.new({
facet: "@view.time_spent",
limit: 10,
total: false,
}),
],
options: DatadogAPIClient::V2::RUMQueryOptions.new({
timezone: "GMT",
}),
page: DatadogAPIClient::V2::RUMQueryPageOptions.new({
limit: 25,
}),
})
p api_instance.aggregate_rum_events(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Aggregate RUM events returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_rum::RUMAPI;
use datadog_api_client::datadogV2::model::RUMAggregateRequest;
use datadog_api_client::datadogV2::model::RUMAggregationFunction;
use datadog_api_client::datadogV2::model::RUMCompute;
use datadog_api_client::datadogV2::model::RUMComputeType;
use datadog_api_client::datadogV2::model::RUMGroupBy;
use datadog_api_client::datadogV2::model::RUMGroupByTotal;
use datadog_api_client::datadogV2::model::RUMQueryFilter;
use datadog_api_client::datadogV2::model::RUMQueryOptions;
use datadog_api_client::datadogV2::model::RUMQueryPageOptions;
#[tokio::main]
async fn main() {
let body = RUMAggregateRequest::new()
.compute(vec![RUMCompute::new(RUMAggregationFunction::PERCENTILE_90)
.metric("@view.time_spent".to_string())
.type_(RUMComputeType::TOTAL)])
.filter(
RUMQueryFilter::new()
.from("now-15m".to_string())
.query("@type:view AND @session.type:user".to_string())
.to("now".to_string()),
)
.group_by(vec![RUMGroupBy::new("@view.time_spent".to_string())
.limit(10)
.total(RUMGroupByTotal::RUMGroupByTotalBoolean(false))])
.options(RUMQueryOptions::new().timezone("GMT".to_string()))
.page(RUMQueryPageOptions::new().limit(25));
let configuration = datadog::Configuration::new();
let api = RUMAPI::with_config(configuration);
let resp = api.aggregate_rum_events(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.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run/**
* Aggregate RUM events returns "OK" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
const apiInstance = new v2.RUMApi(configuration);
const params: v2.RUMApiAggregateRUMEventsRequest = {
body: {
compute: [
{
aggregation: "pc90",
metric: "@view.time_spent",
type: "total",
},
],
filter: {
from: "now-15m",
query: "@type:view AND @session.type:user",
to: "now",
},
groupBy: [
{
facet: "@view.time_spent",
limit: 10,
total: false,
},
],
options: {
timezone: "GMT",
},
page: {
limit: 25,
},
},
};
apiInstance
.aggregateRUMEvents(params)
.then((data: v2.RUMAnalyticsAggregateResponse) => {
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"