{
  "id": "b1c98f57-bd8c-45ef-a8d5-ea6985e352b6",
  "title": "ClusterResourceQuota Pods used metric",
  "description": "",
  "actor": "4d4f7698-3456-476c-b59c-52bd5ce270e9",
  "owner": "4d4f7698-3456-476c-b59c-52bd5ce270e9",
  "ownerType": "USER",
  "isPrivate": false,
  "schemaVersion": 4,
  "trigger": {
    "schedule": {
      "isActive": true,
      "trigger": {
        "type": "interval",
        "intervalMinutes": 1
      },
      "rule": null,
      "filterParameters": {
        "earliestStart": "2026-05-06",
        "earliestStartTime": "12:46"
      },
      "timezone": "Europe/Vienna",
      "inputs": {}
    }
  },
  "result": null,
  "type": "STANDARD",
  "input": {},
  "hourlyExecutionLimit": 1000,
  "guide": null,
  "tasks": {
    "dql_read_pods_usage_percent": {
      "name": "dql_read_pods_usage_percent",
      "input": {
        "query": "smartscapeNodes K8S_CLUSTERRESOURCEQUOTA\n| filter k8s.cluster.name == \"<OCP-CLUSTER-NAME>\"  // Filter for one specific cluster\n| filter isNotNull(k8s.object)\n| parse k8s.object, \"JSON:k8s.object\"                  // Parse k8s object json\n| fieldsAdd podsUsed = toDouble(k8s.object[status][total][used][pods]), podsLimit = toDouble(k8s.object[status][total][hard][pods])\n| fieldsAdd podsQuotaUsedPercent = ( podsUsed / podsLimit ) * 100 // Check how many percent of the pods quota is used, could alert for example if 90% used\n| fields id, k8s.clusterresourcequota.name = name, k8s.cluster.name, k8s.cluster.uid, podsQuotaUsedPercent, podsQuotaUsed, podsQuotaLimit"
      },
      "action": "dynatrace.automations:execute-dql-query",
      "position": {
        "x": 0,
        "y": 1
      },
      "description": "Make use of Dynatrace Grail data in your workflow.",
      "predecessors": []
    },
    "ingest_clusterresourcequota_metric": {
      "name": "ingest_clusterresourcequota_metric",
      "input": {
        "url": "https://<DT-SaaS-FQDN>/api/v2/metrics/ingest",
        "method": "POST",
        "headers": {
          "Content-Type": "text/plain",
          "Authorization": "Api-Token <token-value>"
        },
        "payload": "clusterresourcequota.pods.usage_percent,k8s.clusterresourcequota.name={{ result(\"dql_read_pods_usage_percent\")[\"records\"][0][\"k8s.clusterresourcequota.name\"] }},k8s.cluster.name={{ result(\"dql_read_pods_usage_percent\")[\"records\"][0][\"k8s.cluster.name\"] }},k8s.cluster.uid={{ result(\"dql_read_pods_usage_percent\")[\"records\"][0][\"k8s.cluster.uid\"] }} {{ result(\"dql_read_pods_usage_percent\")[\"records\"][0][\"podsQuotaUsedPercent\"] }}",
        "failOnResponseCodes": "400-599"
      },
      "action": "dynatrace.automations:http-function",
      "position": {
        "x": 0,
        "y": 2
      },
      "conditions": {
        "states": {
          "dql_read_pods_usage_percent": "OK"
        }
      },
      "description": "Issue an HTTP request to any API.",
      "predecessors": [
        "dql_read_pods_usage_percent"
      ]
    }
  }
}