Get all aggregated DNS traffic

GET https://api.ap1.datadoghq.com/api/v2/network/dns/aggregatehttps://api.ap2.datadoghq.com/api/v2/network/dns/aggregatehttps://api.datadoghq.eu/api/v2/network/dns/aggregatehttps://api.ddog-gov.com/api/v2/network/dns/aggregatehttps://api.us2.ddog-gov.com/api/v2/network/dns/aggregatehttps://api.datadoghq.com/api/v2/network/dns/aggregatehttps://api.us3.datadoghq.com/api/v2/network/dns/aggregatehttps://api.us5.datadoghq.com/api/v2/network/dns/aggregate

Overview

Get all aggregated DNS traffic.

Arguments

Query Strings

Name

Type

Description

from

integer

Unix timestamp (number of seconds since epoch) of the start of the query window. If not provided, the start of the query window is 15 minutes before the to timestamp. If neither from nor to are provided, the query window is [now - 15m, now].

to

integer

Unix timestamp (number of seconds since epoch) of the end of the query window. If not provided, the end of the query window is the current time. If neither from nor to are provided, the query window is [now - 15m, now].

group_by

string

Comma-separated list of fields to group DNS traffic by. The server side defaults to network.dns_query if unspecified. server_ungrouped may be used if groups are not desired. The maximum number of group_by(s) is 10.

tags

string

Comma-separated list of tags to filter DNS traffic by.

query

string

Free-form search query using AND/OR/NOT operators, wildcards, and parentheses. When provided, takes precedence over the tags parameter.

limit

integer

The number of aggregated DNS entries to be returned. The maximum value is 7500. The default is 100.

Response

OK

List of aggregated DNS flows.

Expand All

Field

Type

Description

data

[object]

Array of aggregated DNS objects.

attributes

object

Attributes for an aggregated DNS flow.

group_bys

[object]

The key, value pairs for each group by.

key

string

The group by key.

value

string

The group by value.

metrics

[object]

Metrics associated with an aggregated DNS flow.

key

enum

The metric key for DNS metrics. Allowed enum values: dns_total_requests,dns_failures,dns_successful_responses,dns_failed_responses,dns_timeouts,dns_responses.nxdomain,dns_responses.servfail,dns_responses.other,dns_success_latency_percentile,dns_failure_latency_percentile

value

int64

The metric value.

id

string

A unique identifier for the aggregated DNS traffic based on the group by values.

type

enum

Aggregated DNS resource type. Allowed enum values: aggregated_dns

default: aggregated_dns

{
  "data": [
    {
      "attributes": {
        "group_bys": [
          {
            "key": "client_service",
            "value": "example-service"
          },
          {
            "key": "network.dns_query",
            "value": "example.com"
          }
        ],
        "metrics": [
          {
            "key": "dns_total_requests",
            "value": 100
          },
          {
            "key": "dns_failures",
            "value": 7
          },
          {
            "key": "dns_successful_responses",
            "value": 93
          },
          {
            "key": "dns_failed_responses",
            "value": 5
          },
          {
            "key": "dns_timeouts",
            "value": 2
          },
          {
            "key": "dns_responses.nxdomain",
            "value": 1
          },
          {
            "key": "dns_responses.servfail",
            "value": 1
          },
          {
            "key": "dns_responses.other",
            "value": 3
          },
          {
            "key": "dns_success_latency_percentile",
            "value": 50
          },
          {
            "key": "dns_failure_latency_percentile",
            "value": 75
          }
        ]
      },
      "id": "client_service:example-service,network.dns_query:example.com",
      "type": "aggregated_dns"
    }
  ]
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "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 GET "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.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/network/dns/aggregate" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Get all aggregated DNS traffic returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.cloud_network_monitoring_api import CloudNetworkMonitoringApi

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = CloudNetworkMonitoringApi(api_client)
    response = api_instance.get_aggregated_dns()

    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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
# Get all aggregated DNS traffic returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::CloudNetworkMonitoringAPI.new
p api_instance.get_aggregated_dns()

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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
// Get all aggregated DNS traffic 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() {
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewCloudNetworkMonitoringApi(apiClient)
	resp, r, err := api.GetAggregatedDns(ctx, *datadogV2.NewGetAggregatedDnsOptionalParameters())

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `CloudNetworkMonitoringApi.GetAggregatedDns`:\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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
// Get all aggregated DNS traffic returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.CloudNetworkMonitoringApi;
import com.datadog.api.client.v2.model.SingleAggregatedDnsResponseArray;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    CloudNetworkMonitoringApi apiInstance = new CloudNetworkMonitoringApi(defaultClient);

    try {
      SingleAggregatedDnsResponseArray result = apiInstance.getAggregatedDns();
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling CloudNetworkMonitoringApi#getAggregatedDns");
      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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
// Get all aggregated DNS traffic returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_cloud_network_monitoring::CloudNetworkMonitoringAPI;
use datadog_api_client::datadogV2::api_cloud_network_monitoring::GetAggregatedDnsOptionalParams;

#[tokio::main]
async fn main() {
    let configuration = datadog::Configuration::new();
    let api = CloudNetworkMonitoringAPI::with_config(configuration);
    let resp = api
        .get_aggregated_dns(GetAggregatedDnsOptionalParams::default())
        .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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * Get all aggregated DNS traffic returns "OK" response
 */

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

const configuration = client.createConfiguration();
const apiInstance = new v2.CloudNetworkMonitoringApi(configuration);

apiInstance
  .getAggregatedDns()
  .then((data: v2.SingleAggregatedDnsResponseArray) => {
    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.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"