[R] Fwd: Combining stacked bar charts for logfile analysis

Jan Vanvinkenroye jan.vanvinkenroye at tik.uni-stuttgart.de
Wed Oct 29 17:56:47 CET 2014



Anfang der weitergeleiteten Nachricht:

Von: Jan Vanvinkenroye <jan.vanvinkenroye at tik.uni-stuttgart.de>
Datum: 29. Oktober 2014 17:52:06 MEZ
Betreff: Combining stacked bar charts for logfile analysis
An: r-help at r-project.org

Hello Everyone,

in order to assess webserver response time i would like to combine some information from
a apache logfile. [1] This is my first project using R and I would be very gratefull if someone
could help me or point me in the right direction :): 


So far I managed to read the file to a dataframe, factorize the response time (duration_microseconds) to 
three discrete classes ("gut", "ok", "schlecht") <=50000,<=200000ms,<20000ms. 

barplot(table(access_log$bewertung), beside = FALSE, width = 1, xlab="Response Time", ylab="Percentage", col=c("green", "yellow", "red"))

gives me an aggregated percentage of response time of every request in the logfile and

qplot(time, duration_microseconds, data=access_log, shape=bewertung)

returns plot of the response times over time. 


How can i combine both plots with a stacked bar chart/hour/day? The given example only contains only 20 lines
the original log file serveral thousand. A plot of this information led to a somehow crowded (=mostly black) 
plot. 




[1] my data.frame
access_log <-
structure(list(host = structure(c(7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L), .Label = c("126.88.69.199", 
"141.43.100.201", "141.58.109.90", "141.58.110.210", "0.0.0.0", 
"141.58.1", "1.1.1.1"), class = "factor"), time = c("2014-07-17 16:25:02", 
"2014-07-17 16:25:02", "2014-07-17 16:25:02", "2014-07-17 16:25:08", 
"2014-07-17 16:25:02", "2014-07-17 16:25:02", "2014-07-17 16:25:12", 
"2014-07-17 16:25:13", "2014-07-17 16:25:13", "2014-07-17 16:25:12", 
"2014-07-17 16:25:02", "2014-07-17 16:25:02", "2014-07-17 16:25:02", 
"2014-07-17 16:25:08", "2014-07-17 16:25:02", "2014-07-17 16:25:02", 
"2014-07-17 16:25:12", "2014-07-17 16:25:13", "2014-07-17 16:25:13", 
"2014-07-17 16:25:12"), time_zone = structure(c(1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L
), .Label = "+0200", class = "factor"), request = structure(c(4L, 
4L, 4L, 4L, 1L, 1L, 3L, 4L, 1L, 2L, 4L, 4L, 4L, 4L, 1L, 1L, 3L, 
4L, 1L, 2L), .Label = c("GET /home/ HTTP/1.1", "GET /home/bildergalerie/Beratung.jpg HTTP/1.1", 
"GET /home/css/realm_xhtml_2.0.css HTTP/1.1", "GET /home/r.html HTTP/1.1"
), class = "factor"), status = structure(c(2L, 2L, 2L, 2L, 1L, 
1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L), .Label = c("200", 
"302"), class = "factor"), bytes = structure(c(1L, 1L, 1L, 1L, 
3L, 3L, 4L, 1L, 3L, 2L, 1L, 1L, 1L, 1L, 3L, 3L, 4L, 1L, 3L, 2L
), .Label = c("-", "109640", "27930", "856"), class = "factor"), 
   referal = structure(c(1L, 1L, 2L, 1L, 2L, 1L, 3L, 1L, 1L, 
   3L, 1L, 1L, 2L, 1L, 2L, 1L, 3L, 1L, 1L, 3L), .Label = c("-", 
   "http://en.wikipedia.org/wiki/University_of_Stuttgart", "http://www.uni-stuttgart.de/home/"
   ), class = "factor"), browser = structure(c(2L, 2L, 3L, 1L, 
   3L, 2L, 3L, 2L, 1L, 3L, 2L, 2L, 3L, 1L, 3L, 2L, 3L, 2L, 1L, 
   3L), .Label = c("libwww-perl/5.805", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", 
   "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2095.0 Safari/537.36"
   ), class = "factor"), duration_seconds = c(0, 0, 0, 0, 8, 
   9, 0, 0, 0, 1, 0, 0, 0, 0, 8, 9, 0, 0, 0, 1), duration_microseconds = c(11263, 
   2386, 1626, 1970, 8944261, 9474883, 1018, 2953, 73138, 1080564, 
   11263, 2386, 1626, 1970, 8944261, 9474883, 1018, 2953, 73138, 
   1080564), bewertung = structure(c(1L, 1L, 1L, 1L, 3L, 3L, 
   1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 3L, 3L, 1L, 1L, 1L, 2L), .Label = c("gut", 
   "ok", "schlecht"), class = "factor")), .Names = c("host", 
"time", "time_zone", "request", "status", "bytes", "referal", 
"browser", "duration_seconds", "duration_microseconds", "bewertung"
), row.names = c(NA, 20L), class = "data.frame")







--- 

mit freundlichen Grüßen

Jan Vanvinkenroye

Jan Vanvinkenroye, Dipl. Päd., Evasys- / Vitero Adminstration, Forschung & Evaluation
Informations- und Kommunikationszentrum der Universität Stuttgart (IZUS)
Technische Informations- und Kommunikationsdienste (TIK-Dienste, ehem. RUS)
Abteilung für Neue Medien in Forschung und Lehre (NFL)
Allmandring 30a · 70550 Stuttgart · Tel +49(0)711-685-87325 · Fax +49(0)711-685-77325 
jan.vanvinkenroye at tik.uni-stuttgart.de · http://www.izus.uni-stuttgart.de/



More information about the R-help mailing list