Skip to main content
Version: 1.15.0

Monitor Resource Quotas

Currently, resource quotas can only be monitored through Prometheus metrics. Prometheus metrics must be manually retrieved using queries that are described in this topic. You must run Prometheus queries (in PromQL) on the Prometheus service of the KubeSlice Controller. You can easily track the usage and violation using the KubeSlice Manager dashboard. However, if you want to track the quota usage or violation through Prometheus queries, then read the following sections.

Access the KubeSlice Controller-installed Prometheus

KubeSlice Controller is shipped with Prometheus installed, which monitors the resource quota and generates metrics. You can access this Prometheus service by port forwarding and accessing it as a local host.

To access the Prometheus service:

  1. Do port forwarding to access the Prometheus service of the KubeSlice Controller using the following command:

    kubectl port-forward svc/kubeslice-controller-prometheus-service 9090:9090 -n kubeslice-controller
  2. Access the Prometheus user interface from the local host, http://localhost:9090.

Run PromQL Queries on the Prometheus User Interface

To access the Prometheus endpoint:

  1. Go to http://localhost:9090 on a web browser.

    alt

  2. On the Prometheus page, in the query text box, enter the query to get the metrics of slice or namespace quotas.

  3. (Optional) Under Table, set the date and time for which you want to see the metrics of usage/violation.

    alt

  4. Click Execute.

  5. Analyze the output to check the usage or violation of the quotas for a slice or a namespace.

Monitor Limit Usage

Monitor Limit Slice Usage

Use PromQL queries to get the individual limit usage metrics of a resource for a a slice or a namespace. The query output provides the usage value of the corresponding resource.

info

The slice quota usage is reported every 5 minutes. The usage metrics are obtained using the metrics API.

Slice CPU Limit Usage

Run the following query to get the CPU limit usage metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_cpu_utilization{slice_name="red", quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_cpu_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="cpu", slice_name="red"}
30

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Slice Ephemeral Storage Limit Usage

Run the following query to get the ephemeral storage limit usage metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_ephemeralstorage_utilization{slice_name="red", quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_ephemeralstorage_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="ephemeralStorage", slice_name="red"}
1024000

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Slice Memory Limit Usage

Run the following query to get the memory limit usage metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_memory_utilization{slice_name="red", quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_memory_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="memory", slice_name="red"}
97280

The usage value is in the second line of the output. The unit value of the memory is KiB.

Slice Pod Count Limit Usage

Run the following query to get the pod count limit usage metrics:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_podcount_utilization{slice_name="red", quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_podcount_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="podCount", slice_name="red"}
4

The usage value is in the second line of the output. The unit value of the pod count is number.

Monitor Limit Namespace Usage

Namespace CPU Limit Usage

Run the following query to get the CPU limit usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_cpu_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_cpu_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="cpu", slice_name="red"}
30

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Namespace Ephemeral Storage Limit Usage

Run the following query to get the ephemeral storage limit usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_ephemeralstorage_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_ephemeralstorage_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="ephemeralStorage", slice_name="red"}
1024000

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Namespace Memory Limit Usage

Run the following query to get the memory limit usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_memory_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_memory_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="memory", slice_name="red"}
97280

The usage value is in the second line of the output.The unit value of the memory is KiB.

Namespace Pod Count Limit Usage

Run the following query to get the pod count usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_podcount_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_podcount_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", resource_type="podCount", slice_name="red"}
4

The usage value is in the second line of the output. The unit value of the pod count is number.

Monitor Request Usage

Monitor Slice Requests Usage

Use PromQL queries to get the individual request usage metrics of a resource for a a slice or a namespace. The query output provides the usage value of the corresponding resource.

info

The slice quota usage is reported every 5 minutes. The usage metrics are obtained using the metrics API.

Slice CPU Request Usage

Run the following query to get the CPU request usage metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_cpu_utilization{slice_name="red", quota_type="request"}

Expected Output

kubeslice_controller_slice_quota_cpu_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", resource_type="cpu", slice_name="red"}
30

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Slice Ephemeral Storage Request Usage

Run the following query to get the ephemeral storage request usage metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_ephemeralstorage_utilization{slice_name="red", quota_type="request"}

Expected Output

kubeslice_controller_slice_quota_ephemeralstorage_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", resource_type="ephemeralStorage", slice_name="red"}
102400

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Slice Memory Request Usage

Run the following query to get the memory request usage metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_memory_utilization{slice_name="red", quota_type="request"}

Expected Output

kubeslice_controller_slice_quota_memory_utilization{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", resource_type="memory", slice_name="red"}
97280

The usage value is in the second line of the output. The unit value of the memory is KiB.

Monitor Request Namespace Usage

Namespace CPU Request Usage

Run the following query to get the CPU request usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_cpu_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="request"}

Expected Output

kubeslice_controller_namespace_quota_cpu_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", resource_type="cpu", slice_name="red"}
30

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Namespace Ephemeral Storage Request Usage

Run the following query to get the ephemeral storage request usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_ephemeralstorage_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="request"}

Expected Output

kubeslice_controller_namespace_quota_ephemeralstorage_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", resource_type="ephemeralStorage", slice_name="red"}
102400

The usage value is in the second line of the output. The unit value of the CPU is millicores.

Namespace Memory Request Usage

Run the following query to get the memory request usage metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_memory_utilization{slice_name="red", cluster_name="cluster-1", namespace="namespace-1", quota_type="request"}

Expected Output

kubeslice_controller_namespace_quota_memory_utilization{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", resource_type="memory", slice_name="red"}
97280

The usage value is in the second line of the output. The unit value of the memory is KiB.

Monitor Limit Violation

Use PromQL queries to get the individual limit violation metrics of a resource for a a slice or a namespace.The query output provides the violation value of the corresponding resource.

The violation value in the query output is indicated by a Boolean value with either of the following options:

  • 0 indicates that the resource quota for a slice or a namespace is equal to or within the limits.
  • 1 indicates that the resource quota for a slice or a namespace is violated.

Slice Monitor Limit Violations

Slice CPU Limit Violation

Run the following query to get the CPU violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="cpu",slice_name="red",quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="cpu"}
0

The violation is in the second line of the output. 1 indicates that the CPU quota of the slice is violated and 0 indicates the CPU quota of the slice is less than or equal to the limits.

Slice Ephemeral Limit Violation

Run the following query to get the CPU violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="ephemeralStorage",slice_name="red",quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="ephemeralStorage"}
1

The violation is in the second line of the output. 1 indicates that the CPU quota of the slice is violated and 0 indicates the CPU quota of the slice is less than or equal to the limits.

Slice Memory Limit Violation

Run the following query to get the memory violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="memory",slice_name="red",quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="memory"}
0

The violation is in the second line of the output. 1 indicates that the memory quota of the slice is violated and 0 indicates the memory quota of the slice is less than or equal to the limits.

Slice Pod Count Limit Violation

Run the following query to get the pod count violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="podCount",slice_name="red",quota_type="limit"}

Expected Output

kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="podCount"}
0

The violation is in the second line of the output. 1 indicates that the pod count quota of the slice is violated and 0 indicates the pod count quota of the slice is less than or equal to the limits.

Namespace Limit Violations

CPU Limit Violation

Run the following query to get the CPU limit violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="cpu",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="cpu"}
0

The violation is in the second line of the output. 1 indicates that the CPU quota of the namespace is violated and 0 indicates the CPU quota of the namespace is less than or equal to the limits.

Namespace Ephemeral Storage Limit Violation

Run the following query to get the ephemeral storage limit violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="ephemeralStorage",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="ephemeralStorage"}
1

The violation is in the second line of the output. 1 indicates that the CPU quota of the namespace is violated and 0 indicates the CPU quota of the namespace is less than or equal to the limits.

Namespace Memory Limit Violation

Run the following query to get the memory limit violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="memory",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="limit"}

Expected Output

kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="memory"}
1

The violation is in the second line of the output. 1 indicates that the memory quota of the namespace is violated and 0 indicates the memory quota of the namespace is less than or equal to the limits.

Namespace Pod Count Limit Violation

Run the following query to get the pod count limit violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="podCount",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="limit"}

Expected Output


kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="limit", slice_name="red", violated_resource_type="podCount"}

The violation is in the second line of the output. 1 indicates that the pod count quota of the namespace is violated and 0 indicates the pod count quota of the namespace is less than or equal to the limits.

Monitor Request Violation

Use PromQL queries to get the individual request violation metrics of a resource for a a slice or a namespace.The query output provides the violation value of the corresponding resource.

The request violation value in the query output is indicated by a Boolean value with either of the following options:

  • 0 indicates that the resource quota for a slice or a namespace is equal to or within the limits.
  • 1 indicates that the resource quota for a slice or a namespace is violated.

Slice Monitor Request Violations

Slice CPU Request Violation

Run the following query to get the CPU request violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="cpu",slice_name="red",quota_type="request"}

Expected Output


kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", slice_name="red", violated_resource_type="cpu"}
0

The violation is in the second line of the output. 1 indicates that the CPU quota of the slice is violated and 0 indicates the CPU quota of the slice is less than or equal to the limits.

Slice Ephemeral Storage Request Violation

Run the following query to get the ephemeral storage request violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="ephemeralStorage",slice_name="red",quota_type="request"}

Expected Output

kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", slice_name="red", violated_resource_type="ephemeralStorage"}
0

The violation is in the second line of the output. 1 indicates that the CPU quota of the slice is violated and 0 indicates the CPU quota of the slice is less than or equal to the limits.

Slice Memory Request Violation

Run the following query to get the memory request violation metrics of a slice:

info

In the query, replace the slice name with your slice name.

kubeslice_controller_slice_quota_violation{violated_resource_type="memory",slice_name="red",quota_type="request"}

Expected Output

kubeslice_controller_slice_quota_violation{control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", slice_name="red", violated_resource_type="memory"}
0

The violation is in the second line of the output. 1 indicates that the memory quota of the slice is violated and 0 indicates the memory quota of the slice is less than or equal to the limits.

Slice CPU Request Violation

Run the following query to get the CPU request violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="cpu",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="request"}

Expected Output

kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", slice_name="red", violated_resource_type="cpu"}
0

The violation is in the second line of the output. 1 indicates that the CPU quota of the namespace is violated and 0 indicates the CPU quota of the namespace is less than or equal to the limits.

Namespace Request Violations

Namespace Ephemeral Storage Request Violation

Run the following query to get the ephemeral storage request violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="ephemeralStorage",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="request"}

Expected Output

kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", slice_name="red", violated_resource_type="ephemeralStorage"}
1

The violation is in the second line of the output. 1 indicates that the CPU quota of the namespace is violated and 0 indicates the CPU quota of the namespace is less than or equal to the limits.

Namespace Memory Request Violation

Run the following query to get the memory request violation metrics of a namespace:

info

In the query, replace the name of the slice, worker cluster, and the namespace with the corresponding name of your slice, worker cluster, and namespace.

kubeslice_controller_namespace_quota_violation{violated_resource_type="memory",slice_name="red",cluster_name="cluster-1",namespace="namespace-1",quota_type="request"}

Expected Output

kubeslice_controller_namespace_quota_violation{cluster_name="cluster-1", control_plane="controller-manager", instance="10.7.2.16:18080", job="kubernetes-pods", kubernetes_namespace="kubeslice-controller", kubernetes_pod_name="kubeslice-controller-manager-bb89cf748-p7jl4", namespace="namespace-1", pod_template_hash="bb89cf748", project_name="cisco", quota_type="request", slice_name="red", violated_resource_type="memory"}
1

The violation is in the second line of the output. 1 indicates that the memory quota of the namespace is violated and 0 indicates the memory quota of the namespace is less than or equal to the limits.

Monitoring Violation through Events

You can also track violation by retrieving the events using the following command:

k get events -n <project name>

Example

k get events -n kubeslice-avesha

Expected Output

LAST SEEN   TYPE      REASON             OBJECT                                    MESSAGE
5m34s Normal SUCCESS workersliceresourcequota/red-worker-2 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
55m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
41m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
29m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
27m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
22m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
20m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
15m Normal SUCCESS workersliceresourcequota/red-worker-1 Updated workersliceresourcequota kubeslice-avesha as delta is more than 5 percent
4m34s Warning VIOLATED sliceresourcequotaconfig/red Resource quota of type limit-podCount is violated for namespace iperf, cluster worker-2, slice red
29m Warning VIOLATED sliceresourcequotaconfig/red Resource quota of type limit-podCount is violated for slice red