linkerd / linkerd-examples

Examples of how to configure and run linkerd
https://linkerd.io
Apache License 2.0
431 stars 221 forks source link

Introduce performance reporter process #234

Closed siggy closed 6 years ago

siggy commented 6 years ago

The perf-baseline environment runs Linkerd under load, with results observable in Prometheus / Grafana.

This change introduces a small Go process, reporter, that periodically queries Prometheus and prints a report to stdout.

Signed-off-by: Andrew Seigner siggy@buoyant.io

Depends on #233.

Example output:

$ kubectl -n l5d-perf logs -f $(kubectl -n l5d-perf get po --selector=app=reporter -o jsonpath='{.items[*].metadata.name}')
time="2018-08-17T00:39:22Z" level=info msg="Waiting 7 minutes to publish first report for namespace l5d-perf..."
Stats report:
Protocol: h1:
  baseline-h1
    Success rate:     100.00%
    Request rate:     187
    p50 latency (us): 1134
    p75 latency (us): 1404
    p90 latency (us): 1740
    p95 latency (us): 2054
    p99 latency (us): 3148
    p99 latency (us): 5435
    Memory (bytes):   0
    CPU (cores):      0.000
  linkerd2
    Success rate:     100.00%
    Request rate:     155
    p50 latency (us): 1270
    p75 latency (us): 1675
    p90 latency (us): 2192
    p95 latency (us): 2470
    p99 latency (us): 3896
    p99 latency (us): 5705
    Memory (bytes):   0
    CPU (cores):      0.000
Protocol: h2:
  baseline-h2
    Success rate:     100.00%
    Request rate:     178
    p50 latency (us): 384
    p75 latency (us): 691
    p90 latency (us): 1134
    p95 latency (us): 1590
    p99 latency (us): 3284
    p99 latency (us): 7368
    Memory (bytes):   0
    CPU (cores):      0.000
  linkerd2
    Success rate:     100.00%
    Request rate:     191
    p50 latency (us): 1500
    p75 latency (us): 1781
    p90 latency (us): 2338
    p95 latency (us): 2802
    p99 latency (us): 3861
    p99 latency (us): 7583
    Memory (bytes):   0
    CPU (cores):      0.000