Arachne is a packet loss detection system and an underperforming path detection system. It provides fast and easy active end-to-end functional testing of all the components in Data Center and Cloud infrastructures. Arachne is able to detect intra-DC, inter-DC, DC-to-Cloud, and DC-to-External-Services issues by generating minimal traffic:
- Round-trip and 1-way latency
- Silent packet drops and black holes
- Jitter (average of the deviation from the network mean latency)
- PMTU or Firewall issues too related possibly to network config changes (accidental or not)
- Whether network-level SLAs are met
There are two ways to use the Arachne package.
As a standalone program
Run Arachne as a standalone program (it's Debian packaged already too).
As a library in your own program
Import this package and call Arachne from your program/service with
where the option provided above is among the few optional ones.
Below is the list of all the CLI options available, when Arachne is used as a standalone program. The default options should be good enough for most users.
$ arachne --help ____________________________________________________________/\\\______________________________________ ___________________________________________________________\/\\\______________________________________ ___________________________________________________________\/\\\______________________________________ __/\\\\\\\\\_____/\\/\\\\\\\___/\\\\\\\\\________/\\\\\\\\_\/\\\__________/\\/\\\\\\_______/\\\\\\\\__ _\////////\\\___\/\\\/////\\\_\////////\\\_____/\\\//////__\/\\\\\\\\\\__\/\\\////\\\____/\\\/////\\\_ ___/\\\\\\\\\\__\/\\\___\///____/\\\\\\\\\\___/\\\_________\/\\\/////\\\_\/\\\__\//\\\__/\\\\\\\\\\\__ __/\\\/////\\\__\/\\\__________/\\\/////\\\__\//\\\________\/\\\___\/\\\_\/\\\___\/\\\_\//\\///////___ _\//\\\\\\\\/\\_\/\\\_________\//\\\\\\\\/\\__\///\\\\\\\\_\/\\\___\/\\\_\/\\\___\/\\\__\//\\\\\\\\\\_ __\////////\//__\///___________\////////\//_____\////////__\///____\///__\///____\///____\//////////__ Usage: arachne [--foreground] [-c=<config_file>] [--receiver_only] [--sender_only] Arachne is a packet loss detection system and an underperforming path detection system for Data Center and Cloud infrastructures. Options: -v, --version Show the version and exit --foreground=false Force foreground mode -c, --config_file="/usr/local/etc/arachne/arachne.yaml" Config file path (default: /usr/local/etc/arachne/arachne.yaml) --receiver_only=false Force TCP receiver-only mode --sender_only=false Force TCP sender-only mode
Note on required privileges to run
Arachne is granted access to raw sockets without the need to run with sudo or as root user, by being granted
CAP_NET_RAW capability (see: capabilities).
Note on BPF filtering
When receiving packets, Arachne attempts to apply a BPF filter to the raw socket so that processing of packets occurs on a much smaller set (ones destined specifically for Arachne agent testing). This is currently supported only on Linux and thus performance will be worse on BSD-based systems where a larger number of packets must be inspected.
Released under the MIT License.