https://github.com/grpc/test-infra
Repo for gRPC testing infrastructure support code
https://github.com/grpc/test-infra
Last synced: 9 months ago
JSON representation
Repo for gRPC testing infrastructure support code
- Host: GitHub
- URL: https://github.com/grpc/test-infra
- Owner: grpc
- License: apache-2.0
- Created: 2020-06-15T16:58:26.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-08-25T15:36:03.000Z (10 months ago)
- Last Synced: 2025-10-02T00:32:08.114Z (9 months ago)
- Language: Go
- Homepage:
- Size: 1.28 MB
- Stars: 95
- Watchers: 11
- Forks: 37
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
- Governance: GOVERNANCE.md
Awesome Lists containing this project
README
# test-infra - gRPC test infrastructure
This repository contains code for systems that test [gRPC][grpc] which are
versioned, released or deployed separately from the [gRPC Core][grpccore]
codebase.
For an overview, see
[blog post](https://grpc.io/blog/performance-benchmarks-gke/).
[grpc]: https://grpc.io
[grpccore]: https://github.com/grpc/grpc
## gRPC OSS benchmarks
gRPC OSS benchmarks are a collection of libraries and executables to schedule,
run and monitor [gRPC performance benchmarking][benchmarking] tests on a
Kubernetes cluster.
### Controller
The main executable is a [custom controller][] that manages resources of kind
[LoadTest][loadtest]. This controller must be deployed to the cluster before
load tests can be run on it. For deployment information, see [deployment][]. The
controller is implemented with [kubebuilder][].
[custom controller]: cmd/controller/main.go
[deployment]: doc/deployment.md
[kubebuilder]: https://kubebuilder.io
[loadtest]: config/crd/bases/e2etest.grpc.io_loadtests.yaml
### Tools
There is a set of [tools](tools/README.md) used to generate load test
configurations, prepare prebuilt images and run batches of tests. These tools
are used to run batches of tests for continuous integration.
### Examples
[Examples](config/samples/README.md) of load test configurations in the
supported languages are also provided.
## Dashboard
The data generated in continuous integration are saved to [BigQuery][bigquery],
and displayed on a public dashboard linked from the [gRPC performance
benchmarking][benchmarking] page.
For more information, and to build your own dashboard, see
[dashboard](dashboard/README.md).
[bigquery]: https://cloud.google.com/bigquery
## PSM benchmarks
This repository now includes infrastructure to support
[service mesh](https://istio.io/latest/about/service-mesh/) benchmarks comparing
dataplane performance of proxyless gRPC service mesh (PSM) deployments and that
of proxied deployments using an Envoy sidecar.
The client pod in PSM benchmarks includes a
[fake xDS server](containers/runtime/xds-server/README.md) that serves as a gRPC
control plane. The client pod in the proxied case also includes an Envoy
[sidecar](containers/runtime/sidecar/).
[Prometheus](config/prometheus/README.md) is used to monitor CPU and memory
utilization in PSM benchmarks.
[Examples](config/samples/templates/psm/README.md) of proxied and proxyless
tests are now available.
This is only an initial release. Additional features and more detailed
documentation will be added in a future release.
## Contributing
Welcome! Please read [how to contribute](CONTRIBUTING.md) before proceeding.
[benchmarking]: https://grpc.io/docs/guides/benchmarking/