Measure UDP and TCP flow latency for both IPv4 and IPv6 using eBPF
.
This repo is the companion to my blog posts about eBPF at https://thegraynode.io/tags/flat/.
You can install flat in two ways.
- Download the pre-compiled binary
- Compile from source
wget https://github.com/pouriyajamshidi/flat/releases/latest/download/flat
Then check out the examples.
Clone the repository:
git clone https://github.com/pouriyajamshidi/flat .
Change directory to flat
:
cd flat
While at the root of project directory, to compile the C code and generate the helper functions, run:
go generate ./...
Compile the Go program:
go build -ldflags "-s -w" -o flat cmd/flat.go
Run it with elevated privileges:
# Replace eth0 with your desired interface name
sudo ./flat -i eth0
# Or
sudo ./flat -i eth0 -ip 1.1.1.1
# Or
sudo ./flat -i eth0 -port 53
# Or
sudo ./flat -i eth0 -ip 1.1.1.1 -port 53
flat supports four flags at the moment:
flag | Description |
---|---|
-i | interface to attach the probe to |
-ip | IP address to filter on (optional) |
-port | Port number to filter on (optional) |
-h | Show help message |
Heavily inspired by flowlat.