Commit Graph

113 Commits

Author SHA1 Message Date
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
2a9cb2cde6 create thumbnails as PNG 2018-04-29 08:54:13 +02:00
022d5a21c5 do not try to create a thumbnail if the image doesn't exist 2018-04-28 19:59:00 +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
7018a11ab3 add links to current settings and to current image 2018-04-10 19:59:09 +02:00
5e53e667fe use vue.js for the UI 2018-04-02 09:18:41 +02:00
c581e352e4 add method that returns a string representation of the tags in Tags 2018-03-19 19:29:22 +01:00
ahr
6b60fd542c add percentile plots 2018-03-03 08:19:26 +01:00
b4a0514267 draw points and percentile lines with the same color 2018-01-21 14:09:34 +01:00
bb7701e7c4 use enum for line type instead of string 2018-01-21 11:01:30 +01:00
8f15aba0d5 replace individual percentile aggregates with a single one for all 2018-01-21 10:54:13 +01:00
ahr
0f2fcc3c9c extract long_to_string converter 2018-01-06 08:40:58 +01:00
ahr
5617547d63 add percentile plots 2017-12-30 09:15:26 +01:00
ahr
9b9554552d Extract interface for DataSeries
This will make it possible to have DataSeries that do not require a csv
file on disk.
2017-12-29 09:15:29 +01:00
ahr
cc70f45c12 add different plot types
Step 1: 
Added PlotType enum and a drop down to the UI.
Extracted the code for scatter plots.
2017-12-29 08:57:34 +01:00
ahr
6509391059 sometimes plots are missing
The csv generation is running in parallel, but the 
list that collects the results was not synchronized.
2017-12-16 19:22:56 +01:00
ahr
a359652f8b log stdout/stderr of the gnuplot process 2017-12-16 19:19:35 +01:00
ahr
04b029e1be add trace logging 2017-12-16 19:19:12 +01:00
ahr
c4dce942a6 parallelize csv generation
speedup 50% and more
2017-12-10 17:53:53 +01:00
ahr
f8c03c434e print thousand delimiter (of whatever they are called) 2017-11-06 17:21:45 +01:00
ahr
78671a2d8c use linespoints instead of line and make linewidth 2 instead of 1 2017-11-06 17:04:56 +01:00
ahr
64db4c48a2 add plots for percentiles 2017-11-06 16:57:22 +01:00
ahr
92dde94443 preparation to add plots for percentiles 2017-11-05 09:21:34 +01:00
386f211377 make it possible to draw the legend outside of the plot area 2017-09-30 17:51:33 +02:00
dc8262c37e replace deprecated API 2017-09-24 17:00:08 +02:00
35500e387a add vertical marker lines that show which area will be used after
zooming
2017-09-24 12:52:44 +02:00
8b74992e66 reduce memory allocations by 25% with a cache of formatted longs 2017-09-24 09:53:25 +02:00
37eb05aebf use unix timestamps in the CSVs used by gnuplot
This is faster by factor 4, because we don't have to format the date.
2017-09-24 09:38:08 +02:00
955127dc4a use buffered writer
despite my previous test, writing the csv is a little bit faster with
a buffered writer (~ 10-15%)
2017-09-23 20:22:15 +02:00
70e586b7e9 limit by max/min value 2017-09-23 18:56:02 +02:00
79d860cee7 make computation of mean value optional 2017-09-23 12:42:22 +02:00
c2ee632f76 plot exactly the selected time frame
Before gnuplot would only plot the range with values.
But that is not really helpful, when you navigate with the new
navigation buttons.
2017-04-22 11:23:13 +02:00
5ab6309fc5 reduce size of x-axis labels 2017-04-19 20:02:02 +02:00
ac1ee20046 replace ludb with data-store
LuDB has a few disadvantages. 
  1. Most notably disk space. H2 wastes a lot of valuable disk space.
     For my test data set with 44 million entries it is 14 MB 
     (sometimes a lot more; depends on H2 internal cleanup). With 
     data-store it is 15 KB.
     Overall I could reduce the disk space from 231 MB to 200 MB (13.4 %
     in this example). That is an average of 4.6 bytes per entry.
  2. Speed:
     a) Liquibase is slow. The first time it takes approx. three seconds
     b) Query and insertion. with data-store we can insert entries 
        up to 1.6 times faster.

Data-store uses a few tricks to save disk space:
  1. We encode the tags into the file names.
  2. To keep them short we translate the key/value of the tag into 
     shorter numbers. For example "foo" -> 12 and "bar" to 47. So the
     tag "foo"/"bar" would be 12/47. 
     We then translate this number into a numeral system of base 62
     (a-zA-Z0-9), so it can be used for file names and it is shorter.
     That way we only have to store the mapping of string to int.
  3. We do that in a simple tab separated file.
2017-04-16 09:07:28 +02:00
ce44c3d8d6 add logarithmic scaling for the y-axis
Often we have a few very high values and a lot
low values. With a linearly scaled y-axis the
plot is mostly useless.
2017-04-12 19:59:35 +02:00
8baf05962f group by multiple fields
Before we could only group by a single field. But it is acutally
very useful to group by multiple fields. For example to see the
graph for a small set of methods grouped by host and project.
2017-04-12 19:16:19 +02:00
72436e9c8c extract utility method
a method to send json over tcp can be used by several tests
2017-04-08 08:21:50 +02:00
7b92a306f3 remove warning by using the logger 2017-04-02 11:15:41 +02:00
5fb285a4b4 gnuplot needs forward slashes even on windows 2017-04-01 19:15:28 +02:00
46ce445010 return information about the plotted sequences
this information can be used for tests
2017-04-01 18:27:43 +02:00
2875237272 replace the dateTo with an interval
I hope an interval is easier to handle than having 
to change two date fields
2017-03-27 20:07:32 +02:00
726258020f make it possible to specify the time in the range 2017-03-27 19:38:02 +02:00
364997e611 show better error message, when no data points are found 2017-03-26 17:30:50 +02:00
c245a1f7d4 fix typo that broke the gnuplot integration 2017-03-20 18:52:48 +01:00
cc71a32d27 make location of gnuplot configurable 2017-03-19 20:04:07 +01:00
ea905c2315 replace sysout with logger 2017-03-19 09:20:00 +01:00
aadc9cbd21 move TcpIngestor to pdb-ui
and start it in the web application.
Also use the spring way of handling property files.
2017-03-19 08:00:18 +01:00
16f9c92d13 add special logger for throughput metrics
so that we can enable/disable it individually
2017-03-18 10:20:14 +01:00
a01c8b3907 fix flaky test and improve error handling
just ignore invalid entries
2017-03-18 10:14:41 +01:00