From 959b4daaef6f5b170c44a39f105a7193adb8730f Mon Sep 17 00:00:00 2001 From: ThaysonScript Date: Mon, 2 Sep 2024 00:02:50 -0300 Subject: [PATCH 1/2] trying to organize, comment and add the new cpu metric --- rejuvenation/machine_resources_monitoring/run | 55 +++++++++++-------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/rejuvenation/machine_resources_monitoring/run b/rejuvenation/machine_resources_monitoring/run index 3c559ce..bd30ddc 100755 --- a/rejuvenation/machine_resources_monitoring/run +++ b/rejuvenation/machine_resources_monitoring/run @@ -1,41 +1,47 @@ #!/usr/bin/env bash -mkdir -p ./machine_resources_monitoring/logs +mkdir -p ./machine_resources_monitoring/logs # MAKE LOGS FOLDER IF NOT EXIST -VIRTUALIZER_TYPE=$1 +VIRTUALIZER_TYPE=$1 # GET VIRTUALIZER TYPE -cd "$(dirname "$0")" || exit +cd "$(dirname "$0")" || exit # ???????? MACHINE_HEADERS() { - echo "usr;nice;sys;iowait;soft;date_time" >logs/machine_monitoring-cpu.csv - echo "used;date_time" >logs/machine_monitoring-disk.csv - echo "used;cached;buffer;swap-free;date_time" >logs/machine_monitoring-mem.csv - echo "num_zombies;date_time" >logs/machine_monitoring-zombies.csv - echo "offline_count;seconds;date_time" >logs/machineHost_server_status.csv + echo "%usr;%nice;%sys;%iowait;%irq;%soft;%steal;%guest;%gnice;%idle;%total_cpu;date_time" > logs/cpu_monitoring_sumAllCores.csv # CPU SUM_ALL_CORES HEADER METRICS + echo "usr;nice;sys;iowait;soft;date_time" >logs/machine_monitoring-cpu.csv # CPU AVERAGE HEADER METRICS + echo "used;date_time" >logs/machine_monitoring-disk.csv # DISK HEADER METRICS + echo "used;cached;buffer;swap-free;date_time" >logs/machine_monitoring-mem.csv # MEMORY HEADER METRICS + echo "num_zombies;date_time" >logs/machine_monitoring-zombies.csv # ZUMBIE HEADER METRICS + echo "offline_count;seconds;date_time" >logs/machineHost_server_status.csv # STATUS SERVER HEADER METRICS } VBOX_HEADERS() { - echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxSVC.csv - echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxHeadless.csv - echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxXPCOMIPCD.csv + echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxHeadless.csv # VBOXHEADLESS HEADER METRICS + echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxSVC.csv # VBOXSVC HEADER METRICS + echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxXPCOMIPCD.csv # VBOXXPCOMIPCD HEADER METRICS } KVM_HEADERS() { - echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/kvm_Headless_monitoring.csv - echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/kvm_libvirtd_service_monitoring.csv + echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/kvm_Headless_monitoring.csv # KVMHEADLESS HEADER METRICS + echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/kvm_libvirtd_service_monitoring.csv # LIBVIRT SERVICE HEADER METRICS } XEN_HEADERS() { - echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/xen_monitoring-xenbus.csv - echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-oxenstored.csv - echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xen-balloon.csv - echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xenconsoled.csv + echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/xen_monitoring-xenbus.csv # XENBUS HEADER METRICS + echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-oxenstored.csv # OXENSTORED HEADER METRICS + echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xen-balloon.csv # XENBALLOON HEADER METRICS + echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xenconsoled.csv # XENCONSOLED HEADER METRICS } -MACHINE_HEADERS +MACHINE_HEADERS # RUN HEADERS FOR HOST METRICS -stap -o logs/fragmentation.csv memory_fragmentation/fragmentation2b.stp & +stap -o logs/fragmentation.csv memory_fragmentation/fragmentation2b.stp & # MEMORY FRAGMENTATION SCRIPTS +# ######## START HEADER AND PROCESSES BASED ON VIRTUALIZER TYPE +# VBOX +# KVM +# XEN +# LXC case $VIRTUALIZER_TYPE in "vbox") VBOX_HEADERS @@ -64,16 +70,19 @@ case $VIRTUALIZER_TYPE in ;; esac +# GET INFRASTRUCTURE OUTAGE WHEN IT HAPPENS general_resources/server-down-count.sh "$VIRTUALIZER_TYPE" & while true; do : date_time=$(date +%d-%m-%Y-%H:%M:%S) - source general_resources/monitoring-cpu.sh - source general_resources/monitoring-disk.sh - source general_resources/monitoring-mem.sh - source general_resources/monitoring-zombies.sh + # MAYBE WE SHOULD REPLACE "SOURCE" FOR "BASH" AT SOME POINT + source general_resources/MonitoringCpuSumAllCores.sh + source general_resources/monitoring-cpu.sh # MONITOR AVERAGE CPU CONSUMPTION BY ALL CORE + source general_resources/monitoring-disk.sh # MONITOR DISK CONSUMPTION ON ROOT UNIT "/" + source general_resources/monitoring-mem.sh # MONITOR MEMORY CONSUMPTION, BUFFER, CACHE AND SWAP + source general_resources/monitoring-zombies.sh # MONITOR NUMBER OF ZOMBIE PROCESSES sleep 1 done From cbf2234b2fb59b09bb0fb00296d2f209aa19e020 Mon Sep 17 00:00:00 2001 From: ThaysonScript Date: Mon, 2 Sep 2024 00:04:10 -0300 Subject: [PATCH 2/2] script to monitor cpu usage by adding the cores by status to get the total usage --- .../MonitoringCpuSumAllCores.sh | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 rejuvenation/machine_resources_monitoring/general_resources/MonitoringCpuSumAllCores.sh diff --git a/rejuvenation/machine_resources_monitoring/general_resources/MonitoringCpuSumAllCores.sh b/rejuvenation/machine_resources_monitoring/general_resources/MonitoringCpuSumAllCores.sh new file mode 100644 index 0000000..2f3f572 --- /dev/null +++ b/rejuvenation/machine_resources_monitoring/general_resources/MonitoringCpuSumAllCores.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +SumCpuMetrics() { + mpstat -P ALL 1 1 | awk -v date_time="$date_time" ' + /^[0-9]/ { + + # Replaces commas with periods to treat as floating point + gsub(",", ".", $3); + gsub(",", ".", $4); + gsub(",", ".", $5); + gsub(",", ".", $6); + gsub(",", ".", $7); + gsub(",", ".", $8); + gsub(",", ".", $9); + gsub(",", ".", $10); + gsub(",", ".", $11); + gsub(",", ".", $12); + + # Accumulates column values + if (NR > 1) { + usr += $3 + 0; + nice += $4 + 0; + sys += $5 + 0; + iowait += $6 + 0; + irq += $7 + 0; + soft += $8 + 0; + steal += $9 + 0; + guest += $10 + 0; + gnice += $11 + 0; + idle += $12 + 0; + + count++; + } + } + + END { + # Calculates the average for the %idle column only + avg_idle = (count > 0) ? (idle / count) : 0; + + # Calculates the average only for Calculates the total CPU usage for the %idle column + total_cpu = 100 - avg_idle; + + # Prints the header and data in CSV format separated by ; + printf "%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%s\n", + usr, nice, sys, iowait, irq, soft, steal, guest, gnice, avg_idle, total_cpu, date_time + + }' >> logs/cpu_monitoring_sumAllCores.csv +} + +SumCpuMetrics \ No newline at end of file