|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +SNO_HOSTNAME="${1:-zt-sno3}" |
| 4 | +NON_RESERVED_CORES="2-31,34-63" |
| 5 | + |
| 6 | +# NODE CPU AVG |
| 7 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=100 * avg(1 - rate(node_cpu_seconds_total{mode="idle"}[30m])) by (instance)' | jq -r '.data.result[] | [.value[0], .value[1], .metric.instance] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_avg_node_noidle_cpu_percentage.txt |
| 8 | + |
| 9 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=100 * max(1 - rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance)' | jq -r '.data.result[] | [.value[0], .value[1], .metric.instance] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_max_node_noidle_cpu_percentage.txt |
| 10 | + |
| 11 | +# NODE MEMORY |
| 12 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=100 * (1 - (sum(avg_over_time(node_memory_MemAvailable_bytes{job="node-exporter"}[30m]))/sum(avg_over_time(node_memory_MemTotal_bytes{job="node-exporter"}[30m]))))' | jq -r '.data.result[] | [.value[0], .value[1]] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_node_percentage_free_memory.txt |
| 13 | + |
| 14 | +# CONTAINER CPU USAGE SLICES |
| 15 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc((rate(container_cpu_usage_seconds_total{id=~"/system.slice/.+"}[30m])))' | jq -r '.data.result[] | [.value[0], .value[1], .metric.cpu, .metric.service, .metric.id] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_system-slice-cpu.txt |
| 16 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc((rate(container_cpu_usage_seconds_total{id=~"/ovs.slice/.+"}[30m])))' | jq -r '.data.result[] | [.value[0], .value[1], .metric.cpu, .metric.service, .metric.id] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_ovs-slice-cpu.txt |
| 17 | + |
| 18 | +# CONTAINER CPU USAGE |
| 19 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(avg_over_time(pod:container_cpu_usage:sum[30m]))' | jq -r '.data.result[] | [.value[0], .value[1], .metric.namespace, .metric.pod] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_pod-cpu.txt |
| 20 | + |
| 21 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(rate(container_cpu_cfs_throttled_periods_total[30m]))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.service, .metric.endpoint, .metric.id, .metric.namespace, .metric.pod, .metric.container] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_container_cpu_cfs_throttled_periods_total.txt |
| 22 | + |
| 23 | +## NODE RESERVED CPU USAGE Replace 0|1|32|33 with the reserved cpus |
| 24 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=rate(node_cpu_seconds_total{cpu=~"0|1|32|33"}[30m])' | jq -r '.data.result[] | [.value[0], .value[1], .metric.cpu, .metric.endpoint, .metric.mode, .metric.service, .metric.namespace, .metric.pod, .metric.container] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_reserved-cpu-usage.txt |
| 25 | + |
| 26 | +# Container Memory |
| 27 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(sum(container_memory_working_set_bytes{cluster="",container!=""}) by (pod))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.pod] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_memory-working-set-bytes.txt |
| 28 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(sum(container_memory_rss{cluster="",container!=""}) by (pod))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.pod] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_memory-rss-bytes.txt |
| 29 | + |
| 30 | +# NODE Networking |
| 31 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(rate(node_network_receive_bytes_total[30m]))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.device, .metric.endpoint, .metric.service, .metric.namespace, .metric.pod, .metric.container] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_node-network-receive-bytes-total.txt |
| 32 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(rate(node_network_transmit_bytes_total[30m]))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.device, .metric.endpoint, .metric.service, .metric.namespace, .metric.pod, .metric.container] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_node-network-transmit-bytes-total.txt |
| 33 | + |
| 34 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sum(irate(node_network_receive_bytes_total[30m])*8/(1024*1024)) by (instance)' |jq -r '.data.result[] | [.value[0], .value[1], .metric.instance] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_node-network-receive-mbps-total.txt |
| 35 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sum(irate(node_network_transmit_bytes_total[30m])*8/(1024*1024)) by (instance)' |jq -r '.data.result[] | [.value[0], .value[1], .metric.instance] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_node-network-transmit-mbps-total.txt |
| 36 | + |
| 37 | + |
| 38 | +# CONTAINER Networking |
| 39 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(rate(container_network_transmit_bytes_total{interface="eth0"}[30m]))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.name, .metric.id, .metric.interface, .metric.service, .metric.namespace, .metric.pod, .metric.container] | @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_container-network-transmit-bytes-total.txt |
| 40 | +oc --kubeconfig=/root/${SNO_HOSTNAME}/kubeconfig rsh -n openshift-monitoring prometheus-k8s-0 curl -ks 'http://localhost:9090/api/v1/query' --data-urlencode 'query=sort_desc(rate(container_network_receive_bytes_total{interface="eth0"}[30m]))' |jq -r '.data.result[] | [.value[0], .value[1], .metric.name, .metric.id, .metric.interface, .metric.service, .metric.namespace, .metric.pod, .metric.container]| @tsv' | sed 's/\t/ /g' >> ${SNO_HOSTNAME}_container-network-receive-bytes-total.txt |
| 41 | + |
| 42 | +# On the SNO |
| 43 | +#Collect after the above |
| 44 | +ssh core@${SNO_HOSTNAME} sudo cat /proc/meminfo > ${SNO_HOSTNAME}_proc_meminfo.txt |
| 45 | +#taskset -c ${NON_RESERVED_CORES} top -b -1 -d 5 -n 360 -i > /home/core/top.out |
0 commit comments