Aggregate spans
https://api.datadoghq.com/api/v2/spans/analytics/aggregatehttps://api.us3.datadoghq.com/api/v2/spans/analytics/aggregatehttps://api.us5.datadoghq.com/api/v2/spans/analytics/aggregatehttps://api.datadoghq.eu/api/v2/spans/analytics/aggregatehttps://api.ap1.datadoghq.com/api/v2/spans/analytics/aggregatehttps://api.ap2.datadoghq.com/api/v2/spans/analytics/aggregatehttps://api.uk1.datadoghq.com/api/v2/spans/analytics/aggregatehttps://api.ddog-gov.com/api/v2/spans/analytics/aggregatehttps://api.us2.ddog-gov.com/api/v2/spans/analytics/aggregateOverview
The API endpoint to aggregate spans into buckets and compute metrics and timeseries.
This endpoint is rate limited to 300 requests per hour.
OAuth apps require the apm_read authorization scope to access this endpoint.
Request
Body Data (required)
dataThe object containing the query content.
attributesThe object containing all the query parameters.
computeThe list of metrics or timeseries to compute for the retrieved buckets.
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 spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).
now-15mqueryThe search query - following the span search syntax.
*toThe maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (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 spans 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: You should only supply timezone or time offset but not both otherwise the query will fail.
timeOffsetThe 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).
UTCtypeThe type of resource. The value should always be aggregate_request.
aggregate_requestaggregate_request{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}Response
OK
The response object for the spans aggregate API endpoint.
dataThe list of matching buckets, one item per bucket.
attributesA bucket values.
byThe key, value pairs for each group by.
<any-key>The values for each group by.
computeThe compute data.
computesA map of the metric name -> value for regular compute or 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.
idID of the spans aggregate.
typeThe spans aggregate bucket type.
bucketmetaThe metadata associated with a request.
elapsedThe time elapsed in milliseconds.
request_idThe identifier of the request.
statusThe status of the response.
done, timeoutwarningsA list of warnings (non fatal errors) encountered, partial results might be returned 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": [
{
"attributes": {
"by": {
"<any-key>": "undefined"
},
"compute": {},
"computes": {
"<any-key>": {
"description": "undefined",
"type": "undefined"
}
}
},
"id": "string",
"type": "bucket"
}
],
"meta": {
"elapsed": 132,
"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"
]
}Forbidden
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"
]
}Code Example
# 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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
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/spans/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"compute": [
{
"aggregation": "pc90",
"interval": "5m",
"metric": "@duration",
"type": "timeseries"
}
],
"filter": {
"from": "now-15m",
"query": "service:web* AND @http.status_code:[200 TO 299]",
"to": "now"
},
"group_by": [
{
"facet": "host",
"histogram": {
"interval": 10,
"max": 100,
"min": 50
},
"sort": {
"aggregation": "count",
"order": "asc"
}
}
],
"options": {
"timezone": "GMT"
}
},
"type": "aggregate_request"
}
}
EOF// Aggregate spans 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.SpansAggregateRequest{
Data: &datadogV2.SpansAggregateData{
Attributes: &datadogV2.SpansAggregateRequestAttributes{
Compute: []datadogV2.SpansCompute{
{
Aggregation: datadogV2.SPANSAGGREGATIONFUNCTION_COUNT,
Interval: datadog.PtrString("5m"),
Type: datadogV2.SPANSCOMPUTETYPE_TIMESERIES.Ptr(),
},
},
Filter: &datadogV2.SpansQueryFilter{
From: datadog.PtrString("now-15m"),
Query: datadog.PtrString("*"),
To: datadog.PtrString("now"),
},
},
Type: datadogV2.SPANSAGGREGATEREQUESTTYPE_AGGREGATE_REQUEST.Ptr(),
},
}
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.NewSpansApi(apiClient)
resp, r, err := api.AggregateSpans(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SpansApi.AggregateSpans`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `SpansApi.AggregateSpans`:\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 spans returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SpansApi;
import com.datadog.api.client.v2.model.SpansAggregateData;
import com.datadog.api.client.v2.model.SpansAggregateRequest;
import com.datadog.api.client.v2.model.SpansAggregateRequestAttributes;
import com.datadog.api.client.v2.model.SpansAggregateRequestType;
import com.datadog.api.client.v2.model.SpansAggregateResponse;
import com.datadog.api.client.v2.model.SpansAggregationFunction;
import com.datadog.api.client.v2.model.SpansCompute;
import com.datadog.api.client.v2.model.SpansComputeType;
import com.datadog.api.client.v2.model.SpansQueryFilter;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
SpansApi apiInstance = new SpansApi(defaultClient);
SpansAggregateRequest body =
new SpansAggregateRequest()
.data(
new SpansAggregateData()
.attributes(
new SpansAggregateRequestAttributes()
.compute(
Collections.singletonList(
new SpansCompute()
.aggregation(SpansAggregationFunction.COUNT)
.interval("5m")
.type(SpansComputeType.TIMESERIES)))
.filter(new SpansQueryFilter().from("now-15m").query("*").to("now")))
.type(SpansAggregateRequestType.AGGREGATE_REQUEST));
try {
SpansAggregateResponse result = apiInstance.aggregateSpans(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling SpansApi#aggregateSpans");
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 spans returns "OK" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.spans_api import SpansApi
from datadog_api_client.v2.model.spans_aggregate_data import SpansAggregateData
from datadog_api_client.v2.model.spans_aggregate_request import SpansAggregateRequest
from datadog_api_client.v2.model.spans_aggregate_request_attributes import SpansAggregateRequestAttributes
from datadog_api_client.v2.model.spans_aggregate_request_type import SpansAggregateRequestType
from datadog_api_client.v2.model.spans_aggregation_function import SpansAggregationFunction
from datadog_api_client.v2.model.spans_compute import SpansCompute
from datadog_api_client.v2.model.spans_compute_type import SpansComputeType
from datadog_api_client.v2.model.spans_query_filter import SpansQueryFilter
body = SpansAggregateRequest(
data=SpansAggregateData(
attributes=SpansAggregateRequestAttributes(
compute=[
SpansCompute(
aggregation=SpansAggregationFunction.COUNT,
interval="5m",
type=SpansComputeType.TIMESERIES,
),
],
filter=SpansQueryFilter(
_from="now-15m",
query="*",
to="now",
),
),
type=SpansAggregateRequestType.AGGREGATE_REQUEST,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = SpansApi(api_client)
response = api_instance.aggregate_spans(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 spans returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::SpansAPI.new
body = DatadogAPIClient::V2::SpansAggregateRequest.new({
data: DatadogAPIClient::V2::SpansAggregateData.new({
attributes: DatadogAPIClient::V2::SpansAggregateRequestAttributes.new({
compute: [
DatadogAPIClient::V2::SpansCompute.new({
aggregation: DatadogAPIClient::V2::SpansAggregationFunction::COUNT,
interval: "5m",
type: DatadogAPIClient::V2::SpansComputeType::TIMESERIES,
}),
],
filter: DatadogAPIClient::V2::SpansQueryFilter.new({
from: "now-15m",
query: "*",
to: "now",
}),
}),
type: DatadogAPIClient::V2::SpansAggregateRequestType::AGGREGATE_REQUEST,
}),
})
p api_instance.aggregate_spans(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 spans returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_spans::SpansAPI;
use datadog_api_client::datadogV2::model::SpansAggregateData;
use datadog_api_client::datadogV2::model::SpansAggregateRequest;
use datadog_api_client::datadogV2::model::SpansAggregateRequestAttributes;
use datadog_api_client::datadogV2::model::SpansAggregateRequestType;
use datadog_api_client::datadogV2::model::SpansAggregationFunction;
use datadog_api_client::datadogV2::model::SpansCompute;
use datadog_api_client::datadogV2::model::SpansComputeType;
use datadog_api_client::datadogV2::model::SpansQueryFilter;
#[tokio::main]
async fn main() {
let body = SpansAggregateRequest::new().data(
SpansAggregateData::new()
.attributes(
SpansAggregateRequestAttributes::new()
.compute(vec![SpansCompute::new(SpansAggregationFunction::COUNT)
.interval("5m".to_string())
.type_(SpansComputeType::TIMESERIES)])
.filter(
SpansQueryFilter::new()
.from("now-15m".to_string())
.query("*".to_string())
.to("now".to_string()),
),
)
.type_(SpansAggregateRequestType::AGGREGATE_REQUEST),
);
let configuration = datadog::Configuration::new();
let api = SpansAPI::with_config(configuration);
let resp = api.aggregate_spans(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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run/**
* Aggregate spans 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.SpansApi(configuration);
const params: v2.SpansApiAggregateSpansRequest = {
body: {
data: {
attributes: {
compute: [
{
aggregation: "count",
interval: "5m",
type: "timeseries",
},
],
filter: {
from: "now-15m",
query: "*",
to: "now",
},
},
type: "aggregate_request",
},
},
};
apiInstance
.aggregateSpans(params)
.then((data: v2.SpansAggregateResponse) => {
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"