in our backend services we are fighting for each microsecond ;)
Adrian Lewis
@aidylewis
The ease of distribution is a really big win, which can usually be a little tricky.
Andrey Vasenin
@avasenin
simple_http_worker is just a example. you could easily write your own worker or patch existing one. For example you could use the current simple_http_worker and change measure units and deploy it to your github and pass it to make_install command
Adrian Lewis
@aidylewis
Could you please tell me what additional change I need to make to the simple_http_worker to enable milliseconds apart from changing units => "microseconds" to units => "ms"?
Vadim Litvinov
@merlin86
mzb_metrics:notify({"latency", histogram}, Latency), => mzb_metrics:notify({"latency", histogram}, Latency div 1000),
Adrian Lewis
@aidylewis
Is this correct?
% simple_http_worker diff
- units => "microseconds",+ units => "ms",- mzb_metrics:notify({"latency", histogram}, Latency),+ mzb_metrics:notify({"latency", histogram}, Latency), => mzb_metrics:notify({"latency", histogram}, Latency div 1000),
mzb_metrics:notify({"latency", histogram}, Latency div 1000)
dii14
@dii14
Hi, I was just starting to use your tool. Is it possible to persist the data gathered and the nice graphs?
Dmitry Ivanov
@ethercrow
Hi @dii14
what exactly do you mean by persisting?
dii14
@dii14
I am running mzbench from docker and I would like to know where the metrics are stored so that I can have them when I close the container
Dmitry Ivanov
@ethercrow
data is stored in plain files, so unless the whole machine with mzbench server is destroyed or these files are specifically deleted, they are persisted
dii14
@dii14
oh nice, I guess it's just my fault I couldn't locate the files
is it documented where they are?
Dmitry Ivanov
@ethercrow
metric data is also available through API
on single bench basis though, not all at once
dii14
@dii14
I see but where are the files actually?I can't really find them
I can see that while running a benchmark in the scenario tab there is this functionality which seems like it allows to send some command to some percentage of the worker nodes
this seems really cool to me, but what kind of commands can I send?
Timofey Barmin
@timofey-barmin
Hi, dii14
you can call worker functions there
dii14
@dii14
I tried calling wait and it failed
Renat Idrisov
@parsifal-47
@dii14 what message did you get? "command execution failed"?
dii14
@dii14
On screen message was "command failed"
in the system logs I get the error:07:02:10.352 [error] <0.224.0> Command run failed with reason {badmatch,{[{'mzb_director16_0@127.0.0.1',[]},{'mzb_worker16_1@127.0.0.1',[ok,ok]}],[]}} Command:<<"wait()">> Stacktrace:[{mzb_director,handle_call,3,[{file,"/home/ridrisov/mzbench/node/_build/default/deps/mzbench/src/mzb_director.erl"},{line,110}]},{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,629}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,661}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]
My wait was empty but that's not the point, I get the same for a correct command:07:03:45.749 [error] <0.224.0> Command run failed with reason {badmatch,{[{'mzb_director16_0@127.0.0.1',[]},{'mzb_worker16_1@127.0.0.1',[ok,ok]}],[]}} Command:<<"wait(3 sec)">> Stacktrace:[{mzb_director,handle_call,3,[{file,"/home/ridrisov/mzbench/node/_build/default/deps/mzbench/src/mzb_director.erl"},{line,110}]},{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,629}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,661}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]
Renat Idrisov
@parsifal-47
I have reproduced your issue, sorry, the problem was in result code control, fixed now, please update master and try again, thanks for reporting this!
dii14
@dii14
ok cool will try again
dii14
@dii14
Actually I was never able to build from sources behind my proxy
It is something to do with rebar3 fetching the "registry" package, I suspect that my variables for proxies are not read by rebar3