Agregar eventos de tests
https://api.datadoghq.com/api/v2/ci/tests/analytics/aggregatehttps://api.us3.datadoghq.com/api/v2/ci/tests/analytics/aggregatehttps://api.us5.datadoghq.com/api/v2/ci/tests/analytics/aggregatehttps://api.datadoghq.eu/api/v2/ci/tests/analytics/aggregatehttps://api.ap1.datadoghq.com/api/v2/ci/tests/analytics/aggregatehttps://api.ap2.datadoghq.com/api/v2/ci/tests/analytics/aggregatehttps://api.uk1.datadoghq.com/api/v2/ci/tests/analytics/aggregatehttps://api.ddog-gov.com/api/v2/ci/tests/analytics/aggregatehttps://api.us2.ddog-gov.com/api/v2/ci/tests/analytics/aggregateDescripción general
El endpoint de la API para agregar eventos de test de CI Visibility en buckets de métricas calculadas y series temporales.
OAuth apps require one of the following authorization scopes to access this endpoint: ci_visibility_read, test_optimization_read.
Solicitud
Body Data (required)
computeEl objeto enviado con la solicitud para recuperar los buckets de agregación de los eventos de test de tu organización.
aggregation [required]An aggregation function.
count, cardinality, pc75, pc90, pc95, pc98, pc99, sum, min, maxShow 6 more
avg, median, latest, earliest, most_frequent, deltaintervalThe 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, math, and regular timestamps (in milliseconds).
now-15mqueryThe search query following the CI Visibility Explorer search syntax.
*toThe maximum time for the requested events, supports date, 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).
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 a string valued facet.
Object 2The missing value to use if there is a number valued facet.
sortA sort rule. The aggregation field is required when type is measure.
aggregationAn aggregation function.
count, cardinality, pc75, pc90, pc95, pc98, pc99, sum, min, maxShow 6 more
avg, median, latest, earliest, most_frequent, deltametricThe 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. 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).
UTC{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}Respuesta
OK
The response object for the test 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 either be 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. 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>": "undefined"
},
"computes": {
"<any-key>": {
"description": "undefined",
"type": "undefined"
}
}
}
]
},
"links": {
"next": "https://app.datadoghq.com/api/v2/ci/tests/events?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"
]
}Ejemplo de código
# 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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
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/ci/tests/analytics/aggregate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"compute": [
{
"aggregation": "count",
"metric": "@test.is_flaky",
"type": "total"
}
],
"filter": {
"from": "now-15m",
"query": "@language:(python OR go)",
"to": "now"
},
"group_by": [
{
"facet": "@git.branch",
"limit": 10,
"sort": {
"order": "asc"
},
"total": false
}
],
"options": {
"timezone": "GMT"
}
}
EOF// Aggregate tests 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.CIAppTestsAggregateRequest{
Compute: []datadogV2.CIAppCompute{
{
Aggregation: datadogV2.CIAPPAGGREGATIONFUNCTION_COUNT,
Metric: datadog.PtrString("@test.is_flaky"),
Type: datadogV2.CIAPPCOMPUTETYPE_TOTAL.Ptr(),
},
},
Filter: &datadogV2.CIAppTestsQueryFilter{
From: datadog.PtrString("now-15m"),
Query: datadog.PtrString("@language:(python OR go)"),
To: datadog.PtrString("now"),
},
GroupBy: []datadogV2.CIAppTestsGroupBy{
{
Facet: "@git.branch",
Limit: datadog.PtrInt64(10),
Sort: &datadogV2.CIAppAggregateSort{
Order: datadogV2.CIAPPSORTORDER_ASCENDING.Ptr(),
},
Total: &datadogV2.CIAppGroupByTotal{
CIAppGroupByTotalBoolean: datadog.PtrBool(false)},
},
},
Options: &datadogV2.CIAppQueryOptions{
Timezone: datadog.PtrString("GMT"),
},
}
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.NewCIVisibilityTestsApi(apiClient)
resp, r, err := api.AggregateCIAppTestEvents(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `CIVisibilityTestsApi.AggregateCIAppTestEvents`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `CIVisibilityTestsApi.AggregateCIAppTestEvents`:\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 tests events returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.CiVisibilityTestsApi;
import com.datadog.api.client.v2.model.CIAppAggregateSort;
import com.datadog.api.client.v2.model.CIAppAggregationFunction;
import com.datadog.api.client.v2.model.CIAppCompute;
import com.datadog.api.client.v2.model.CIAppComputeType;
import com.datadog.api.client.v2.model.CIAppGroupByTotal;
import com.datadog.api.client.v2.model.CIAppQueryOptions;
import com.datadog.api.client.v2.model.CIAppSortOrder;
import com.datadog.api.client.v2.model.CIAppTestsAggregateRequest;
import com.datadog.api.client.v2.model.CIAppTestsAnalyticsAggregateResponse;
import com.datadog.api.client.v2.model.CIAppTestsGroupBy;
import com.datadog.api.client.v2.model.CIAppTestsQueryFilter;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
CiVisibilityTestsApi apiInstance = new CiVisibilityTestsApi(defaultClient);
CIAppTestsAggregateRequest body =
new CIAppTestsAggregateRequest()
.compute(
Collections.singletonList(
new CIAppCompute()
.aggregation(CIAppAggregationFunction.COUNT)
.metric("@test.is_flaky")
.type(CIAppComputeType.TOTAL)))
.filter(
new CIAppTestsQueryFilter()
.from("now-15m")
.query("@language:(python OR go)")
.to("now"))
.groupBy(
Collections.singletonList(
new CIAppTestsGroupBy()
.facet("@git.branch")
.limit(10L)
.sort(new CIAppAggregateSort().order(CIAppSortOrder.ASCENDING))
.total(new CIAppGroupByTotal(false))))
.options(new CIAppQueryOptions().timezone("GMT"));
try {
CIAppTestsAnalyticsAggregateResponse result = apiInstance.aggregateCIAppTestEvents(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling CiVisibilityTestsApi#aggregateCIAppTestEvents");
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 tests events returns "OK" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.ci_visibility_tests_api import CIVisibilityTestsApi
from datadog_api_client.v2.model.ci_app_aggregate_sort import CIAppAggregateSort
from datadog_api_client.v2.model.ci_app_aggregation_function import CIAppAggregationFunction
from datadog_api_client.v2.model.ci_app_compute import CIAppCompute
from datadog_api_client.v2.model.ci_app_compute_type import CIAppComputeType
from datadog_api_client.v2.model.ci_app_query_options import CIAppQueryOptions
from datadog_api_client.v2.model.ci_app_sort_order import CIAppSortOrder
from datadog_api_client.v2.model.ci_app_tests_aggregate_request import CIAppTestsAggregateRequest
from datadog_api_client.v2.model.ci_app_tests_group_by import CIAppTestsGroupBy
from datadog_api_client.v2.model.ci_app_tests_query_filter import CIAppTestsQueryFilter
body = CIAppTestsAggregateRequest(
compute=[
CIAppCompute(
aggregation=CIAppAggregationFunction.COUNT,
metric="@test.is_flaky",
type=CIAppComputeType.TOTAL,
),
],
filter=CIAppTestsQueryFilter(
_from="now-15m",
query="@language:(python OR go)",
to="now",
),
group_by=[
CIAppTestsGroupBy(
facet="@git.branch",
limit=10,
sort=CIAppAggregateSort(
order=CIAppSortOrder.ASCENDING,
),
total=False,
),
],
options=CIAppQueryOptions(
timezone="GMT",
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = CIVisibilityTestsApi(api_client)
response = api_instance.aggregate_ci_app_test_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 tests events returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::CIVisibilityTestsAPI.new
body = DatadogAPIClient::V2::CIAppTestsAggregateRequest.new({
compute: [
DatadogAPIClient::V2::CIAppCompute.new({
aggregation: DatadogAPIClient::V2::CIAppAggregationFunction::COUNT,
metric: "@test.is_flaky",
type: DatadogAPIClient::V2::CIAppComputeType::TOTAL,
}),
],
filter: DatadogAPIClient::V2::CIAppTestsQueryFilter.new({
from: "now-15m",
query: "@language:(python OR go)",
to: "now",
}),
group_by: [
DatadogAPIClient::V2::CIAppTestsGroupBy.new({
facet: "@git.branch",
limit: 10,
sort: DatadogAPIClient::V2::CIAppAggregateSort.new({
order: DatadogAPIClient::V2::CIAppSortOrder::ASCENDING,
}),
total: false,
}),
],
options: DatadogAPIClient::V2::CIAppQueryOptions.new({
timezone: "GMT",
}),
})
p api_instance.aggregate_ci_app_test_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 tests events returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI;
use datadog_api_client::datadogV2::model::CIAppAggregateSort;
use datadog_api_client::datadogV2::model::CIAppAggregationFunction;
use datadog_api_client::datadogV2::model::CIAppCompute;
use datadog_api_client::datadogV2::model::CIAppComputeType;
use datadog_api_client::datadogV2::model::CIAppGroupByTotal;
use datadog_api_client::datadogV2::model::CIAppQueryOptions;
use datadog_api_client::datadogV2::model::CIAppSortOrder;
use datadog_api_client::datadogV2::model::CIAppTestsAggregateRequest;
use datadog_api_client::datadogV2::model::CIAppTestsGroupBy;
use datadog_api_client::datadogV2::model::CIAppTestsQueryFilter;
#[tokio::main]
async fn main() {
let body = CIAppTestsAggregateRequest::new()
.compute(vec![CIAppCompute::new(CIAppAggregationFunction::COUNT)
.metric("@test.is_flaky".to_string())
.type_(CIAppComputeType::TOTAL)])
.filter(
CIAppTestsQueryFilter::new()
.from("now-15m".to_string())
.query("@language:(python OR go)".to_string())
.to("now".to_string()),
)
.group_by(vec![CIAppTestsGroupBy::new("@git.branch".to_string())
.limit(10)
.sort(CIAppAggregateSort::new().order(CIAppSortOrder::ASCENDING))
.total(CIAppGroupByTotal::CIAppGroupByTotalBoolean(false))])
.options(CIAppQueryOptions::new().timezone("GMT".to_string()));
let configuration = datadog::Configuration::new();
let api = CIVisibilityTestsAPI::with_config(configuration);
let resp = api.aggregate_ci_app_test_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="<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 tests 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.CIVisibilityTestsApi(configuration);
const params: v2.CIVisibilityTestsApiAggregateCIAppTestEventsRequest = {
body: {
compute: [
{
aggregation: "count",
metric: "@test.is_flaky",
type: "total",
},
],
filter: {
from: "now-15m",
query: "@language:(python OR go)",
to: "now",
},
groupBy: [
{
facet: "@git.branch",
limit: 10,
sort: {
order: "asc",
},
total: false,
},
],
options: {
timezone: "GMT",
},
},
};
apiInstance
.aggregateCIAppTestEvents(params)
.then((data: v2.CIAppTestsAnalyticsAggregateResponse) => {
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"