Commit Graph

85 Commits

Author SHA1 Message Date
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
ahr
27db9f934d increase entry buffer 2017-11-05 08:52:10 +01:00
386f211377 make it possible to draw the legend outside of the plot area 2017-09-30 17:51:33 +02:00
e0655f66fa skip invalid entries 2017-09-24 17:21:20 +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
b7dc22275d trigger garbage collection periodically
This reduces the memory usage, because the old generation can be made
smaller and we don't have to wait until max heap usage has been reached.
2017-09-23 10:54:28 +02:00
9e3dd27eb0 use a default date of seven days ago instead of last year 2017-09-23 10:52:33 +02:00
a99f6a276e fix missing/wrong logging
1. Log the exception in PdbFileIterator with a logger instead
   of just printing it to stderr.
2. Increase log level for exceptions when inserting entries.
3. Log exception when creation of entry failed in TcpIngestor.
2017-04-17 18:27:25 +02:00
44f30aafee add a new facade in front of DataStore
This is done in preparation for the proposal API.
In order to compute proposals we need to consume the
API of the DataStore, but the code does not need to
be in the DataStore. 
Extracting the API allows us to separate these concerns.
2017-04-16 10:11:46 +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
58f8606cd3 use special logger for insertion metrics
This allows us to enable/disable metric logging without having to log 
other stuff.
2017-04-13 20:12:00 +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
6cc6e679a4 sort fields in 'group by' 2017-04-11 18:39:12 +02:00
ee15594070 remove TODOs
They don't make sense anymore.
E.g. the Tags class is used by classes outside of
org.lucares.performance.db.
2017-04-11 18:09:29 +02:00
cc7e461ebf replace PdbRepository with @Bean annotated method 2017-04-11 18:06:33 +02:00
81b7cfa7bd add default size so that we don't have to specify it in tests 2017-04-08 08:20:59 +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
ea905c2315 replace sysout with logger 2017-03-19 09:20:00 +01:00
9ab5d76d93 better exception logging 2017-03-19 09:08:41 +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
3456177291 add date range filter 2017-03-17 11:17:57 +01:00
d137f7c9cb limit the number of plots 2017-02-12 18:17:36 +01:00
b238849d65 use text input for filtering, again 2017-02-12 09:32:46 +01:00
9c86f8136b you can now make runnable distributions via './gradlew distZip' 2017-02-05 08:29:59 +01:00
4f77515bbd test for keywords db performance 2017-01-07 09:10:42 +01:00
c283568757 group plots by a single field 2016-12-30 18:45:01 +01:00
95e34831d3 simple auto-completion for the search box 2016-12-23 10:32:51 +01:00
bc5d1b0b7b show rendered image
added loading icon
image is scaled to available space
2016-12-21 20:06:11 +01:00
d1e39513f3 create web application 2016-12-21 17:48:36 +01:00