A tool to automate network testing tools, like iperf3, in dynamic environments such as Kubernetes and more to come.
Container Image available from:
Container Image Tags:
main
- Latest build of themain
branch.vX.Y.Z
- Tagged build of the application.
TL;DR A network test tool, like iperf3
can be run in, e.g., Kubernetes, cluster from all-to-all Nodes.
- Run network tests with the following projects:
iperf3
- PingParsing
- Soon more tools will be available as well, see GitHub Issues with "testers" Label.
- Tests can be run through the following "runners":
- Ansible (an inventory file is needed)
- Kubernetes (a kubeconfig connected to a cluster)
- Results of the network tests can be output in different formats:
- CSV
- Dump (uses
pp.Sprint()
(GitHub k0kubun/pp, pretty print library)) - Excel files (using Excelize library)
- go-chart Charts (WIP)
- MySQL
- SQLite
Either build (go get
), download the ancientt
executable from the GitHub release page or use the Container image.
A config file containing test definitions must be given by flag --testdefinition
(or short flag -c
) or named testdefinition.yaml
in the current directory.
Below command will try loading your-testdefinitions.yaml
as the test definitions config:
$ ancientt --testdefinition your-testdefinitions.yaml
# You can also use the short flag `-c` instead of `--testdefinition`
# and also with `-y` run the tests immediately
$ ancientt -c your-testdefinitions.yaml -y
See Demos.
- A bit like Prometheus blackbox exporter which contains "definitions" for probes. The "tests" would be pluggable through a Golang interface.
- "Runner" interface, e.g., for Kubernetes, Ansible, etc. The "runner" abstracts the "how it is run", e.g., for Kubernetes creates Pods and Jobs, Ansible to trigger a playbook to run the test.
- Store the result data in different formats, e.g., CSV, Excel, MySQL
- Up for discussion: graph database (Dgraph) or TSDB support
- "Visualization" for humans, e.g., the possibility to automatically draw "shiny" graphs from the results.
Golang version: v1.22
or higher (tested with v1.22.4
on linux/amd64
)
- Add a new entry for release to
CHANGELOG.md
. - Update
VERSION
with the new version number. git commit
andgit push
both changes (e.g.,version: update to VERSION_HERE
).- Now create the git tag and push the tag
git tag VERSION_HERE
followed bygit push --tags
.
go mod
is used to manage the dependencies.
The quickest way to just get ancientt
built is to run the following command (requires go
installed on the system):
go get -u github.com/galexrt/ancientt/cmd/ancientt
ancientt is licensed under the Apache 2.0 License.
ancientt
was initially created at Cloudical.
It is easier for me to update the project this way and keep it going.