List instrumented pods for a cluster

This endpoint is in Preview and may introduce breaking changes. If you have any feedback, contact Datadog support.

GET https://api.ap1.datadoghq.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.ap2.datadoghq.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.datadoghq.eu/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.ddog-gov.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.us2.ddog-gov.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.datadoghq.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.us3.datadoghq.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_podshttps://api.us5.datadoghq.com/api/unstable/fleet/clusters/{cluster_name}/instrumented_pods

Overview

Retrieve the list of pods targeted for Single Step Instrumentation (SSI) injection in a specific Kubernetes cluster.

This endpoint returns pod groups organized by owner reference (deployment, statefulset, etc.) with their injection annotations and applied targets. Use the clusters list endpoint to discover available cluster names.

This endpoint requires the hosts_read permission.

Arguments

Path Parameters

Name

Type

Description

cluster_name [required]

string

The name of the Kubernetes cluster.

Response

OK

Response containing instrumented pods for a Kubernetes cluster.

Expand All

Field

Type

Description

data [required]

object

The response data containing the cluster name and instrumented pod groups.

attributes [required]

object

Attributes of the instrumented pods response containing the list of pod groups.

groups

[object]

Array of instrumented pod groups in the cluster.

applied_target

object

The SSI injection target configuration applied to the pod group.

applied_target_name

string

The name of the applied SSI injection target.

injected_tags

[string]

Tags injected into the pods by the Admission Controller.

kube_ownerref_kind

string

The kind of the Kubernetes owner reference.

kube_ownerref_name

string

The name of the Kubernetes owner reference (deployment, statefulset, etc.).

lib_injection_annotations

[string]

Library injection annotations on the pod group.

namespace

string

The Kubernetes namespace of the pod group.

pod_count

int64

Total number of pods in the group.

pod_names

[string]

Names of the individual pods in the group.

tags

object

Additional tags associated with the pod group.

<any-key>

string

id [required]

string

The cluster name identifier.

type [required]

string

Resource type.

{
  "data": {
    "attributes": {
      "groups": [
        {
          "applied_target": {},
          "applied_target_name": "my-injection-target",
          "injected_tags": [],
          "kube_ownerref_kind": "Deployment",
          "kube_ownerref_name": "inventory-service",
          "lib_injection_annotations": [],
          "namespace": "default",
          "pod_count": 3,
          "pod_names": [],
          "tags": {
            "<any-key>": "string"
          }
        }
      ]
    },
    "id": "production-us-east-1",
    "type": "cluster_name"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Unauthorized

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Not Found

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

                  # Path parameters
export cluster_name="CHANGE_ME"
# 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/unstable/fleet/clusters/${cluster_name}/instrumented_pods" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
List instrumented pods for a cluster returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.fleet_automation_api import FleetAutomationApi

configuration = Configuration()
configuration.unstable_operations["list_fleet_instrumented_pods"] = True
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.list_fleet_instrumented_pods(
        cluster_name="cluster_name",
    )

    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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# List instrumented pods for a cluster returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.list_fleet_instrumented_pods".to_sym] = true
end
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new
p api_instance.list_fleet_instrumented_pods("cluster_name")

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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// List instrumented pods for a cluster 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()
	configuration.SetUnstableOperationEnabled("v2.ListFleetInstrumentedPods", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFleetAutomationApi(apiClient)
	resp, r, err := api.ListFleetInstrumentedPods(ctx, "cluster_name")

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FleetAutomationApi.ListFleetInstrumentedPods`:\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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// List instrumented pods for a cluster returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.FleetAutomationApi;
import com.datadog.api.client.v2.model.FleetInstrumentedPodsResponse;

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

    try {
      FleetInstrumentedPodsResponse result = apiInstance.listFleetInstrumentedPods("cluster_name");
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FleetAutomationApi#listFleetInstrumentedPods");
      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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// List instrumented pods for a cluster returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_fleet_automation::FleetAutomationAPI;

#[tokio::main]
async fn main() {
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.ListFleetInstrumentedPods", true);
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api
        .list_fleet_instrumented_pods("cluster_name".to_string())
        .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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * List instrumented pods for a cluster returns "OK" response
 */

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

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

const params: v2.FleetAutomationApiListFleetInstrumentedPodsRequest = {
  clusterName: "cluster_name",
};

apiInstance
  .listFleetInstrumentedPods(params)
  .then((data: v2.FleetInstrumentedPodsResponse) => {
    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="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"