Last active
August 25, 2021 07:55
-
-
Save marco-schmidt/b64d52b65ce1b3f89f266c3519c82418 to your computer and use it in GitHub Desktop.
Create SVG percentiles graph from tab-separated value (TSV) file with gnuplot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2021-06-11T00:00:00Z | 15118 | 22650 | 27127 | |
---|---|---|---|---|
2021-06-11T00:10:00Z | 14975 | 22515 | 27077 | |
2021-06-11T00:20:00Z | 15302 | 22733 | 27063 | |
2021-06-11T00:30:00Z | 15004 | 22636 | 27116 | |
2021-06-11T00:40:00Z | 15030 | 22634 | 27090 | |
2021-06-11T00:50:00Z | 14961 | 22585 | 27066 | |
2021-06-11T01:00:00Z | 15188 | 22604 | 27125 | |
2021-06-11T01:10:00Z | 15160 | 22584 | 27076 | |
2021-06-11T01:20:00Z | 15186 | 22641 | 27116 | |
2021-06-11T01:30:00Z | 15096 | 22709 | 27166 | |
2021-06-11T01:40:00Z | 15140 | 22588 | 27192 | |
2021-06-11T01:50:00Z | 15190 | 22669 | 27159 | |
2021-06-11T02:00:00Z | 15029 | 22634 | 27116 | |
2021-06-11T02:10:00Z | 15107 | 22666 | 27159 | |
2021-06-11T02:20:00Z | 15043 | 22669 | 27162 | |
2021-06-11T02:30:00Z | 15150 | 22637 | 27136 | |
2021-06-11T02:40:00Z | 15189 | 22608 | 27027 | |
2021-06-11T02:50:00Z | 15067 | 22545 | 27103 | |
2021-06-11T03:00:00Z | 15083 | 22616 | 27134 | |
2021-06-11T03:10:00Z | 15143 | 22560 | 27145 | |
2021-06-11T03:20:00Z | 15055 | 22546 | 27080 | |
2021-06-11T03:30:00Z | 15069 | 22598 | 27074 | |
2021-06-11T03:40:00Z | 15155 | 22646 | 27115 | |
2021-06-11T03:50:00Z | 14995 | 22502 | 27103 | |
2021-06-11T04:00:00Z | 15131 | 22633 | 27054 | |
2021-06-11T04:10:00Z | 14994 | 22631 | 27128 | |
2021-06-11T04:20:00Z | 15156 | 22524 | 27085 | |
2021-06-11T04:30:00Z | 14978 | 22630 | 27168 | |
2021-06-11T04:40:00Z | 15067 | 22630 | 27042 | |
2021-06-11T04:50:00Z | 15022 | 22486 | 27037 | |
2021-06-11T05:00:00Z | 15164 | 22670 | 27132 | |
2021-06-11T05:10:00Z | 15121 | 22627 | 27125 | |
2021-06-11T05:20:00Z | 14935 | 22459 | 27094 | |
2021-06-11T05:30:00Z | 15211 | 22649 | 27089 | |
2021-06-11T05:40:00Z | 15096 | 22621 | 27128 | |
2021-06-11T05:50:00Z | 15122 | 22652 | 27126 | |
2021-06-11T06:00:00Z | 14974 | 22510 | 27113 | |
2021-06-11T06:10:00Z | 15228 | 22681 | 27104 | |
2021-06-11T06:20:00Z | 15071 | 22653 | 27064 | |
2021-06-11T06:30:00Z | 15060 | 22556 | 27153 | |
2021-06-11T06:40:00Z | 15002 | 22498 | 27062 | |
2021-06-11T06:50:00Z | 15066 | 22577 | 27115 | |
2021-06-11T07:00:00Z | 15169 | 22629 | 27132 | |
2021-06-11T07:10:00Z | 15137 | 22619 | 27078 | |
2021-06-11T07:20:00Z | 15117 | 22569 | 27111 | |
2021-06-11T07:30:00Z | 15051 | 22602 | 27120 | |
2021-06-11T07:40:00Z | 15178 | 22687 | 27142 | |
2021-06-11T07:50:00Z | 15157 | 22566 | 27098 | |
2021-06-11T08:00:00Z | 14889 | 22435 | 27123 | |
2021-06-11T08:10:00Z | 15074 | 22593 | 27097 | |
2021-06-11T08:20:00Z | 15004 | 22435 | 27087 | |
2021-06-11T08:30:00Z | 15144 | 22634 | 27053 | |
2021-06-11T08:40:00Z | 14976 | 22474 | 27108 | |
2021-06-11T08:50:00Z | 15198 | 22683 | 27159 | |
2021-06-11T09:00:00Z | 15202 | 22709 | 27172 | |
2021-06-11T09:10:00Z | 15075 | 22520 | 27105 | |
2021-06-11T09:20:00Z | 15110 | 22588 | 27149 | |
2021-06-11T09:30:00Z | 15028 | 22530 | 27097 | |
2021-06-11T09:40:00Z | 15157 | 22661 | 27179 | |
2021-06-11T09:50:00Z | 15025 | 22456 | 27069 | |
2021-06-11T10:00:00Z | 15177 | 22644 | 27114 | |
2021-06-11T10:10:00Z | 15052 | 22598 | 27167 | |
2021-06-11T10:20:00Z | 15012 | 22595 | 27025 | |
2021-06-11T10:30:00Z | 15153 | 22699 | 27178 | |
2021-06-11T10:40:00Z | 15024 | 22603 | 27132 | |
2021-06-11T10:50:00Z | 15120 | 22658 | 27061 | |
2021-06-11T11:00:00Z | 15078 | 22599 | 27135 | |
2021-06-11T11:10:00Z | 15022 | 22387 | 27025 | |
2021-06-11T11:20:00Z | 15185 | 22627 | 27168 | |
2021-06-11T11:30:00Z | 15053 | 22578 | 27073 | |
2021-06-11T11:40:00Z | 15064 | 22569 | 27021 | |
2021-06-11T11:50:00Z | 14995 | 22654 | 27136 | |
2021-06-11T12:00:00Z | 15146 | 22640 | 27108 | |
2021-06-11T12:10:00Z | 15110 | 22626 | 27010 | |
2021-06-11T12:20:00Z | 15106 | 22621 | 27109 | |
2021-06-11T12:30:00Z | 15052 | 22655 | 27133 | |
2021-06-11T12:40:00Z | 15195 | 22694 | 27152 | |
2021-06-11T12:50:00Z | 15141 | 22689 | 27133 | |
2021-06-11T13:00:00Z | 14958 | 22531 | 27130 | |
2021-06-11T13:10:00Z | 15296 | 22735 | 27148 | |
2021-06-11T13:20:00Z | 15162 | 22690 | 27243 | |
2021-06-11T13:30:00Z | 15081 | 22621 | 27051 | |
2021-06-11T13:40:00Z | 15092 | 22577 | 27053 | |
2021-06-11T13:50:00Z | 15122 | 22557 | 27014 | |
2021-06-11T14:00:00Z | 15153 | 22577 | 27123 | |
2021-06-11T14:10:00Z | 15154 | 22495 | 27086 | |
2021-06-11T14:20:00Z | 15069 | 22568 | 27054 | |
2021-06-11T14:30:00Z | 15036 | 22672 | 27130 | |
2021-06-11T14:40:00Z | 15211 | 22669 | 27069 | |
2021-06-11T14:50:00Z | 15200 | 22682 | 27083 | |
2021-06-11T15:00:00Z | 15202 | 22642 | 27136 | |
2021-06-11T15:10:00Z | 15022 | 22554 | 27056 | |
2021-06-11T15:20:00Z | 15029 | 22559 | 27108 | |
2021-06-11T15:30:00Z | 15054 | 22476 | 27026 | |
2021-06-11T15:40:00Z | 15138 | 22740 | 27164 | |
2021-06-11T15:50:00Z | 15105 | 22564 | 27067 | |
2021-06-11T16:00:00Z | 14997 | 22591 | 27172 | |
2021-06-11T16:10:00Z | 14999 | 22505 | 27052 | |
2021-06-11T16:20:00Z | 15152 | 22508 | 27134 | |
2021-06-11T16:30:00Z | 15152 | 22516 | 27099 | |
2021-06-11T16:40:00Z | 14964 | 22537 | 27050 | |
2021-06-11T16:50:00Z | 15238 | 22788 | 27105 | |
2021-06-11T17:00:00Z | 15072 | 22542 | 27117 | |
2021-06-11T17:10:00Z | 15111 | 22548 | 27137 | |
2021-06-11T17:20:00Z | 15155 | 22642 | 27119 | |
2021-06-11T17:30:00Z | 15201 | 22667 | 27144 | |
2021-06-11T17:40:00Z | 15218 | 22668 | 27127 | |
2021-06-11T17:50:00Z | 15096 | 22599 | 27162 | |
2021-06-11T18:00:00Z | 15022 | 22515 | 27064 | |
2021-06-11T18:10:00Z | 15089 | 22634 | 27076 | |
2021-06-11T18:20:00Z | 14954 | 22465 | 27105 | |
2021-06-11T18:30:00Z | 15125 | 22621 | 27070 | |
2021-06-11T18:40:00Z | 15078 | 22704 | 27196 | |
2021-06-11T18:50:00Z | 14951 | 22609 | 27114 | |
2021-06-11T19:00:00Z | 15083 | 22591 | 27071 | |
2021-06-11T19:10:00Z | 15066 | 22611 | 27081 | |
2021-06-11T19:20:00Z | 15101 | 22697 | 27131 | |
2021-06-11T19:30:00Z | 15185 | 22567 | 27135 | |
2021-06-11T19:40:00Z | 15113 | 22481 | 27006 | |
2021-06-11T19:50:00Z | 15044 | 22614 | 27110 | |
2021-06-11T20:00:00Z | 15145 | 22547 | 27152 | |
2021-06-11T20:10:00Z | 15192 | 22660 | 27080 | |
2021-06-11T20:20:00Z | 14954 | 22484 | 27043 | |
2021-06-11T20:30:00Z | 15164 | 22569 | 27043 | |
2021-06-11T20:40:00Z | 15088 | 22620 | 27104 | |
2021-06-11T20:50:00Z | 15136 | 22596 | 27186 | |
2021-06-11T21:00:00Z | 15135 | 22574 | 27086 | |
2021-06-11T21:10:00Z | 15266 | 22783 | 27214 | |
2021-06-11T21:20:00Z | 15183 | 22601 | 27101 | |
2021-06-11T21:30:00Z | 15110 | 22609 | 27117 | |
2021-06-11T21:40:00Z | 15121 | 22678 | 27181 | |
2021-06-11T21:50:00Z | 15138 | 22558 | 27094 | |
2021-06-11T22:00:00Z | 15011 | 22615 | 27065 | |
2021-06-11T22:10:00Z | 14903 | 22588 | 27160 | |
2021-06-11T22:20:00Z | 15017 | 22618 | 27175 | |
2021-06-11T22:30:00Z | 15294 | 22701 | 27163 | |
2021-06-11T22:40:00Z | 15027 | 22620 | 27169 | |
2021-06-11T22:50:00Z | 15054 | 22648 | 27100 | |
2021-06-11T23:00:00Z | 15096 | 22578 | 27029 | |
2021-06-11T23:10:00Z | 15167 | 22753 | 27112 | |
2021-06-11T23:20:00Z | 15067 | 22540 | 27038 | |
2021-06-11T23:30:00Z | 15065 | 22584 | 27068 | |
2021-06-11T23:40:00Z | 15194 | 22747 | 27163 | |
2021-06-11T23:50:00Z | 15101 | 22578 | 27105 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set terminal svg enhanced size 1200 600 font "Helvetica,20" name "Response_Time_Percentiles" | |
set border 31 linewidth .3 | |
set output "percentiles.svg" | |
set title "Response Time Percentiles 2021-06-11" | |
set xlabel "Time" | |
set ylabel "Duration (ms)" | |
set tics font "Helvetica,13" | |
set ytics 1000 | |
set grid ytics | |
set xdata time | |
set format x "%a\n%Y-%m-%d\n%H:%M\nUTC" # time format used in output | |
set timefmt '%Y-%m-%dT%H:%M:%SZ' # format of timestamps in input file | |
#set xrange ['2021-06-11T00:00:00Z':'2021-06-11T12:00:00Z'] # define time interval to be used | |
plot "data.tsv" using 1:2 pt 1 ps .3 with lines title 'p50',\ | |
"data.tsv" using 1:3 pt 1 ps .1 with lines title 'p75',\ | |
"data.tsv" using 1:4 pt 1 ps .1 with lines title 'p90' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# aggregate response time data into ten-minute groups, compute percentiles 50/75/90 and render data with gnuplot | |
# requires gnuplot (for rendering); cat, cut, sort, java (11+) for generating data.tsv | |
# created 2021-08-17 | |
# for LogProcessor see https://gist.github.com/marco-schmidt/78f86aa595306535fd51ea30ce823c5c | |
# that repository also contains LogGenerator.java used to create input file 2021-06-11.log | |
# that file contains lines like this (ISO 8601 timestamp + tab + integer number): | |
# 2021-06-11T00:00:00.985Z 4688 | |
# http://www.gnuplot.info | |
# brew install gnuplot | |
# aggregate data and generate data.tsv | |
# cut throws out the second column with the number of elements per group | |
#cat ../LogProcessor/2021-06-11.log|java ../LogProcessor/LogProcessor.java - -g 600000 -p 50,75,90|cut -f 1,3,4,5|sort > data.tsv | |
# render SVG file | |
gnuplot percentiles.plt | |
# open percentiles.svg in web browser or other SVG viewer |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment