forked from nicolaka/netshoot
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add fortio and grpcurl from upstream * update to alpine 3.18 * version bumps
- Loading branch information
Showing
2 changed files
with
70 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -117,6 +117,7 @@ some with some sample use-cases. | |
- ethtool: Utility for controlling network drivers and hardware | ||
- fatrace: Report system wide file access events | ||
- fio: Flexible I/O Tester | ||
- fortio: A load testing library, command line tool, advanced echo server and web UI. | ||
- fping: A utility to ping multiple hosts at once | ||
- hping3: A ping-like TCP/IP packet assembler/analyzer | ||
- htop: Interactive process viewer | ||
|
@@ -162,6 +163,7 @@ some with some sample use-cases. | |
- aws-cli2: Universal Command Line Interface for Amazon Web Services | ||
- curl: URL retrieval utility and library | ||
- ca-certificates: Common CA certificates PEM files from Mozilla | ||
- grpcurl: Like cURL, but for gRPC - Command-line tool for interacting with gRPC servers. | ||
- httpie: human-friendly CLI HTTP client for the API era | ||
- httpx: a fully featured HTTP client for Python 3, which provides sync and async APIs, and support for both HTTP/1.1 and HTTP/2. | ||
- openssh: Port of OpenBSD's free SSH release | ||
|
@@ -454,6 +456,7 @@ srvc.2.vu47gf0sdmje@moby | Listener started on port 5000 | |
🐳 → sudo tcpdump -vvvn -i eth0 port 5000 | ||
... | ||
``` | ||
|
||
## iproute2 | ||
purpose: a collection of utilities for controlling TCP / IP networking and traffic | ||
control in Linux. | ||
|
@@ -724,6 +727,49 @@ swaks --to [email protected] \ | |
|
||
More info, examples and lots of documentation on `Swaks` [here](http://www.jetmore.org/john/code/swaks/) | ||
|
||
## Grpcurl | ||
grpcurl is a command-line tool that lets you interact with gRPC servers. It's basically curl for gRPC servers. | ||
Invoking an RPC on a trusted server (e.g. TLS without self-signed key or custom CA) that requires no client certs and supports server reflection is the simplest thing to do with grpcurl. This minimal invocation sends an empty request body: | ||
```bash | ||
grpcurl grpc.server.com:443 my.custom.server.Service/Method | ||
# no TLS | ||
grpcurl -plaintext grpc.server.com:80 my.custom.server.Service/Method | ||
``` | ||
|
||
More info, examples and lots of documentation on `Grpcurl` [here](https://github.com/fullstorydev/grpcurl) | ||
|
||
## Fortio | ||
Fortio is a fast, small (4Mb docker image, minimal dependencies), reusable, embeddable go library as well as a command line tool and server process, the server includes a simple web UI and REST API to trigger run and see graphical representation of the results (both a single latency graph and a multiple results comparative min, max, avg, qps and percentiles graphs). | ||
|
||
```bash | ||
$ fortio load http://www.google.com | ||
Fortio X.Y.Z running at 8 queries per second, 8->8 procs, for 5s: http://www.google.com | ||
19:10:33 I httprunner.go:84> Starting http test for http://www.google.com with 4 threads at 8.0 qps | ||
Starting at 8 qps with 4 thread(s) [gomax 8] for 5s : 10 calls each (total 40) | ||
19:10:39 I periodic.go:314> T002 ended after 5.056753279s : 10 calls. qps=1.9775534712220633 | ||
19:10:39 I periodic.go:314> T001 ended after 5.058085991s : 10 calls. qps=1.9770324224999916 | ||
19:10:39 I periodic.go:314> T000 ended after 5.058796046s : 10 calls. qps=1.9767549252963101 | ||
19:10:39 I periodic.go:314> T003 ended after 5.059557593s : 10 calls. qps=1.9764573910247019 | ||
Ended after 5.059691387s : 40 calls. qps=7.9056 | ||
Sleep times : count 36 avg 0.49175757 +/- 0.007217 min 0.463508712 max 0.502087879 sum 17.7032725 | ||
Aggregated Function Time : count 40 avg 0.060587641 +/- 0.006564 min 0.052549016 max 0.089893269 sum 2.42350566 | ||
# range, mid point, percentile, count | ||
>= 0.052549 < 0.06 , 0.0562745 , 47.50, 19 | ||
>= 0.06 < 0.07 , 0.065 , 92.50, 18 | ||
>= 0.07 < 0.08 , 0.075 , 97.50, 2 | ||
>= 0.08 <= 0.0898933 , 0.0849466 , 100.00, 1 | ||
# target 50% 0.0605556 | ||
# target 75% 0.0661111 | ||
# target 99% 0.085936 | ||
# target 99.9% 0.0894975 | ||
Code 200 : 40 | ||
Response Header Sizes : count 40 avg 690.475 +/- 15.77 min 592 max 693 sum 27619 | ||
Response Body/Total Sizes : count 40 avg 12565.2 +/- 301.9 min 12319 max 13665 sum 502608 | ||
All done 40 calls (plus 4 warmup) 60.588 ms avg, 7.9 qps | ||
``` | ||
|
||
More info, examples and lots of documentation on `Fortio` [here](https://github.com/fortio/fortio) | ||
|
||
# Feedback & Contribution | ||
Feel free to provide feedback and contribute networking troubleshooting tools and | ||
use-cases by opening PRs. If you would like to add any package, open a PR with the rationale and ensure that you update both the Dockerfile and the README with some examples on how to use it! |