Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uber/arachne
An always-on framework that performs end-to-end functional network testing for reachability, latency, and packet loss
https://github.com/uber/arachne
arachne cloud data-center latency monitoring network-monitoring networking packet-loss reachability reliability
Last synced: 8 days ago
JSON representation
An always-on framework that performs end-to-end functional network testing for reachability, latency, and packet loss
- Host: GitHub
- URL: https://github.com/uber/arachne
- Owner: uber
- License: mit
- Created: 2016-11-16T14:21:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-08T15:54:12.000Z (7 months ago)
- Last Synced: 2024-08-02T02:13:43.525Z (3 months ago)
- Topics: arachne, cloud, data-center, latency, monitoring, network-monitoring, networking, packet-loss, reachability, reliability
- Language: Go
- Homepage:
- Size: 120 KB
- Stars: 392
- Watchers: 2,199
- Forks: 30
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Arachne [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Go Report Card][gorep-img]][gorep]
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:- Reachability
- 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## Usage
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
```go
arachne.Run(config, arachne.ReceiverOnlyMode(false))
```
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=] [--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](LICENSE.md).
[doc-img]: https://godoc.org/github.com/uber/arachne?status.svg
[doc]: https://godoc.org/github.com/uber/arachne
[ci-img]: https://travis-ci.org/uber/arachne.svg?branch=master
[ci]: https://travis-ci.org/uber/arachne
[capabilities]: http://linux.die.net/man/7/capabilities
[gorep-img]: https://goreportcard.com/badge/github.com/uber/arachne
[gorep]: https://goreportcard.com/report/github.com/uber/arachne