Get a tag indexing rule

Note: The Tag Indexing Rules feature is currently in Preview. If you have any feedback, contact Datadog support.

GET https://api.ap1.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}https://api.ap2.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}https://api.datadoghq.eu/api/v2/metrics/tag-indexing-rules/{id}https://api.ddog-gov.com/api/v2/metrics/tag-indexing-rules/{id}https://api.us2.ddog-gov.com/api/v2/metrics/tag-indexing-rules/{id}https://api.uk1.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}https://api.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}https://api.us3.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}https://api.us5.datadoghq.com/api/v2/metrics/tag-indexing-rules/{id}

Overview

Get a single tag indexing rule by its UUID. This endpoint requires the metrics_read permission.

OAuth apps require the metrics_read authorization scope to access this endpoint.

Arguments

Path Parameters

Name

Type

Description

id [required]

string

ID of the tag indexing rule.

Response

OK

Response containing a single tag indexing rule.

Expand All

Field

Type

Description

data

object

A tag indexing rule resource object.

attributes

object

Attributes of a tag indexing rule.

created_at

date-time

Timestamp when the rule was created.

created_by_handle

string

Handle of the user who created the rule.

exclude_tags_mode

boolean

When true, the rule excludes the listed tags and indexes all others. When false (default), the rule includes only the listed tags.

ignored_metric_name_matches

[string]

Metric name prefixes excluded from the rule's scope.

metric_name_matches

[string]

Metric name prefixes (glob patterns) this rule applies to.

modified_at

date-time

Timestamp when the rule was last modified.

modified_by_handle

string

Handle of the user who last modified the rule.

name

string

Human-readable name for the rule.

options

object

Versioned configuration options for a tag indexing rule.

data

object

Data payload for tag indexing rule options.

dynamic_tags

object

Configuration for including dynamically queried tags.

queried_tags_window_seconds

int64

Window in seconds for evaluating queried tags.

related_asset_tags

boolean

When true, tags from related assets are included.

manage_preexisting_metrics

boolean

When true, the rule applies to metrics that were ingested before the rule was created.

metric_match

object

Criteria for matching metrics based on query state.

is_queried

boolean

Match metrics that are being queried.

not_queried

boolean

Match metrics that are not being queried.

not_used_in_assets

boolean

Match metrics not used in any dashboards or monitors.

queried_window_seconds

int64

Window in seconds for evaluating query state.

used_in_assets

boolean

Match metrics used in dashboards or monitors.

override_previous_rules

boolean

When true, this rule's tag list overrides tags configured by earlier rules for the same metric. When false (default), tags from all matching rules are combined.

version

int64

Options schema version. Only 1 is supported.

rule_order

int64

Evaluation order within the org. Lower values are evaluated first. Assigned server-side on create (max+1); pass on update to change the rule's position.

tags

[string]

Tag keys managed by this rule.

id

string

The unique identifier (UUID) of the tag indexing rule.

type

enum

The tag indexing rule resource type. Allowed enum values: tag_indexing_rules

default: tag_indexing_rules

{
  "data": {
    "attributes": {
      "created_at": "2024-01-15T12:00:00.000Z",
      "created_by_handle": "user@datadoghq.com",
      "exclude_tags_mode": false,
      "ignored_metric_name_matches": [
        "dd.test.excluded.*"
      ],
      "metric_name_matches": [
        "dd.test.*"
      ],
      "modified_at": "2024-01-15T12:00:00.000Z",
      "modified_by_handle": "user@datadoghq.com",
      "name": "my-indexing-rule",
      "options": {
        "data": {
          "dynamic_tags": {
            "queried_tags_window_seconds": 3600,
            "related_asset_tags": false
          },
          "manage_preexisting_metrics": true,
          "metric_match": {
            "is_queried": false,
            "not_queried": false,
            "not_used_in_assets": false,
            "queried_window_seconds": 3600,
            "used_in_assets": false
          },
          "override_previous_rules": false
        },
        "version": 1
      },
      "rule_order": 1,
      "tags": [
        "env",
        "service"
      ]
    },
    "id": "00000000-0000-0000-0000-000000000001",
    "type": "tag_indexing_rules"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

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

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

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

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

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

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

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

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

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

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

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

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

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

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

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

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

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

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

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

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

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

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

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

Too Many Requests

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

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

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

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

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

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

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

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

Code Example

                  # Path parameters
export id="00000000-0000-0000-0000-000000000001"
# 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.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/metrics/tag-indexing-rules/${id}" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Get a tag indexing rule returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.metrics_api import MetricsApi

# there is a valid "tag_indexing_rule" in the system
TAG_INDEXING_RULE_DATA_ID = environ["TAG_INDEXING_RULE_DATA_ID"]

configuration = Configuration()
configuration.unstable_operations["get_tag_indexing_rule"] = True
with ApiClient(configuration) as api_client:
    api_instance = MetricsApi(api_client)
    response = api_instance.get_tag_indexing_rule(
        id=TAG_INDEXING_RULE_DATA_ID,
    )

    print(response)

Instructions

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

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Get a tag indexing rule returns "OK" response

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

# there is a valid "tag_indexing_rule" in the system
TAG_INDEXING_RULE_DATA_ID = ENV["TAG_INDEXING_RULE_DATA_ID"]
p api_instance.get_tag_indexing_rule(TAG_INDEXING_RULE_DATA_ID)

Instructions

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

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Get a tag indexing rule 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() {
	// there is a valid "tag_indexing_rule" in the system
	TagIndexingRuleDataID := os.Getenv("TAG_INDEXING_RULE_DATA_ID")

	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.GetTagIndexingRule", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewMetricsApi(apiClient)
	resp, r, err := api.GetTagIndexingRule(ctx, TagIndexingRuleDataID)

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

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

Instructions

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

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Get a tag indexing rule returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MetricsApi;
import com.datadog.api.client.v2.model.TagIndexingRuleResponse;

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

    // there is a valid "tag_indexing_rule" in the system
    String TAG_INDEXING_RULE_DATA_ID = System.getenv("TAG_INDEXING_RULE_DATA_ID");

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

Instructions

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

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// Get a tag indexing rule returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_metrics::MetricsAPI;

#[tokio::main]
async fn main() {
    // there is a valid "tag_indexing_rule" in the system
    let tag_indexing_rule_data_id = std::env::var("TAG_INDEXING_RULE_DATA_ID").unwrap();
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.GetTagIndexingRule", true);
    let api = MetricsAPI::with_config(configuration);
    let resp = api
        .get_tag_indexing_rule(tag_indexing_rule_data_id.clone())
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

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

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Get a tag indexing rule returns "OK" response
 */

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

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

// there is a valid "tag_indexing_rule" in the system
const TAG_INDEXING_RULE_DATA_ID = process.env
  .TAG_INDEXING_RULE_DATA_ID as string;

const params: v2.MetricsApiGetTagIndexingRuleRequest = {
  id: TAG_INDEXING_RULE_DATA_ID,
};

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

Instructions

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

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