A Small tool for SDWAN performance test and policy validation

Related tags

JSON sdwan-perf
Overview

sdwan-perf

Sdwan-perf is based on golang and could support almost platform for performance and policy validation.

   SDWAN Performance Test Report
+--------------+---------------------------+--------------------------+
|    Stats     |        Latency(ms)        |  Bandwidth(Per Session)  |
+--------------+---------------------------+--------------------------+
| mean         |               166.82ms    |                75.35Mbps |
| Jitter       |               770.53ms    |                          |
|              |                           |                          |
| Min          |                87.00ms    |                 0.80Mbps |
| p25          |               102.00ms    |                72.74Mbps |
| p75          |               110.00ms    |                78.44Mbps |
| p90          |               113.00ms    |                81.64Mbps |
| p95          |               116.00ms    |                83.34Mbps |
| p99          |               136.00ms    |                86.03Mbps |
| Max          |              9978.00ms    |                91.97Mbps |
+--------------+---------------------------+--------------------------+
| Count: 16102 | Error: 312 | Timeout: 300 | Total-BW:    7534.52Mbps |
+--------------+---------------------------+--------------------------+

Server Mode

You could specify multi ports in port parameter. This feature is useful when you want to compare different SDWAN policy

./sdwan-perf_linux -role=server -port=8000,8001,8002,8003

Client Mode

./sdwan-perf_linux -role=client  -duration=100 -server=127.0.0.1 -port=8001 -size=1000000 -num=100

You could use this tool to verify other site's performance like below

 ./sdwan-perf_linux -role=client -url=https://www.google.com -num=1 

TODO

Will merge it to Ruta linkstate_probe node and provide a cloud native performance measurement framework.

Usage

Usage of ./sdwan-perf_linux:
  -duration int
    	Test Duration (default 60)
  -fin
    	server mode close connection after send response
  -num int
    	Num of clients (default 10)
  -port string
    	Server Port (default "8000")
  -reqs int
    	Pipeline reqs per client (default 10)
  -role string
    	Role: client|server (default "client")
  -server string
    	Server IP address (default "127.0.0.1")
  -size int
    	bandwidth test block size (default 1)
  -timeout int
    	client timeout seconds (default 10)
  -url string
    	Testing URL

Acknowlegement

The Quantile stats lib is from, Thanks a lot for Beorn7 and bmizerany great work.

Owner
Mie~~~
Mie~~~
Convenience wrapper around "go test" + "benchstat".

go-benchrun Convenience wrapper around "go test" + benchstat. Run benchmarking in 1 simple command. Installation & Quick start This install go-benchru

Iskander (Alex) Sharipov 16 Mar 1, 2022
A high-performance 100% compatible drop-in replacement of "encoding/json"

A high-performance 100% compatible drop-in replacement of "encoding/json" You can also use thrift like JSON using thrift-iterator Benchmark Source cod

Jsoniter 10.9k May 22, 2022
A high-performance, zero allocation, dynamic JSON Threat Protection in pure Go

Package gojtp provides a fast way to validate the dynamic JSON and protect against vulnerable JSON content-level attacks (JSON Threat Protection) based on configured properties.

Ankur Anand 54 Mar 18, 2022
Example to validate performance using append or not in golang

benchtest-arr-go This code is a example to validate performance using append or not in golang result benchtests go test -benchmem -bench . goos: darwi

Renan Bastos 1 Jan 10, 2022
/ˈdʏf/ - diff tool for YAML files, and sometimes JSON

dyff is inspired by the way the old BOSH v1 deployment output reported changes from one version to another by only showing the parts of a YAML file that change.

null 599 May 17, 2022
A tool to aggregate and mine data from JSON reports of Go tests.

teststat A tool to aggregate and mine data from JSON reports of Go tests. Why? Mature Go projects often have a lot of tests, and not all of them are i

Viacheslav Poturaev 3 Jan 3, 2022
CLI tool to handle JSON logs

logit is a CLI tool that consumes logs in JSON and feeds them into a logs storage like file, Amazon CloudWatch, or Slack.

Life4 22 Nov 9, 2021
Online tool that convert JSON to Go.

json-to-go 将json生成go的数据结构。Online tool that convert JSON to Go. Online Link | 地址 Link1 | 国内 Link2 | 国外 Local Develope | 本地开发 suggest use(强烈建议使用) pnpm !

misaka full stack 15 Dec 18, 2021
Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection

fastjson - fast JSON parser and validator for Go Features Fast. As usual, up to 15x faster than the standard encoding/json. See benchmarks. Parses arb

Aliaksandr Valialkin 1.5k May 11, 2022
Fast and flexible JSON encoder for Go

Jettison Jettison is a fast and flexible JSON encoder for the Go programming language, inspired by bet365/jingo, with a richer features set, aiming at

William Poussier 126 May 13, 2022
HuJSON: JSON for Humans (comments and trailing commas)

HuJSON - Human JSON The HuJSON decoder is a JSON decoder that also allows comments, both /* ... */ and // to end of line trailing commas on arrays and

Tailscale 374 May 15, 2022
tson is JSON viewer and editor written in Go

tson tson is JSON viewer and editor written in Go. This tool displays JSON as a tree and you can search and edit key or values. Support OS Mac Linux I

skanehira 127 Mar 17, 2022
JSONata in Go Package jsonata is a query and transformation language for JSON

JSONata in Go Package jsonata is a query and transformation language for JSON. It's a Go port of the JavaScript library JSONata.

Blues Inc 24 Apr 27, 2022
Slow and unreliable JSON parser generator (in progress)

VivaceJSON Fast and reliable JSON parser generator Todo List parse fields parse types generate struct generate (keypath+key) to struct Value Mapping F

null 7 Mar 3, 2022
Package json implements encoding and decoding of JSON as defined in RFC 7159

Package json implements encoding and decoding of JSON as defined in RFC 7159. The mapping between JSON and Go values is described in the documentation for the Marshal and Unmarshal functions

High Performance, Kubernetes Native Object Storage 3 May 10, 2022
JSONL graph tools - Graph is represented as JSONL of nodes and edges.

JSONL graph tools - Graph is represented as JSONL of nodes and edges.

Nikolay Dubina 58 Apr 22, 2022
Kazaam was created with the goal of supporting easy and fast transformations of JSON data with Golang

kazaam Description Kazaam was created with the goal of supporting easy and fast transformations of JSON data with Golang. This functionality provides

Qntfy 205 Sep 17, 2021
Read and write multiline JSONL in Go

This package was build for programmatic access of multiline JSON in Go. If you need CLI for JSON, I highly recommend jq. $ go install github.com/nikol

Nikolay Dubina 5 May 6, 2022
Golang JSON decoder supporting case-sensitive, number-preserving, and strict decoding use cases

Golang JSON decoder supporting case-sensitive, number-preserving, and strict decoding use cases

Kubernetes SIGs 12 Apr 3, 2022