Skip to content
A tool to automate network testing tools, like iperf3, in dynamic environments such as Kubernetes and more to come dynamic environments.
Go Other
  1. Go 98.9%
  2. Other 1.1%
Branch: master
Clone or download
galexrt testers: iperf3: fix usage of duration and interval (#56)
testers: iperf3: fix usage of duration and interval
Latest commit 853f800 Nov 7, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd docs: added more defaults and validation Oct 23, 2019
design Reworked testers pretty print Jul 10, 2019
docs tester: iperf3: interval and duration configurable Nov 7, 2019
examples/runners/ansible examples: correct ansible example Nov 5, 2019
outputs csvoutput: make separator configurable Nov 6, 2019
parsers *: renamed project to Ancientt Sep 24, 2019
pkg tester: iperf3: interval and duration configurable Nov 7, 2019
runners runners: run ansible facts retrieval in parallel Nov 5, 2019
testers
tests/k8s k8s runner: allow tests by switching to kubernetes.interface Sep 26, 2019
.gitignore updated .gitignore Sep 25, 2019
.travis.yml build: drop support for golang < 1.13 Nov 5, 2019
CODE_OF_CONDUCT.md
Dockerfile added code of conduct version 1.4.1 Sep 25, 2019
LICENSE added example config file for tests Jul 9, 2019
Makefile build: drop support for golang < 1.13 Nov 5, 2019
NOTICE build: added NOTICE file Oct 11, 2019
README.md build: drop support for golang < 1.13 Nov 5, 2019
VERSION release: bump version file to v0.2.0 Oct 24, 2019
go.mod build: drop support for golang < 1.13 Nov 5, 2019
go.sum build: drop support for golang < 1.13 Nov 5, 2019
testdefinition.example.yaml docs: added more defaults and validation Oct 23, 2019

README.md

ancientt

A tool to automate network testing tools, like iperf3, in dynamic environments such as Kubernetes and more to come dynamic environments.

Features

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
    • Soon other tools will be available as well, like smokeping.
  • 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, dump pretty print library))
    • Excel files (Excelize)
    • go-chart Charts (WIP)
    • MySQL
    • SQLite

Usage

Either build (go get) or download the Ancientt executable.

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:

# You can also use the short flag `-c
ancientt --testdefinition your-testdefinitions.yaml

Demos

See Demos.

Goals of this Project

  • 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 a Job, Ansible (download and) trigger a playbook to run the test.
  • Store result data in different formats, e.g., CSV, excel, MySQL
    • Up for discussion: graph database (Dgraph) and / or TSDB support
  • "Visualization" for humans, e.g., possibility to automatically draw "shiny" graphs from the results.

Development

Golang version: v1.13 or higher (tested with v1.13.3 on linux/amd64)

Dependencies

go mod is used to manage the depeendencies.

Building

Quickest way to just get ancientt built is to run the following command:

go get -u github.com/cloudical-io/ancientt/cmd/ancientt

Licensing

Ancientt is licensed under the Apache 2.0 License.

You can’t perform that action at this time.