Skip to content

Commit ae98142

Browse files
Merge pull request #2 from ThaysonScript/cpu-metrics
Cpu metrics
2 parents 526e8b9 + 5ae236f commit ae98142

File tree

2 files changed

+82
-23
lines changed

2 files changed

+82
-23
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/usr/bin/env bash
2+
3+
SumCpuMetrics() {
4+
mpstat -P ALL 1 1 | awk -v date_time="$date_time" '
5+
/^[0-9]/ {
6+
7+
# Replaces commas with periods to treat as floating point
8+
gsub(",", ".", $3);
9+
gsub(",", ".", $4);
10+
gsub(",", ".", $5);
11+
gsub(",", ".", $6);
12+
gsub(",", ".", $7);
13+
gsub(",", ".", $8);
14+
gsub(",", ".", $9);
15+
gsub(",", ".", $10);
16+
gsub(",", ".", $11);
17+
gsub(",", ".", $12);
18+
19+
# Accumulates column values
20+
if (NR > 1) {
21+
usr += $3 + 0;
22+
nice += $4 + 0;
23+
sys += $5 + 0;
24+
iowait += $6 + 0;
25+
irq += $7 + 0;
26+
soft += $8 + 0;
27+
steal += $9 + 0;
28+
guest += $10 + 0;
29+
gnice += $11 + 0;
30+
idle += $12 + 0;
31+
32+
count++;
33+
}
34+
}
35+
36+
END {
37+
# Calculates the average for the %idle column only
38+
avg_idle = (count > 0) ? (idle / count) : 0;
39+
40+
# Calculates the average only for Calculates the total CPU usage for the %idle column
41+
total_cpu = 100 - avg_idle;
42+
43+
# Prints the header and data in CSV format separated by ;
44+
printf "%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%.2f;%s\n",
45+
usr, nice, sys, iowait, irq, soft, steal, guest, gnice, avg_idle, total_cpu, date_time
46+
47+
}' >> logs/cpu_monitoring_sumAllCores.csv
48+
}
49+
50+
SumCpuMetrics
Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,48 @@
11
#!/usr/bin/env bash
22

3-
mkdir -p ./machine_resources_monitoring/logs
3+
mkdir -p ./machine_resources_monitoring/logs # MAKE LOGS FOLDER IF NOT EXIST
44

5-
VIRTUALIZER_TYPE=$1
5+
VIRTUALIZER_TYPE=$1 # GET VIRTUALIZER TYPE
66

7-
cd "$(dirname "$0")" || exit
7+
cd "$(dirname "$0")" || exit # ????????
88

99
MACHINE_HEADERS() {
10-
echo "usr;nice;sys;iowait;soft;date_time" >logs/machine_monitoring-cpu.csv
11-
echo "used;date_time" >logs/machine_monitoring-disk.csv
12-
echo "used;cached;buffer;swap-free;date_time" >logs/machine_monitoring-mem.csv
13-
echo "num_zombies;date_time" >logs/machine_monitoring-zombies.csv
14-
echo "offline_count;seconds;date_time" >logs/machineHost_server_status.csv
10+
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
11+
echo "usr;nice;sys;iowait;soft;date_time" >logs/machine_monitoring-cpu.csv # CPU AVERAGE HEADER METRICS
12+
echo "used;date_time" >logs/machine_monitoring-disk.csv # DISK HEADER METRICS
13+
echo "used;cached;buffer;swap-free;date_time" >logs/machine_monitoring-mem.csv # MEMORY HEADER METRICS
14+
echo "num_zombies;date_time" >logs/machine_monitoring-zombies.csv # ZUMBIE HEADER METRICS
15+
echo "offline_count;seconds;date_time" >logs/machineHost_server_status.csv # STATUS SERVER HEADER METRICS
1516
}
1617

1718
VBOX_HEADERS() {
18-
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxSVC.csv
19-
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxHeadless.csv
20-
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxXPCOMIPCD.csv
19+
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxHeadless.csv # VBOXHEADLESS HEADER METRICS
20+
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxSVC.csv # VBOXSVC HEADER METRICS
21+
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/vbox_monitoring-VBoxXPCOMIPCD.csv # VBOXXPCOMIPCD HEADER METRICS
2122
}
2223

2324
KVM_HEADERS() {
24-
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/kvm_Headless_monitoring.csv
25-
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/kvm_libvirtd_service_monitoring.csv
25+
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/kvm_Headless_monitoring.csv # KVMHEADLESS HEADER METRICS
26+
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/kvm_libvirtd_service_monitoring.csv # LIBVIRT SERVICE HEADER METRICS
2627
}
2728

2829
XEN_HEADERS() {
2930
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"
30-
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/xen_monitoring-xenbus.csv
31-
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-oxenstored.csv
32-
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xen-balloon.csv
33-
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xenconsoled.csv
31+
echo "cpu;mem;vmrss;vsz;threads;swap;date_time" >logs/xen_monitoring-xenbus.csv # XENBUS HEADER METRICS
32+
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-oxenstored.csv # OXENSTORED HEADER METRICS
33+
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xen-balloon.csv # XENBALLOON HEADER METRICS
34+
echo "cpu;mem;vsz;rss;threads;swap;date_time" >logs/xen_monitoring-xenconsoled.csv # XENCONSOLED HEADER METRICS
3435
}
3536

36-
MACHINE_HEADERS
37+
MACHINE_HEADERS # RUN HEADERS FOR HOST METRICS
3738

38-
stap -o logs/fragmentation.csv memory_fragmentation/fragmentation2b.stp &
39+
stap -o logs/fragmentation.csv memory_fragmentation/fragmentation2b.stp & # MEMORY FRAGMENTATION SCRIPTS
3940

41+
# ######## START HEADER AND PROCESSES BASED ON VIRTUALIZER TYPE
42+
# VBOX
43+
# KVM
44+
# XEN
45+
# LXC
4046
case $VIRTUALIZER_TYPE in
4147
"vbox")
4248
VBOX_HEADERS
@@ -66,16 +72,19 @@ case $VIRTUALIZER_TYPE in
6672
;;
6773
esac
6874

75+
# GET INFRASTRUCTURE OUTAGE WHEN IT HAPPENS
6976
general_resources/server-down-count.sh "$VIRTUALIZER_TYPE" &
7077

7178
while true; do
7279
:
7380
date_time=$(date +%d-%m-%Y-%H:%M:%S)
7481

75-
source general_resources/monitoring-cpu.sh
76-
source general_resources/monitoring-disk.sh
77-
source general_resources/monitoring-mem.sh
78-
source general_resources/monitoring-zombies.sh
82+
# MAYBE WE SHOULD REPLACE "SOURCE" FOR "BASH" AT SOME POINT
83+
source general_resources/MonitoringCpuSumAllCores.sh
84+
source general_resources/monitoring-cpu.sh # MONITOR AVERAGE CPU CONSUMPTION BY ALL CORE
85+
source general_resources/monitoring-disk.sh # MONITOR DISK CONSUMPTION ON ROOT UNIT "/"
86+
source general_resources/monitoring-mem.sh # MONITOR MEMORY CONSUMPTION, BUFFER, CACHE AND SWAP
87+
source general_resources/monitoring-zombies.sh # MONITOR NUMBER OF ZOMBIE PROCESSES
7988

8089
sleep 1
8190
done

0 commit comments

Comments
 (0)