goncalotomas / FMKe

🛠️ Realistic benchmark for key value stores
Other
23 stars 8 forks source link

It may be useful to add a logging feature #100

Closed goncalotomas closed 7 years ago

goncalotomas commented 7 years ago

To provide more than simple performance benchmarking, FMKe should be able to log operations (either via the application server or the benchmark clients).

For instance, this could be useful to pull divergence/staleness metrics from Antidote nodes or to see if causality was violated (by reading the log).

In order to provide this in a way that is not tightly coupled to the datastore, a logging feature could be added with a simple interface:

Example:

-spec collect_metrics(fun(), per_op | {time, integer()}) -> ok.
-callback collect_metrics(BehaviourFunction, CallingBehaviour).
goncalotomas commented 7 years ago

In the latest PR I've included lager as a dependency and it is properly started at FMKe start. Lager provides the means to proper logging using streams to multiple files, and FMKe already supports internal logging calls for failures in the HTTP API.

This issue (since it is related to the existence of a logging framework) can be closed, but a subsequent one may be later created in order to add a secondary library that logs specific application calls with operation semantics like the ones described above.