Commit Graph

264 Commits

Author SHA1 Message Date
786570503a make plot for parallel requests easier to digest
1. draw it below the scatter plot, so that you can see both
2. make the color lighter, so that you can see both
2018-08-10 09:27:19 +02:00
6c091c673d fix indentation 2018-08-10 09:20:55 +02:00
2fae877444 plot parallel requests with style filledcurve
this makes the duration of requests more obvious
2018-08-09 07:51:56 +02:00
1f48f7b851 div for gallery was not correctly hidden
The div for the gallery was not hidden, because VueJS did evaluate
an empty list as false.
2018-08-09 07:47:38 +02:00
7ece779469 do not draw diagonal lines in ParallelRequestsAggregator 2018-08-09 07:37:29 +02:00
f30a8a26d9 add aggregator for parallel requests
ParallelRequestsAggregator generates a line plot that shows the number
of parallel requests among the plotted events.
This plot has two issues:
1. It only considers events that are plotted. Events that occur later,
   but were started within the plotted time frame are not considered.
2. For performance reasons we are only plotting points when a value
   changed. This leads to diagonal lines.
2018-08-09 07:24:51 +02:00
99dbf31d8a update 3rd party libs 2018-08-09 07:20:09 +02:00
182d1edd97 add a datetime picker
Unfortunately the datetime picker does not support seconds. But it is
one of the few that support date and time and are flexible enough to
be used with VueJS.
2018-08-04 08:32:04 +00:00
6871e250ad use two lines for the xlabels instead of rotating it
We used to rotate the xlabels so that they would not intersect. A
solution that is easier to read is to add a newline between the date and
the time.
2018-08-02 08:20:33 +02:00
1567429b3a set default log dir to 'logs' 2018-07-28 08:59:56 +02:00
89840cf9e9 update dependencies 2018-07-28 08:50:42 +02:00
8b7f7de226 Merge branch 'folderList' of https://bitbucket.com/andreashuber/performance into folderList 2018-07-28 08:39:32 +02:00
bb8dbad393 different tags could be written to the same file
There was a missing synchronization in the code that maps
Strings to Integers.
2018-07-28 08:37:30 +02:00
daaa0e6907 update dependencies
gradle to 4.8
jackson to 2.9.6
spring-boot to 2.0.3
guava to 25.1-jre
gradle-versions-plugin to 0.19.0
2018-06-17 08:59:48 +02:00
3d71befbad filter gallery items by max value and average 2018-05-19 14:43:16 +02:00
38a46a9d46 change default values in the UI
1. yRange is set to 0-120 minutes. This makes the gallery plots easier
to compare.
2. Set groupBy to pod/method/build. That is what I use the most and I
think this will help in most cases.
2018-05-19 08:36:47 +02:00
814af31555 add extra spaces in title of a plot when not all values are shown 2018-05-19 08:29:12 +02:00
f073ea98d0 use a grid to place the gallery items
This has the advantage, that the height of each element in a row is the
same.
2018-05-19 08:24:52 +02:00
47e32bb6b1 remove response caching
Turn out, that caching on the client side does not play well when new
data is loaded into the system.
2018-05-10 17:52:13 +02:00
b61a34a0e6 use existing RandomAccessFile when updating the listing file
Ingestion speed dropped drastically with the old implementation.
In some situations to 7 entries per second over a 10 second period
(sic!). When using the already opened RandomAccessFile the speed
is back to previous values of 40k-50k entries per second on my 10 year
old machine on an encrypted spinning disk.
2018-05-10 17:41:50 +02:00
911062e26b use RandomAccessFile in FolderStorage.getPathByOffset()
The old implementation opened a new buffered reader everytime
getPathByOffset was called. This took 1/20th of a second or
longer. For queries that visited thousands of files this could
take a long time.
We are now using a RandomAccessFile, that is opened once. The
average time spend in getPathByOffset is now down to 0.11ms.
2018-05-10 10:22:25 +02:00
82b8a8a932 reduce memory footprint by lazily intializing the path in Doc
The path in Doc is not optional. This reduces memory consumption,
because we only have to store a long (the offset in the listing file).
This assumes, that only a small percentage of Docs is requested.
2018-05-06 12:58:10 +02:00
e3102c01d4 use listing.csv instead of iterating through all folders
The hope is, that it is faster to read a single file instead of listing
hundreds of folders.
2018-05-05 10:46:16 +02:00
bda2de672e improvements
- split the 'sortby' select field into two fields
- sort by average
- legend shows plotted and total values in the date range
- removed InlineDataSeries, because it was not used anymore
2018-05-01 17:32:25 +02:00
82dca3a885 y-range max value increased by factor 10
This allows us to specify the range below 10 seconds with milli second
precision.
2018-05-01 13:04:38 +02:00
01bd7e4388 plot statistics written to the legend only count visible values 2018-05-01 13:03:34 +02:00
a4d04ebece add marker line for 60s threshold
In logarithmic plots it is not easy to spot which event are longer than
60 seconds. A thin grey line help with this.

Also: fixed the marker lines (zoom area) which broke when y-ranges were
introduced. The lines were not drawn correctly, when the y-axis offset
was greater than 0.
Gnuplot supports differen coordinate systems. 'graph' is relative to the
area within the axes, 0,0 is bottom left and 1,1 is top right. And
'first' is based on the values of the x1 axis.
By using "graph 0.25,0" we say that the starting point is 25% of the
x-axis and 0% of the y-axis without having to compute the exact values.
2018-05-01 10:51:46 +02:00
6d85c56cb0 range definitions for the y-axis
Sometimes it is useful to specify the certain y-axis range. For example
when you are only interested in the values that take longer than a
threshold. Or when you want to exclude some outliers. When you want to
compare plots in a gallery, it is very handy when all plots have the
same data-area.
2018-05-01 10:18:06 +02:00
54ee23459d remove obsolete method 2018-05-01 10:14:17 +02:00
910c1394cb close gallery image when clicking on the image
It was bothersome to have to click on the close icon.
2018-05-01 08:51:20 +02:00
b9cbcace91 rename dashboard to gallery
The dashboard was never really a dashboard.
2018-05-01 08:47:07 +02:00
fc64c55ce7 remove percentile plot
Eventually we want to only support what is now called aggregate, but
not have to implement different plot types. So instead of supporting
percentile plots for dashboards I removed them. You can still get
percentile plots together with the scatter plot.
2018-05-01 08:27:37 +02:00
1d8f31808e draw labels for x2 axis only if necessary
- added tics every 5 percentage points
2018-05-01 08:07:04 +02:00
bfcbd0a451 draw better dashboard images
Scaling big plots to small thumbnails results in bad images that barely
show any details.
We solve this by calling gnuplot a second time to generate the
thumbnails. They don't have any labels and are rendered in the required
size, so that not scaling is necessary.
Thumbnails have to be requested explicitly, because it can be expensive
to compute them.
2018-05-01 07:54:10 +02:00
f573436219 align progress bar vertically in FF 2018-04-30 19:14:31 +02:00
3d4129ec48 navigation bar should be enabled when we are in plot mode
Bug was, that the navigation bar was disabled when no results were
found.
2018-04-30 18:49:23 +02:00
2903b5a828 enable client side caching for plot requests
Doesn't work perfectly yet, because the height/width sometimes changes
by one or two pixels.
2018-04-29 19:16:13 +02:00
024c14435c remove old temp files 2018-04-29 19:14:43 +02:00
2a9cb2cde6 create thumbnails as PNG 2018-04-29 08:54:13 +02:00
9b8f946b30 caption only contains the field value used to split 2018-04-29 08:53:18 +02:00
b4d93414f5 show big picture of dashboard items 2018-04-29 08:36:49 +02:00
022d5a21c5 do not try to create a thumbnail if the image doesn't exist 2018-04-28 19:59:00 +02:00
d4b09d4dab render progress bar and add button to abort the dashboard creation 2018-04-28 19:58:31 +02:00
2da54432ff sort tiles on the dashboard 2018-04-28 19:03:07 +02:00
913057c6df add dashboard 2018-04-27 19:36:31 +02:00
38ffff38de rename template from html to mustache
This is a change that came in in spring boot 2.
2018-04-22 09:47:43 +02:00
b06ccb0d00 update 3rd party libs
spring boot to 2.0.1
guava to 24.1-jre
jackson to 2.9.5
log4j2 to 2.10.0 (same version as pulled by spring boot)
testng to 6.14.3
2018-04-21 20:01:39 +02:00
83837d4c0c update gradle to 4.7 2018-04-21 19:59:00 +02:00
57938d5269 do not check if we can find values when proposing keys
Counting the available values is quite expensive and there are only a
few corner cases where this makes sense. One of them is when the query
is for a method that is not project specific and therefore no project
values can be found.
2018-04-14 10:38:00 +02:00
a5c401c722 scroll proposal into view 2018-04-14 10:34:25 +02:00