Usage

  1. usage: ghz [<flags>] [<host>]
  2. Flags:
  3. -h, --help Show context-sensitive help (also try --help-long and --help-man).
  4. --config= Path to the JSON or TOML config file that specifies all the test run settings.
  5. --proto= The Protocol Buffer .proto file.
  6. --protoset= The compiled protoset file. Alternative to proto. -proto takes precedence.
  7. --call= A fully-qualified method name in 'package.Service/method' or 'package.Service.Method' format.
  8. -i, --import-paths= Comma separated list of proto import paths. The current working directory and the directory of the protocol buffer file are automatically added to the import list.
  9. --cacert= File containing trusted root certificates for verifying the server.
  10. --cert= File containing client certificate (public key), to present to the server. Must also provide -key option.
  11. --key= File containing client private key, to present to the server. Must also provide -cert option.
  12. --cname= Server name override when validating TLS certificate - useful for self signed certs.
  13. --skipTLS Skip TLS client verification of the server's certificate chain and host name.
  14. --insecure Use plaintext and insecure connection.
  15. --authority= Value to be used as the :authority pseudo-header. Only works if -insecure is used.
  16. --async Make requests asynchronous as soon as possible. Does not wait for request to finish before sending next one.
  17. -r, --rps=0 Requests per second (RPS) rate limit for constant load schedule. Default is no rate limit.
  18. --load-schedule="const" Specifies the load schedule. Options are const, step, or line. Default is const.
  19. --load-start=0 Specifies the RPS load start value for step or line schedules.
  20. --load-step=0 Specifies the load step value or slope value.
  21. --load-end=0 Specifies the load end value for step or line load schedules.
  22. --load-step-duration=0 Specifies the load step duration value for step load schedule.
  23. --load-max-duration=0 Specifies the max load duration value for step or line load schedule.
  24. -c, --concurrency=50 Number of request workers to run concurrently for const concurrency schedule. Default is 50.
  25. --concurrency-schedule="const"
  26. Concurrency change schedule. Options are const, step, or line. Default is const.
  27. --concurrency-start=0 Concurrency start value for step and line concurrency schedules.
  28. --concurrency-end=0 Concurrency end value for step and line concurrency schedules.
  29. --concurrency-step=1 Concurrency step / slope value for step and line concurrency schedules.
  30. --concurrency-step-duration=0
  31. Specifies the concurrency step duration value for step concurrency schedule.
  32. --concurrency-max-duration=0
  33. Specifies the max concurrency adjustment duration value for step or line concurrency schedule.
  34. -n, --total=200 Number of requests to run. Default is 200.
  35. -t, --timeout=20s Timeout for each request. Default is 20s, use 0 for infinite.
  36. -z, --duration=0 Duration of application to send requests. When duration is reached, application stops and exits. If duration is specified, n is ignored. Examples: -z 10s -z 3m.
  37. -x, --max-duration=0 Maximum duration of application to send requests with n setting respected. If duration is reached before n requests are completed, application stops and exits. Examples: -x 10s -x 3m.
  38. --duration-stop="close" Specifies how duration stop is reported. Options are close, wait or ignore. Default is close.
  39. -d, --data= The call data as stringified JSON. If the value is '@' then the request contents are read from stdin.
  40. -D, --data-file= File path for call data JSON file. Examples: /home/user/file.json or ./file.json.
  41. -b, --binary The call data comes as serialized binary message or multiple count-prefixed messages read from stdin.
  42. -B, --binary-file= File path for the call data as serialized binary message or multiple count-prefixed messages.
  43. -m, --metadata= Request metadata as stringified JSON.
  44. -M, --metadata-file= File path for call metadata JSON file. Examples: /home/user/metadata.json or ./metadata.json.
  45. --stream-interval=0 Interval for stream requests between message sends.
  46. --stream-call-duration=0 Duration after which client will close the stream in each streaming call.
  47. --stream-call-count=0 Count of messages sent, after which client will close the stream in each streaming call.
  48. --stream-dynamic-messages In streaming calls, regenerate and apply call template data on every message send.
  49. --reflect-metadata= Reflect metadata as stringified JSON used only for reflection request.
  50. -o, --output= Output path. If none provided stdout is used.
  51. -O, --format= Output format. One of: summary, csv, json, pretty, html, influx-summary, influx-details. Default is summary.
  52. --skipFirst=0 Skip the first X requests when doing the results tally.
  53. --count-errors Count erroneous (non-OK) resoponses in stats calculations.
  54. --connections=1 Number of connections to use. Concurrency is distributed evenly among all the connections. Default is 1.
  55. --connect-timeout=10s Connection timeout for the initial connection dial. Default is 10s.
  56. --keepalive=0 Keepalive time duration. Only used if present and above 0.
  57. --name= User specified name for the test.
  58. --tags= JSON representation of user-defined string tags.
  59. --cpus=12 Number of cpu cores to use.
  60. --debug= The path to debug log file.
  61. -e, --enable-compression Enable Gzip compression on requests.
  62. -v, --version Show application version.
  63. Args:
  64. [<host>] Host and port to test.