Karpenter makes several metrics available in Prometheus format to allow monitoring cluster provisioning status. These metrics are available by default at
karpenter.karpenter.svc.cluster.local:8000/metrics configurable via the
METRICS_PORT environment variable documented here
A metric with a constant ‘1’ value labeled by version from which karpenter was built.
The nodepool usage is the amount of resources that have been provisioned by a particular nodepool. Labeled by nodepool name and resource type.
The nodepool limits are the limits specified on the nodepool that restrict the quantity of resources provisioned. Labeled by nodepool name and resource type.
Node total pod requests are the resources requested by non-DaemonSet pods bound to nodes.
Node total pod limits are the resources specified by non-DaemonSet pod limits.
Node total daemon requests are the resource requested by DaemonSet pods bound to nodes.
Node total daemon limits are the resources specified by DaemonSet pod limits.
The time taken between a node’s deletion request and the removal of its finalizer
Number of nodes terminated in total by Karpenter. Labeled by owning nodepool.
Node system daemon overhead are the resources reserved for system overhead, the difference between the node’s capacity and allocatable values are reported by the status.
Number of deleted leaked leases.
Number of nodes created in total by Karpenter. Labeled by owning nodepool.
Node allocatable are the resources allocatable by nodes.
Pod state is the current state of pods. This metric can be used several ways as it is labeled by the pod name, namespace, owner, node, nodepool name, zone, architecture, capacity type, instance type and pod phase.
The time from pod creation until the pod is running.
Duration of scheduling simulations used for deprovisioning and provisioning in seconds.
Duration of scheduling process in seconds.
Number of nodeclaims terminated in total by Karpenter. Labeled by reason the nodeclaim was terminated and the owning nodepool.
Number of nodeclaims registered in total by Karpenter. Labeled by the owning nodepool.
Number of nodeclaims launched in total by Karpenter. Labeled by the owning nodepool.
Number of nodeclaims initialized in total by Karpenter. Labeled by the owning nodepool.
Number of nodeclaims drifted reasons in total by Karpenter. Labeled by drift type of the nodeclaim and the owning nodepool.
Number of nodeclaims disrupted in total by Karpenter. Labeled by disruption type of the nodeclaim and the owning nodepool.
Number of nodeclaims created in total by Karpenter. Labeled by reason the nodeclaim was created and the owning nodepool.
Count of messages received from the SQS queue. Broken down by message type and whether the message was actionable.
Length of time between message creation in queue and an action taken on the message by the controller.
Count of messages deleted from the SQS queue.
Number of notification actions performed. Labeled by action
Amount of time required for a replacement nodeclaim to become initialized.
The number of times that Karpenter failed to launch a replacement node for disruption. Labeled by disruption method.
The number of commands currently being waited on in the disruption orchestration queue.
Duration of the disruption evaluation process in seconds.
Number of nodes eligible for disruption by Karpenter. Labeled by disruption method.
Number of times the Consolidation algorithm has reached a timeout. Labeled by consolidation type.
The number of nodes for a given NodePool that can be disrupted at a point in time. Labeled by NodePool. Note that allowed disruptions can change very rapidly, as new nodes may be created and others may be deleted at any point.
Number of disruption actions performed. Labeled by disruption method.
Number of consistency checks that have failed.
Estimated hourly price used when making informed decisions on node cost calculation. This is updated once on startup and then every 12 hours.
Memory, in bytes, for a given instance type.
VCPUs cores for a given instance type.
Total number of errors returned from CloudProvider calls.
Duration of cloud provider method calls. Labeled by the controller, method name and provider.
Cloudprovider Batcher Metrics
Duration of the batching window per batcher
Size of the request batch per batcher
Controller Runtime Metrics
Total number of reconciliations per controller
Length of time per reconciliation per controller
Total number of reconciliation errors per controller
Maximum number of concurrent reconciles per controller
Number of currently used workers per controller