With IO being blocking for individual processes due to Erlang's IO protocol and logplex using io:format/2 to log information, it is possible that a node that does a lot of logging has bad tail latencies on its API as reported by issues #49 and #51 on github. This quickfix, pending a rewrite of the logging system to be non-blocking and load-shedding, moves the logging outside of the critical path for part of the requests as a whole. Some requests, such as token creation for channels (POST /v2/channels/(\\d+)/tokens) still contain logs in said critical path and will only see minor improvements.
doesn't use standard http to deliver the logs the body isn't tested in this test. That's something I'd need to fix by writing a custom http client.
The escript allows to do a few operations on redgrid: - get the redgrid process status - get a list of connected nodes according to redgrid - suspend redgrid (and unregister from it) - resume redgrid (and connect to it) The script connects as a hidden node.
Logplex_stats is a table that receives a very large amount of writes for one big read every minute. We should be able to generally benefit by reducing contention on resources given pretty much all drains write to that table, at the cost of a slightly longer blocking time when reading.