Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
55 changes: 32 additions & 23 deletions rejuvenation/machine_resources_monitoring/run
Original file line number Diff line number Diff line change
@@ -1,42 +1,48 @@
#!/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 "NAME;STATE;CPU(sec);CPU(%);MEM(k);MEM(%);MAXMEM(k);MAXMEM(%);VCPUS;NETS;NETTX(k);NETRX(k);VBDS;VBD_OO;VBD_RD;VBD_WR;VBD_RSECT;VBD_WSECT;SSID" > "logs/xenCpuMonitoring.csv"
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
Expand Down Expand Up @@ -66,16 +72,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