Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
A string containing the entire compiler option and value that is supplied to bazel when compiling a project. eg. " --jobs 4" or "--define tcmalloc=gperftools"
Capture all docker images required for the benchmark. This object is examined first before evaluating the state of specified source locations
Determines whether required docker are used if they already exist. The benchmark image and binary image must be specified. If this is set to false there must be a specified source location from which we build the image
Used in:
This should be implicit. Images are preferred over building from source. We build only if the image pull is not successful and sources are present
Specifies the name of the docker image containing the benchmark framework If populated we will attempt to pull this image eg: "envoyproxy/nighthawk-benchmark-dev:latest"
Specifies the name of the docker image containing nighthawk binaries eg: "envoyproxy/nighthawk-dev:latest"
Specifies the envoy image from which Envoy is injected. This supports using a commit hash or a tag to identify a specific image eg: "envoyproxy/envoy-dev:f61b096f6a2dd3a9c74b9a9369a6ea398dbe1f0f"
Specifies additional images for which we benchmark for analysis. In this field one can specify list of image strings. The framework will execute an additional benchmark run for each entry specified. If this field is not specified, we will deduce one commit or tag prior to the "envoy_image" defined and benchmark the discovered image. eg: [ "envoyproxy/envoy-dev:7da2adee8962c202999e96cb41e899deb34faf48",..]
If this field is true and additional_envoy_images is not defined, we will only test envoy image which is defined in envoy_image field. It's useful for the scenario that someone want to test different configuration with specific envoy image. test_single_image and additional_envoy_images are mutually exclusive and cannot be defined at the same time.
Capture all Environment variables required for the benchmark
Used in:
Controls whether envoy is placed between the nighthawk client and server
Specify the output directory for nighthawk artifacts eg: "/home/user/test_output_path"
Specify the directory where external tests are located eg: "/home/user/nighthawk_external_tests"
Additional environment variables that may be needed for operation
Specify the IP version for tests
Used in:
This message type defines the schema for the consumed data file controlling the benchmark being executed. In it a user will define whether the benchmark uses images only, builds images from source, and whether the benchark executes locally or remotely.
Specify whether the benchmark runs locally or in a service
Specify the benchmark to execute
Define where we find all required sources
Define the names of all required docker images
Define the environment variables needed for the test
Capture the location of sources needed for the benchmark
Used in:
Specify the location of the source repository on disk. If specified this location is used to determine the origin url, branch, and commit hash. If not specified, the remaining fields must be populated eg: "/home/user/code/envoy"
Specify the remote location of the repository. eg: "https://github.com/envoyproxy/envoy.git"
Specify the local working branch. This is ignored if the source location is specified.
Specify a commit hash if applicable. If not specified we will determine this from the source tree. We will also use this field to identify the corresponding NightHawk or Envoy image used for the benchmark
Specify a set of additional hashes for comparing benchmark results. This field is optional and if unspecified, we will default to using one commit prior to the specified "commit_hash" field. For each hash specfied we will run a benchmark using the Envoy binary built from that source commit
A list of compiler options and flags to supply to bazel when building the source of NightHawk or Envoy
If this field is true and additional_hashes is not defined, we will only test envoy commit which is defined in commit_hash field. It's useful for the scenario that someone want to test different configuration with specific envoy commit. test_single_commit and additional_hashes are mutually exclusive and cannot be defined at the same time
Specify whether this source location is Envoy or NightHawk
Used in:
This message defines the volume structure consumed by the command to run a docker image.
Specify a map of local paths and their mount points in the container
This message defines the properties for a mount point.
Used in:
Specify the destination mount path in the benchmark container
Specify whether the volume is read-write or read-only. This field must be a string that is populated with 'rw' or 'ro' internally