From 7ee1019352bd50d2162dba0d69ce61f067b1786d Mon Sep 17 00:00:00 2001 From: ricoberger Date: Wed, 6 Jan 2021 20:32:08 +0100 Subject: [PATCH] Improve default metrics Instead of container_memory_usage_bytes we are now using container_memory_usage_bytes for the memory metrics now. The advatange of this that the graphs will be consistent with the metrics retrieved by the metrics API. For the node and cluster metrics we are also switching to this metric. So that the results for the graphs are the same as reported by kubectl top nodes. We also have adjusted the metrics for CPU usage and the Network I/O. --- src/components/overview/OverviewPage.tsx | 8 ++---- .../cluster/namespaces/NamespaceDetails.tsx | 14 +++------- .../resources/cluster/nodes/NodeDetails.tsx | 14 +++------- .../resources/workloads/pods/PodDetails.tsx | 28 +++++++------------ 4 files changed, 20 insertions(+), 44 deletions(-) diff --git a/src/components/overview/OverviewPage.tsx b/src/components/overview/OverviewPage.tsx index 7b658c16..5ce31086 100644 --- a/src/components/overview/OverviewPage.tsx +++ b/src/components/overview/OverviewPage.tsx @@ -102,7 +102,7 @@ const OverviewPage: React.FunctionComponent = () => { queries: [ { label: 'Current', - query: `sum(irate(container_cpu_usage_seconds_total{image!="", container!="", container!="POD"}[4m]))`, + query: `sum(max(rate(container_cpu_usage_seconds_total{id="/"}[2m])) by (node))`, }, { label: 'Requested', @@ -132,7 +132,7 @@ const OverviewPage: React.FunctionComponent = () => { queries: [ { label: 'Current', - query: `sum(container_memory_usage_bytes{container!="", container!="POD"}) / 1024 / 1024 / 1024`, + query: `sum(max(container_memory_working_set_bytes{id="/"}) by (node)) / 1024 / 1024 / 1024`, }, { label: 'Requested', @@ -142,10 +142,6 @@ const OverviewPage: React.FunctionComponent = () => { label: 'Limit', query: `sum(kube_pod_container_resource_limits{resource="memory", container!=""}) / 1024 / 1024 / 1024`, }, - { - label: 'Cache', - query: `sum(container_memory_cache{container!="", container!="POD"}) / 1024 / 1024 / 1024`, - }, { label: 'Allocatable', query: `sum(kube_node_status_allocatable_memory_bytes) / 1024 / 1024 / 1024`, diff --git a/src/components/resources/cluster/namespaces/NamespaceDetails.tsx b/src/components/resources/cluster/namespaces/NamespaceDetails.tsx index fb7051e3..c611e577 100644 --- a/src/components/resources/cluster/namespaces/NamespaceDetails.tsx +++ b/src/components/resources/cluster/namespaces/NamespaceDetails.tsx @@ -61,9 +61,9 @@ const NamespaceDetails: React.FunctionComponent = ({ ite queries: [ { label: 'Current', - query: `sum(irate(container_cpu_usage_seconds_total{namespace="${ + query: `sum(max(rate(container_cpu_usage_seconds_total{namespace="${ item.metadata ? item.metadata.name : '' - }", image!="", container!="", container!="POD"}[4m]))`, + }", image!="", container!="POD", container!=""}[2m])) by (pod, container))`, }, { label: 'Requested', @@ -93,9 +93,9 @@ const NamespaceDetails: React.FunctionComponent = ({ ite queries: [ { label: 'Current', - query: `sum(container_memory_usage_bytes{namespace="${ + query: `sum(max(container_memory_working_set_bytes{namespace="${ item.metadata ? item.metadata.name : '' - }", container!="", container!="POD"}) / 1024 / 1024`, + }", container!="POD", container!=""}) by (pod, container)) / 1024 / 1024`, }, { label: 'Requested', @@ -109,12 +109,6 @@ const NamespaceDetails: React.FunctionComponent = ({ ite item.metadata ? item.metadata.name : '' }", resource="memory", container!=""}) / 1024 / 1024`, }, - { - label: 'Cache', - query: `sum(container_memory_cache{namespace="${ - item.metadata ? item.metadata.name : '' - }", container!="", container!="POD"}) / 1024 / 1024`, - }, ], }, ]} diff --git a/src/components/resources/cluster/nodes/NodeDetails.tsx b/src/components/resources/cluster/nodes/NodeDetails.tsx index 8731f927..eb681d9d 100644 --- a/src/components/resources/cluster/nodes/NodeDetails.tsx +++ b/src/components/resources/cluster/nodes/NodeDetails.tsx @@ -197,9 +197,9 @@ const NodeDetails: React.FunctionComponent = ({ item, type }: queries: [ { label: 'Current', - query: `sum(irate(container_cpu_usage_seconds_total{node="${ + query: `sum(max(rate(container_cpu_usage_seconds_total{id="/", node="${ item.metadata ? item.metadata.name : '' - }", image!="", container!="", container!="POD"}[4m]))`, + }"}[2m])))`, }, { label: 'Requested', @@ -235,9 +235,9 @@ const NodeDetails: React.FunctionComponent = ({ item, type }: queries: [ { label: 'Current', - query: `sum(container_memory_usage_bytes{node="${ + query: `sum(max(container_memory_working_set_bytes{id="/", node="${ item.metadata ? item.metadata.name : '' - }", container!="", container!="POD"}) / 1024 / 1024 / 1024`, + }"})) / 1024 / 1024 / 1024`, }, { label: 'Requested', @@ -251,12 +251,6 @@ const NodeDetails: React.FunctionComponent = ({ item, type }: item.metadata ? item.metadata.name : '' }", resource="memory", container!=""}) / 1024 / 1024 / 1024`, }, - { - label: 'Cache', - query: `sum(container_memory_cache{node="${ - item.metadata ? item.metadata.name : '' - }", container!="", container!="POD"}) / 1024 / 1024 / 1024`, - }, { label: 'Allocatable', query: `sum(kube_node_status_allocatable_memory_bytes{node="${ diff --git a/src/components/resources/workloads/pods/PodDetails.tsx b/src/components/resources/workloads/pods/PodDetails.tsx index 01578d25..1321bdcf 100644 --- a/src/components/resources/workloads/pods/PodDetails.tsx +++ b/src/components/resources/workloads/pods/PodDetails.tsx @@ -216,11 +216,11 @@ const PodDetails: React.FunctionComponent = ({ item, type }: I queries: [ { label: 'Current', - query: `sum(irate(container_cpu_usage_seconds_total{namespace="${ + query: `sum(max(rate(container_cpu_usage_seconds_total{namespace="${ item.metadata ? item.metadata.namespace : '' }", image!="", pod="${ item.metadata ? item.metadata.name : '' - }", container=~"{{ .Container }}", container!="POD"}[4m]))`, + }", container=~"{{ .Container }}", container!="POD", container!=""}[2m])) by (container))`, }, { label: 'Requested', @@ -254,11 +254,11 @@ const PodDetails: React.FunctionComponent = ({ item, type }: I queries: [ { label: 'Current', - query: `sum(container_memory_usage_bytes{namespace="${ + query: `sum(max(container_memory_working_set_bytes{namespace="${ item.metadata ? item.metadata.namespace : '' }", pod="${ item.metadata ? item.metadata.name : '' - }", container=~"{{ .Container }}", container!="POD"}) / 1024 / 1024`, + }", container=~"{{ .Container }}", container!="POD", container!=""}) by (container)) / 1024 / 1024`, }, { label: 'Requested', @@ -276,14 +276,6 @@ const PodDetails: React.FunctionComponent = ({ item, type }: I item.metadata ? item.metadata.name : '' }", container=~"{{ .Container }}"}) / 1024 / 1024`, }, - { - label: 'Cache', - query: `sum(container_memory_cache{namespace="${ - item.metadata ? item.metadata.namespace : '' - }", pod="${ - item.metadata ? item.metadata.name : '' - }", container=~"{{ .Container }}", container!="POD"}) / 1024 / 1024`, - }, ], }, { @@ -299,16 +291,16 @@ const PodDetails: React.FunctionComponent = ({ item, type }: I type: 'area', queries: [ { - label: 'RX', - query: `sort_desc(sum by (pod) (irate(container_network_receive_bytes_total{namespace="${ + label: 'Receive', + query: `sum(rate(container_network_receive_bytes_total{namespace="${ item.metadata ? item.metadata.namespace : '' - }", pod="${item.metadata ? item.metadata.name : ''}"}[4m]))) / 1024 / 1024`, + }", pod="${item.metadata ? item.metadata.name : ''}"}[2m])) by (pod) / 1024 / 1024`, }, { - label: 'TX', - query: `sort_desc(sum by (pod) (irate(container_network_transmit_bytes_total{namespace="${ + label: 'Transmit', + query: `-sum(rate(container_network_transmit_bytes_total{namespace="${ item.metadata ? item.metadata.namespace : '' - }", pod="${item.metadata ? item.metadata.name : ''}"}[4m]))) / 1024 / 1024`, + }", pod="${item.metadata ? item.metadata.name : ''}"}[2m])) by (pod) / 1024 / 1024`, }, ], },