mirror of
https://gitlab.com/manzerbredes/paper-lowrate-iot.git
synced 2025-05-01 01:17:46 +00:00
Add analysis script
This commit is contained in:
parent
1ab4a6a97a
commit
7c9410246f
23 changed files with 171289 additions and 4 deletions
g5k/logs
.#analysis.org.RData.Rhistoryanalysis.org
first-try
data.csvnbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csvnbSensors_2048VMSIZE_20NBSENSORS_15580773561558077664.csvnbSensors_2048VMSIZE_300NBSENSORS_15580783771558078782.csvsimLogs.txtvmSize_1024VMSIZE_20NBSENSORS_.csvvmSize_1024VMSIZE_20NBSENSORS_15580758661558076173.csvvmSize_2048VMSIZE_20NBSENSORS_15580763621558076670.csvvmSize_4096VMSIZE_20NBSENSORS_15580768591558077167.csv
1
g5k/logs/.#analysis.org
Symbolic link
1
g5k/logs/.#analysis.org
Symbolic link
|
@ -0,0 +1 @@
|
|||
loic@lguegan.5093:1558079377
|
BIN
g5k/logs/.RData
Normal file
BIN
g5k/logs/.RData
Normal file
Binary file not shown.
25
g5k/logs/.Rhistory
Normal file
25
g5k/logs/.Rhistory
Normal file
|
@ -0,0 +1,25 @@
|
|||
library("tidyverse")
|
||||
read_csv("nbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csv")
|
||||
energy=read_csv("nbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csv")
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line()
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_point()
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(x=,y=)
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(x=0,y=0)
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0) + scale_x_datetime()
|
||||
energy$ts
|
||||
as.POSIXct(energy$ts)
|
||||
as.POSIXct(energy$ts,origin="1970-01-01")
|
||||
energy %>% mutate(ts=as.POSIXct(energy$ts,origin="1970-01-01"))
|
||||
energy %>% mutate(ts=as.POSIXct(ts,origin="1970-01-01"))
|
||||
energy=energy %>% mutate(ts=as.POSIXct(ts,origin="1970-01-01"))
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0) + scale_x_datetime()
|
||||
energy=read_csv("nbSensors_2048VMSIZE_100NBSENSORS_15580778521558078188.csv")
|
||||
energy
|
||||
energy=energy%>%mutate(ts=ts-min(ts))
|
||||
energy
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)+geom_jitter
|
||||
ggplot(energy, aes(x=ts,y=energy))+geom_line() + expand_limits(y=0)+geom_jitter()
|
||||
ggplot(energy, aes(x=ts,y=energy)) + expand_limits(y=0)+geom_jitter()
|
||||
ggplot(energy, aes(x=ts,y=energy)) + expand_limits(y=0)+geom_jitter(position = position_jitter(width = 0.4))
|
164
g5k/logs/analysis.org
Normal file
164
g5k/logs/analysis.org
Normal file
|
@ -0,0 +1,164 @@
|
|||
|
||||
|
||||
|
||||
|
||||
* Logs Analysis
|
||||
** R Scripts
|
||||
*** Generate all plots script
|
||||
#+BEGIN_SRC R
|
||||
#<<RUtils>>
|
||||
|
||||
|
||||
energy=loadEnergy
|
||||
#+END_SRC
|
||||
|
||||
|
||||
*** R Utils
|
||||
RUtils is intended to load logs (data.csv) and providing
|
||||
simple plot function for them.
|
||||
|
||||
#+NAME: RUtils
|
||||
#+BEGIN_SRC R :eval never
|
||||
library("tidyverse")
|
||||
|
||||
# Fell free to update the following
|
||||
labels=c(nbNodes="Number of nodes",sensorsNumber="Number of sensors",totalEnergy="Total Energy (J)",
|
||||
nbHop="Number of hop (AP to Cloud)", linksBandwidth="Links Bandwidth (Mbps)", avgDelay="Average Application Delay (s)",
|
||||
linksLatency="Links Latency (ms)", sensorsSendInterval="Sensors Send Interval (s)", positionSeed="Position Seed",
|
||||
sensorsEnergy="Sensors Wifi Energy Consumption (J)", networkEnergy="Network Energy Consumption (J)")
|
||||
|
||||
# Load Data
|
||||
data=read_csv("logs/data.csv")
|
||||
|
||||
loadData=function(path){
|
||||
data=read_csv(path)
|
||||
data%>%mutate(time=ts-min(ts))
|
||||
}
|
||||
|
||||
# Get label according to varName
|
||||
getLabel=function(varName){
|
||||
if(is.na(labels[varName])){
|
||||
return(varName)
|
||||
}
|
||||
return(labels[varName])
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
** Plots -> PDF
|
||||
Merge all plots in plots/ folder into a pdf file.
|
||||
#+NAME: plotToPDF
|
||||
#+BEGIN_SRC bash :results output :noweb yes
|
||||
orgFile="plots/plots.org"
|
||||
<<singleRun>> # To get all default arguments
|
||||
|
||||
# Write helper function
|
||||
function write {
|
||||
echo "$1" >> $orgFile
|
||||
}
|
||||
|
||||
echo "#+TITLE: Analysis" > $orgFile
|
||||
write "#+LATEX_HEADER: \usepackage{fullpage}"
|
||||
write "#+OPTIONS: toc:nil"
|
||||
# Default arguments
|
||||
write '\begin{center}'
|
||||
write '\begin{tabular}{lr}'
|
||||
write 'Parameters & Values\\'
|
||||
write '\hline'
|
||||
write "sensorsPktSize & ${sensorsPktSize} bytes\\\\"
|
||||
write "sensorsSendInterval & ${sensorsSendInterval}s\\\\"
|
||||
write "sensorsNumber & ${sensorsNumber}\\\\"
|
||||
write "nbHop & ${nbHop}\\\\"
|
||||
write "linksBandwidth & ${linksBandwidth}Mbps\\\\"
|
||||
write "linksLatency & ${linksLatency}ms\\\\"
|
||||
write '\end{tabular}'
|
||||
write '\newline'
|
||||
write '\end{center}'
|
||||
|
||||
for plot in $(find plots/ -type f -name "*.png")
|
||||
do
|
||||
write "\includegraphics[width=0.5\linewidth]{$(basename ${plot})}"
|
||||
done
|
||||
|
||||
# Export to pdf
|
||||
emacs $orgFile --batch -f org-latex-export-to-pdf --kill
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
|
||||
|
||||
|
||||
** CSVs -> CSV
|
||||
|
||||
#+NAME: mergeCSV
|
||||
#+BEGIN_SRC sh :results output
|
||||
#!/bin/bash
|
||||
|
||||
whichLog="first-try"
|
||||
|
||||
|
||||
logFile="$(dirname $(readlink -f $0))"/$whichLog/simLogs.txt
|
||||
dataFile=$(dirname "$logFile")/data.csv
|
||||
|
||||
|
||||
getValue () {
|
||||
line=$(echo "$1" | grep "Simulation para"|sed "s/Simulation parameters: //g")
|
||||
key=$2
|
||||
echo "$line"|awk 'BEGIN{RS=" ";FS=":"}"'$key'"==$1{gsub("\n","",$0);print $2}'
|
||||
}
|
||||
|
||||
##### Add extract info to energy #####
|
||||
IFS=$'\n'
|
||||
for cmd in $(cat $logFile|grep "Simulation parameters")
|
||||
do
|
||||
nodeName=$(getValue $cmd serverNodeName)
|
||||
from=$(getValue $cmd simStart)
|
||||
to=$(getValue $cmd simEnd)
|
||||
vmSize=$(getValue $cmd vmSize)
|
||||
nbSensors=$(getValue $cmd nbSensors)
|
||||
simKey=$(getValue $cmd simKey)
|
||||
csvFile="$whichLog/${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}.csv"
|
||||
tmpFile=${csvFile}_tmp
|
||||
echo ts,energy,simKey,vmSize,nbSensors > $tmpFile
|
||||
tail -n+2 ${csvFile} | awk '{print $0",'$simKey','$vmSize','$nbSensors'"}' >> $tmpFile
|
||||
done
|
||||
|
||||
|
||||
##### File dataFile #####
|
||||
echo ts,energy,simKey,vmSize,nbSensors > $dataFile
|
||||
for tmpFile in $(find ${whichLog}/*_tmp -type f)
|
||||
do
|
||||
tail -n+2 $tmpFile >> $dataFile
|
||||
rm $tmpFile # Pay attention to this line :D
|
||||
done
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
|
||||
** Custom Plots
|
||||
|
||||
#+NAME: ssiNet
|
||||
#+BEGIN_SRC R :noweb yes :results graphics :file plots/sensorsSendInterval-net.png
|
||||
<<RUtils>>
|
||||
|
||||
data%>%filter(simKey=="SENDINTERVAL",sensorsNumber==20) %>% ggplot(aes(x=sensorsSendInterval,y=networkEnergy))+xlab(getLabel("sensorsSendInterval"))+ylab(getLabel("networkEnergy"))+
|
||||
geom_line()+labs(title="For 20 sensors")
|
||||
ggsave("plots/sensorsSendInterval-net.png",dpi=80)
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
[[file:plots/sensorsSendInterval-net.png]]
|
||||
|
||||
|
||||
#+NAME: ssiWifi
|
||||
#+BEGIN_SRC R :noweb yes :results graphics :file plots/sensorsSendInterval-wifi.png
|
||||
<<RUtils>>
|
||||
data%>%filter(simKey=="SENDINTERVAL",sensorsNumber==20) %>% ggplot(aes(x=sensorsSendInterval,y=sensorsEnergy))+xlab(getLabel("sensorsSendInterval"))+ylab(getLabel("sensorsEnergy"))+
|
||||
geom_line() + geom_line()+labs(title="For 20 sensors")
|
||||
ggsave("plots/sensorsSendInterval-wifi.png",dpi=80)
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS: ssiWifi
|
||||
[[file:plots/sensorsSendInterval-wifi.png]]
|
||||
|
||||
#+RESULTS:
|
||||
[[file:plots/sensorsSendInterval.png]]
|
85351
g5k/logs/first-try/data.csv
Normal file
85351
g5k/logs/first-try/data.csv
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
30
g5k/logs/first-try/simLogs.txt
Normal file
30
g5k/logs/first-try/simLogs.txt
Normal file
|
@ -0,0 +1,30 @@
|
|||
---------- Simulation (key=vmSize) start at 1558075866 (Fri May 17 08:51:06 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558075866 simEnd:1558076173 duration:307 serverNodeName:nova-20 vmSize:1024
|
||||
./recordEnergy.sh nova nova-20 1558075866 1558076173 energy_vmSize_20NS_1024vmSize_1558075866_1558076173.csv
|
||||
---------- Simulation (key=vmSize) end at 1558076173 (Fri May 17 08:56:13 CEST 2019)
|
||||
|
||||
---------- Simulation (key=vmSize) start at 1558076362 (Fri May 17 08:59:22 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558076362 simEnd:1558076670 duration:308 serverNodeName:nova-20 vmSize:2048
|
||||
./recordEnergy.sh nova nova-20 1558076362 1558076670 energy_vmSize_20NS_2048vmSize_1558076362_1558076670.csv
|
||||
---------- Simulation (key=vmSize) end at 1558076670 (Fri May 17 09:04:30 CEST 2019)
|
||||
|
||||
---------- Simulation (key=vmSize) start at 1558076859 (Fri May 17 09:07:39 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:vmSize simStart:1558076859 simEnd:1558077167 duration:308 serverNodeName:nova-20 vmSize:4096
|
||||
./recordEnergy.sh nova nova-20 1558076859 1558077167 energy_vmSize_20NS_4096vmSize_1558076859_1558077167.csv
|
||||
---------- Simulation (key=vmSize) end at 1558077167 (Fri May 17 09:12:47 CEST 2019)
|
||||
|
||||
---------- Simulation (key=nbSensors) start at 1558077356 (Fri May 17 09:15:56 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:20 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558077356 simEnd:1558077664 duration:308 serverNodeName:nova-20 vmSize:2048
|
||||
./recordEnergy.sh nova nova-20 1558077356 1558077664 energy_nbSensors_20NS_2048vmSize_1558077356_1558077664.csv
|
||||
---------- Simulation (key=nbSensors) end at 1558077664 (Fri May 17 09:21:04 CEST 2019)
|
||||
|
||||
---------- Simulation (key=nbSensors) start at 1558077852 (Fri May 17 09:24:12 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:100 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558077852 simEnd:1558078188 duration:336 serverNodeName:nova-20 vmSize:2048
|
||||
./recordEnergy.sh nova nova-20 1558077852 1558078188 energy_nbSensors_100NS_2048vmSize_1558077852_1558078188.csv
|
||||
---------- Simulation (key=nbSensors) end at 1558078188 (Fri May 17 09:29:48 CEST 2019)
|
||||
|
||||
---------- Simulation (key=nbSensors) start at 1558078377 (Fri May 17 09:32:57 CEST 2019)
|
||||
Simulation parameters: serverNode:nova-20.lyon.grid5000.fr serverIp:10.140.0.1 serverMac:00:16:3E:8C:00:01 clientNode:nova-21.lyon.grid5000.fr clientNode:nova-21.lyon.grid5000.fr clientMac:00:16:3E:8C:00:02 delay:60 nbSensors:300 nbSensorsFactor:3 requestPerSensors:30 sensorsRequestPerSec: simKey:nbSensors simStart:1558078377 simEnd:1558078782 duration:405 serverNodeName:nova-20 vmSize:2048
|
||||
./recordEnergy.sh nova nova-20 1558078377 1558078782 energy_nbSensors_300NS_2048vmSize_1558078377_1558078782.csv
|
||||
---------- Simulation (key=nbSensors) end at 1558078782 (Fri May 17 09:39:42 CEST 2019)
|
||||
|
19
g5k/logs/first-try/vmSize_1024VMSIZE_20NBSENSORS_.csv
Normal file
19
g5k/logs/first-try/vmSize_1024VMSIZE_20NBSENSORS_.csv
Normal file
|
@ -0,0 +1,19 @@
|
|||
ts,energy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue