envoyproxy / nighthawk

L7 (HTTP/HTTPS/HTTP2/HTTP3) performance characterization tool
Apache License 2.0
361 stars 81 forks source link

Multiple nighthawk output aggregation support #288

Open dubious90 opened 4 years ago

dubious90 commented 4 years ago

If a consumer needs to saturate a very large backend, perhaps one running on multiple machines, that consumer may want to start multiple nighthawks in order to adequately saturate it. If they do so, combining the outputs together may prove to be difficult. Looking for a solution so that they can combine multiple results together into one useful output proto.

Possible Solution: Allow nighthawk to be aware of multiple services running, with one service acting as the master and the rest acting as "remote workers." The workers could then stream their output directly to the master, which could aggregate the statistics together into one useful output proto for the consumer.

dubious90 commented 4 years ago

@oschaaf Does this sound accurate to what we had discussed?

oschaaf commented 4 years ago

Yes. Each worker could set up a gRPC stream to a master, which defaults to the local instance, but can be directed to a remote instance. As a side effect, I think this would also considerably lower the bar for workers to report back intermediate updates.