You can understand …
- How to perform load testing to gRPC application
- What is “github.com/bojang/ghz” and How to use it
- Master/Minion Patterns
- TICK Stack & InfluxDB basis for Reporting the load testing results
testing to gRPC application - What is “bojang/ghz” and How to use it - Master/Minion Patterns - TICK Stack & InfluxDB basis for Reporting the load testing results
is the very nice tool I was looking for https://github.com/httperf/httperf - one of major tool for HTTP stress testing, no support for gRPC https://github.com/loadimpact/k6 - also one of major HTTP stress testing tool, no support for gRPC https://github.com/tsenart/vegeta - yet another HTTP load testing, no support for gRPC https://grpc.io/docs/guides/benchmarking.html - benchmark test at gRPC https://gist.github.com/voluntas/5c9e0f778e36c1e934e83611a94ffdfa#id 5 - Shigredo (時雨堂) Oribe, no support for gRPC https://github.com/bojand/ghz - gRPC-oriented stress testing tool
& port, log, .etc) - handles multiple minions - reporting Minion has responsibility for: - run `ghz` to a single RPC - delegate results to the master class Minion def run system "ghz #{options}" end def rpc raise NotImplementedError end end class HelloRPCMinion < Minion def rpc; "Hello" end end class PingRPCMinion < Minion def rpc; "Ping" end end class Master def load_test minions = [ HelloRPCMinion.new, PingRPCMinion.new ] threads = minions.map {|m| Thread.new { m.run } } threads.each(&:join) end end
- support floats, integers, string or booleans as field values type - use HTTP API with curl or CLI to write to InfluxDB with Line Protocol Syntax) weather,location=us-midwest temperature=82 1465839830100400200 | --------------------------------- ------------------------- | | | | | | | | | +---------------------+-----------+-+-----------------+-+------------------+ |measurement|,tag_set| | field_set | |timestamp| +---------------------+-----------+-+-----------------+-+------------------+ Example) ghz_detail,proto="/testdata/greeter.proto",call="helloworld.Greeter.SayHello",host="0.0.0. 0:50051",n=1000,c=50,qps=0,z=0,timeout=20,dial_timeout=10,keepalive=0,data="{\"name\ ":\"{{.InputName}}\"}",metadata="{\"rn\":\"{{.RequestNumber}}\"}",hasError=false latency=5157328,error=,status=OK 681023506