The Kubernetes scheduler is a control plane process that assigns Pods to the nodes. The scheduler determines which nodes are valid placements for each Pod in the scheduling queue according to the constraints and available resources. The scheduler then ranks each valid node and binds the Pod to a suitable node. Multiple different schedulers may be used within a cluster. By default, the kube-scheduler runs on port secure 10259 (older version runs on unsecure port 10251) and exposes the metrics of /metrics in openMetric format. The Agent hits the endpoint with the kubernetes client and fetches the metrics automatically. Therefore, no extra configuration or detection logic is required.
Collector Type: Agent
Category: Application Monitors
Application Name: k8s Scheduler
Global Template Name: Kubernetes Scheduler
Validate
Go to Resources under the Infrastructure tab to check if your resources are onboarded and the metrics are collected.
Collected Metrics
Metric Name | Display Name | Description |
---|---|---|
scheduler.binding.duration.count | Kube Scheduler Binding Duration Seconds Count | Total Binding duration in seconds count. |
scheduler.binding.duration.seconds | scheduler.binding.duration.seconds | Binding duration in seconds sum. |
scheduler.binding.latency.count | Kube Scheduler Binding Latency Microseconds Count | Total Binding latency in microseconds count. |
scheduler.binding.latency.sum | Kube Scheduler Binding Latency Microseconds Sum | Binding latency in microseconds sum. |
scheduler.cache.lookups | Kube Scheduler Equiv Cache Lookups Total | Total number of equivalence cache lookups, by whether or not a cache entry was found. |
scheduler.client.http.requests_duration.count | Kube Scheduler Rest Client Request Latency Seconds Count | Total request latency in seconds. Broken down by verb and URL. |
scheduler.client.http.requests_duration.sum | Kube Scheduler Rest Client Request Latency Seconds Sum | Request latency in seconds sum. Broken down by verb and URL. |
scheduler.gc_duration_seconds.count | Kube Scheduler Go GC Duration Seconds Count | A summary of the GC invocation durations. |
scheduler.gc_duration_seconds.quantile | Kube Scheduler Go GC Duration Seconds | A summary of the GC invocation durations. |
scheduler.gc_duration_seconds.sum | Kube Scheduler Go GC Duration Seconds Sum | A summary of the GC invocation durations. |
scheduler.go.goroutines | Kube Scheduler Go Goroutines | Number of goroutines that currently exist. |
scheduler.process.max_fds | Kube Scheduler Process Max Fds | Maximum number of open file descriptors. |
scheduler.process.open_fds | Kube Scheduler Process Open Fds | Number of open file descriptors. |
scheduler.pod_preemption.victims | Kube Scheduler Pod Preemption Victims | Number of selected preemption victims. |
scheduler.pod_preemption.attempts | Kube Scheduler Total Preemption Attempts | Total preemption attempts in the cluster till now. |
scheduler.schedule_attempts.total | Kube Scheduler Schedule Attempts Total | Number of attempts to schedule pods, by the result. 'unschedulable' means a pod could not be scheduled, while 'error' means an internal scheduler problem. |
scheduler.scheduling.algorithm_duration.count | Kube Scheduler Scheduling Algorithm Duration Seconds Count | Total Scheduling algorithm latency in seconds count. |
scheduler.scheduling.algorithm_duration.sum | Kube Scheduler Scheduling Algorithm Duration Seconds Sum | Scheduling algorithm latency in seconds sum. |
scheduler.scheduling.algorithm_latency.count | Kube Scheduler Scheduling Algorithm Latency Microseconds Count | Total Scheduling algorithm latency in microseconds count. |
scheduler.scheduling.algorithm_latency.sum | Kube Scheduler Scheduling Algorithm Latency Microseconds Sum | Scheduling algorithm latency in microseconds sum. |
scheduler.scheduling.algorithm.predicate_duration.count | Kube Scheduler Scheduling Algorithm Predicate Evaluation Count | Scheduling algorithm predicate evaluation duration. |
scheduler.scheduling.algorithm.predicate_duration.sum | Kube Scheduler Scheduling Algorithm Predicate Evaluation Sum | Scheduling algorithm predicate evaluation duration. |
scheduler.scheduling.algorithm.preemption_duration.count | Kube Scheduler Scheduling Algorithm Preemption Evaluation Count | Scheduling algorithm preemption evaluation duration. |
scheduler.scheduling.algorithm.preemption_duration.sum | Kube Scheduler Scheduling Algorithm Preemption Evaluation Sum | Scheduling algorithm preemption evaluation duration. |
scheduler.scheduling.algorithm.priority_duration.count | Kube Scheduler Scheduling Algorithm Priority Evaluation Count | Scheduling algorithm priority evaluation duration. |
scheduler.scheduling.algorithm.priority_duration.sum | Kube Scheduler Scheduling Algorithm Priority Evaluation Sum | Scheduling algorithm priority evaluation duration. |
scheduler.e2e.scheduling_duration.count | Kube Scheduler E2E Scheduling Duration Seconds Count | Total E2e scheduling latency in seconds (scheduling algorithm + binding). |
scheduler.e2e.scheduling_duration.sum | Kube Scheduler E2E Scheduling Duration Seconds Sum | E2e scheduling latency in seconds (scheduling algorithm + binding). |
scheduler.e2e.scheduling_latency.count | Kube Scheduler E2E Scheduling Latency Microseconds Count | Total E2e scheduling latency in microseconds (scheduling algorithm + binding). |
scheduler.e2e.scheduling_latency.sum | Kube Scheduler E2E Scheduling Latency Microseconds Sum | E2e scheduling latency in microseconds (scheduling algorithm + binding). |
scheduler.scheduling.scheduling_duration.count | Kube Scheduler Scheduling Duration Seconds Count | Scheduling latency in seconds split by sub-parts of the scheduling operation. |
scheduler.scheduling.scheduling_duration.quantile | Kube Scheduler Scheduling Duration Seconds | Scheduling latency in seconds split by sub-parts of the scheduling operation. |
scheduler.scheduling.scheduling_duration.sum | Kube Scheduler Scheduling Duration Seconds Sum | Kube Scheduler Scheduling Duration Seconds Sum. |
scheduler.scheduling.scheduling_latency.count | Kube Scheduler Scheduling Latency Seconds Count | Scheduling latency in seconds split by sub-parts of the scheduling operation. |
scheduler.scheduling.scheduling_latency.quantile | Kube Scheduler Scheduling Latency Seconds | Scheduling latency in seconds split by sub-parts of the scheduling operation. |
scheduler.scheduling.scheduling_latency.sum | Kube Scheduler Scheduling Latency Seconds Sum | Scheduling latency in seconds split by sub-parts of the scheduling operation. |
scheduler.threads | Kube Scheduler OS Threads | Number of OS threads created. |
scheduler.volume_scheduling_duration.sum | Kube Scheduler Volume Scheduling Duration Seconds Sum | Volume scheduling stage latency sum. |
scheduler.volume_scheduling_duration.count | Kube Scheduler Volume Scheduling Duration Seconds Count | Volume scheduling stage latency count. |
Note
If the Kubernetes Scheduler template does not work, check if the scheduler service is running on all interfaces or only on the loopback interface. If it is running on the loopback interface, change it to bind to all interfaces by editing the/etc/kubernetes/manifests/kube-scheduler.yaml
file on the master node and ensure that the –bind-address parameter is set to 0.0.0.0
.