diff --git a/dashboards/resources/queries/cluster.libsonnet b/dashboards/resources/queries/cluster.libsonnet index f4bfc0a..6d2a0cc 100644 --- a/dashboards/resources/queries/cluster.libsonnet +++ b/dashboards/resources/queries/cluster.libsonnet @@ -1,66 +1,126 @@ // queries path must match the path in the kubernetes-mixin template +local b = import './common.libsonnet'; + { + local filters = 'k8s_cluster_name=~"${cluster:pipe}"', + // CPU stat queries - cpuUtilisation(config):: '0', - cpuRequestsCommitment(config):: '0', - cpuLimitsCommitment(config):: '0', + cpuUtilisation(config):: + b.ratioSum('k8s_pod_cpu_time_seconds_total', 'system_cpu_logical_count', filters, useRate=true), + + cpuRequestsCommitment(config):: + b.ratioSum('k8s_container_cpu_request', 'system_cpu_logical_count', filters), + + cpuLimitsCommitment(config):: + b.ratioSum('k8s_container_cpu_limit', 'system_cpu_logical_count', filters), // CPU usage and namespace queries - cpuUsageByNamespace(config):: ||| - sum( - sum by (k8s_cluster_name, k8s_namespace_name) ( - rate( - k8s_pod_cpu_time_seconds_total{k8s_cluster_name=~"${cluster}"}[$__rate_interval] - ) - ) - ) - |||, - - podsByNamespace(config):: '0', - workloadsByNamespace(config):: '0', - cpuRequestsByNamespace(config):: '0', - cpuUsageVsRequests(config):: '0', - cpuLimitsByNamespace(config):: '0', - cpuUsageVsLimits(config):: '0', + cpuUsageByNamespace(config):: + b.rateSum('k8s_pod_cpu_time_seconds_total', filters, by='k8s_cluster_name'), + + podsByNamespace(config):: + '0', + + workloadsByNamespace(config):: + '0', + + cpuRequestsByNamespace(config):: + b.metricSum('k8s_container_cpu_request', filters, by='k8s_cluster_name'), + + cpuUsageVsRequests(config):: + b.ratioSum('k8s_pod_cpu_time_seconds_total', 'k8s_container_cpu_request', filters, by='k8s_cluster_name', useRate=true), + + cpuLimitsByNamespace(config):: + b.metricSum('k8s_container_cpu_limit', filters, by='k8s_cluster_name'), + + cpuUsageVsLimits(config):: + b.ratioSum('k8s_pod_cpu_time_seconds_total', 'k8s_container_cpu_limit', filters, by='k8s_cluster_name', useRate=true), // Memory stat queries - memoryUtilisation(config):: '0', - memoryRequestsCommitment(config):: '0', - memoryLimitsCommitment(config):: '0', + memoryUtilisation(config):: + b.ratioSum('k8s_pod_memory_working_set_bytes', 'system_memory_limit_bytes', filters), + + memoryRequestsCommitment(config):: + b.ratioSum('k8s_container_memory_request_bytes', 'k8s_node_memory_working_set_bytes', filters), + + memoryLimitsCommitment(config):: + b.ratioSum('k8s_container_memory_limit_bytes', 'k8s_node_memory_working_set_bytes', filters), // Memory usage and namespace queries - memoryUsageByNamespace(config):: ||| - sum by (k8s_cluster_name, k8s_namespace_name) ( - k8s_container_memory_request_bytes{k8s_cluster_name=~"${cluster:pipe}"} - ) - |||, + memoryUsageByNamespace(config):: + b.metricSum('k8s_pod_memory_working_set_bytes', filters, by='k8s_cluster_name'), + + memoryRequestsByNamespace(config):: + b.metricSum('k8s_container_memory_request_bytes', filters, by='k8s_cluster_name'), - memoryRequestsByNamespace(config):: '0', - memoryUsageVsRequests(config):: '0', - memoryLimitsByNamespace(config):: '0', - memoryUsageVsLimits(config):: '0', + memoryUsageVsRequests(config):: + b.ratioSum('k8s_pod_memory_working_set_bytes', 'k8s_container_memory_request_bytes', filters, by='k8s_cluster_name'), + + memoryLimitsByNamespace(config):: + b.metricSum('k8s_container_memory_limit_bytes', filters, by='k8s_cluster_name'), + + memoryUsageVsLimits(config):: + b.ratioSum('k8s_pod_memory_working_set_bytes', 'k8s_container_memory_limit_bytes', filters, by='k8s_cluster_name'), // Network queries - networkReceiveBandwidth(config):: '0', - networkTransmitBandwidth(config):: '0', - networkReceivePackets(config):: '0', - networkTransmitPackets(config):: '0', - networkReceivePacketsDropped(config):: '0', - networkTransmitPacketsDropped(config):: '0', - avgContainerReceiveBandwidth(config):: '0', - avgContainerTransmitBandwidth(config):: '0', - rateOfReceivedPackets(config):: '0', - rateOfTransmittedPackets(config):: '0', - rateOfReceivedPacketsDropped(config):: '0', - rateOfTransmittedPacketsDropped(config):: '0', + networkReceiveBandwidth(config):: + b.rateSum('k8s_pod_network_io_bytes_total', filters + ', direction="receive"', by='k8s_cluster_name'), + + networkTransmitBandwidth(config):: + b.rateSum('k8s_pod_network_io_bytes_total', filters + ', direction="transmit"', by='k8s_cluster_name'), + + networkReceivePackets(config):: + '0', + + networkTransmitPackets(config):: + '0', + + networkReceivePacketsDropped(config):: + b.rateSum('k8s_pod_network_errors_total', filters + ', direction="receive"', by='k8s_cluster_name'), + + networkTransmitPacketsDropped(config):: + b.rateSum('k8s_pod_network_errors_total', filters + ', direction="transmit"', by='k8s_cluster_name'), + + avgContainerReceiveBandwidth(config):: + b.rateAvg('k8s_pod_network_io_bytes_total', filters + ', direction="receive"', by='k8s_cluster_name'), + + avgContainerTransmitBandwidth(config):: + b.rateAvg('k8s_pod_network_io_bytes_total', filters + ', direction="transmit"', by='k8s_cluster_name'), + + rateOfReceivedPackets(config):: + '0', + + rateOfTransmittedPackets(config):: + '0', + + rateOfReceivedPacketsDropped(config):: + b.rateSum('k8s_pod_network_errors_total', filters + ', direction="receive"', by='k8s_cluster_name'), + + rateOfTransmittedPacketsDropped(config):: + b.rateSum('k8s_pod_network_errors_total', filters + ', direction="transmit"', by='k8s_cluster_name'), // Storage I/O queries - iopsReadsWrites(config):: '0', - throughputReadWrite(config):: '0', - iopsReads(config):: '0', - iopsWrites(config):: '0', - iopsReadsWritesCombined(config):: '0', - throughputRead(config):: '0', - throughputWrite(config):: '0', - throughputReadWriteCombined(config):: '0', + iopsReadsWrites(config):: + '0', + + throughputReadWrite(config):: + '0', + + iopsReads(config):: + '0', + + iopsWrites(config):: + '0', + + iopsReadsWritesCombined(config):: + '0', + + throughputRead(config):: + '0', + + throughputWrite(config):: + '0', + + throughputReadWriteCombined(config):: + '0', }