Alerting on a Cordoned Kubernetes Node in Instana
Why "Custom Metrics" won't work here
Custom metrics in Instana are for application/JVM-emitted metrics (hence only Java appearing as an entity type). A cordoned node is a Kubernetes infrastructure state, not a metric - so a different alert path is needed.
The correct approach: Smart Alerts → Kubernetes Events + Built-in Infrastructure
There are two viable methods, depending on your Instana version.
Method 1 - Smart Alert on a Built-in Kubernetes Metric (Recommended)
Instana collects a built-in metric called kubernetes.node.unschedulable from the Kubernetes API. A value of 1 means the node is cordoned.
Steps:
- Go to Alerts → Smart Alerts → + New Smart Alert
- Set Alert Type →
Metric Threshold
- Under Scope, choose:
- Entity Type:
Kubernetes Node
- Filter: your cluster (or leave blank for all nodes)
- Under Metric, select:
- Metric:
Node Unschedulable (maps to kubernetes.node.unschedulable)
- Condition:
≥ 1
- Aggregation:
max
- Window:
1 minute (shortest available - avoids flapping)
- Set Severity →
Warning or Critical
- Assign an Alert Channel (email, Slack, PagerDuty, etc.)
- Save and enable the alert
⚠️ If Node Unschedulable does not appear in the metric picker, confirm that your Instana agent DaemonSet has the Kubernetes sensor enabled and that it has RBAC permissions to read nodes.
Method 2 - Kubernetes Events Alert
Instana can also ingest Kubernetes events. A cordon emits an event of type Normal with reason NodeNotSchedulable.
- Go to Alerts → Smart Alerts → + New Smart Alert
- Set Alert Type →
Event
- Under Event Source, choose
Kubernetes
- Filter by:
- Kind:
Node
- Reason:
NodeNotSchedulable
- Assign severity and alert channel, then save
Why Only Java Appears in Custom Metrics
| What you tried |
Why it doesn't work |
| Custom Metrics → entity type filter |
Custom metrics only shows entity types that have emitted a custom metric via SDK/agent API - Kubernetes nodes don't do this |
| Manual metric name entry |
The metric namespace for K8s nodes is internal (kubernetes.*), not user-defined |
Prerequisites Checklist
Before either method will work, verify:
- The Instana agent is deployed as a DaemonSet in the cluster
- The agent
ConfigMap includes com.instana.plugin.kubernetes: enabled: true
- The agent's ClusterRole includes
get, list, watch on nodes
- Your Instana license covers Infrastructure Monitoring (not just APM)
- You are on Instana agent version ≥ 1.2.x (older versions did not expose
node.unschedulable)
If after checking all of the above kubernetes.node.unschedulable still doesn't appear, share a screenshot of your Smart Alert metric picker filtered to Kubernetes Node and I can help narrow it down further.
------------------------------
Miodrag Mikrut
------------------------------