Your First Experiment¶
Load Test an HTTP Service
Get started with your first Iter8 experiment by load testing an HTTP service.
1. Install Iter8¶
Install the latest stable release of the Iter8 CLI using brew
as follows.
brew tap iter8-tools/iter8
brew install iter8
Pre-compiled Iter8 binaries for many platforms are available here. Uncompress the iter8-X-Y.tar.gz archive for your platform, and move the iter8
binary to any folder in your PATH.
Build Iter8 from source as follows. Go 1.17+
is a pre-requisite.
# you can replace master with a specific tag such as v0.8.29
export REF=master
https://github.com/iter8-tools/iter8.git?ref=$REF
cd iter8
make install
Install the latest stable release of the Iter8 CLI using go 1.17+
as follows.
go install github.com/iter8-tools/iter8@latest
iter8
(from your gopath bin/ directory) 2. Download experiment chart¶
Download the load-test-http
experiment chart from Iter8 hub as follows.
iter8 hub -e load-test-http
cd load-test-http
3. Run experiment¶
We will load test the HTTP service whose URL (url
) is https://httpbin.org/get.
The iter8 run
command combines an experiment chart with values, generates the experiment.yaml
file, runs the experiment, and writes results into the result.yaml
file. Run the experiment as follows.
iter8 run --set url=https://httpbin.org/get
4. View report¶
View a report of the experiment in HTML or text formats as follows.
iter8 report -o html > report.html
# open report.html with a browser. In MacOS, you can use the command:
# open report.html
The HTML report looks like this
iter8 report
The text report looks like this
Experiment summary:
*******************
Experiment completed: true
No task failures: true
Total number of tasks: 1
Number of completed tasks: 1
Latest observed values for metrics:
***********************************
Metric |value
------- |-----
built-in/http-error-count |0.00
built-in/http-error-rate |0.00
built-in/http-latency-max (msec) |203.78
built-in/http-latency-mean (msec) |17.00
built-in/http-latency-min (msec) |4.20
built-in/http-latency-p50 (msec) |10.67
built-in/http-latency-p75 (msec) |12.33
built-in/http-latency-p90 (msec) |14.00
built-in/http-latency-p95 (msec) |15.67
built-in/http-latency-p99 (msec) |202.84
built-in/http-latency-p99.9 (msec) |203.69
built-in/http-latency-stddev (msec) |37.94
built-in/http-request-count |100.00
Congratulations! You completed your first Iter8 experiment.
Next steps
- Learn more about load testing HTTP services with service-level objectives (SLOs).
- Learn more about load testing gRPC services with service-level objectives (SLOs).