getsentry / symbolicator

Native Symbolication as a Service
https://getsentry.github.io/symbolicator/
MIT License
359 stars 47 forks source link

Add metrics to stresstest and optimize `cadence` usage #1360

Closed Swatinem closed 7 months ago

Swatinem commented 7 months ago

I added a local UDP sink to fully test metrics submission. It turns out the default cadence sink and the UDP submissions it does are extremely slow (at least on my machine).

Switching to the queueing and buffering sink speeds up the stresstest considerably.

Workload 0 (concurrency: 10): 176 operations, 11.733334 ops/s
Workload 1 (concurrency: 10): 137 operations, 9.133333 ops/s
Workload 2 (concurrency: 10): 190 operations, 12.666667 ops/s
Workload 3 (concurrency: 100): 169 operations, 11.266666 ops/s
Workload 4 (concurrency: 100): 388 operations, 25.866667 ops/s
Workload 5 (concurrency: 50): 563 operations, 37.533333 ops/s

Workload 0 (concurrency: 10): 2613 operations, 174.2 ops/s
Workload 1 (concurrency: 10): 1978 operations, 131.86667 ops/s
Workload 2 (concurrency: 10): 3681 operations, 245.4 ops/s
Workload 3 (concurrency: 100): 21564 operations, 1437.6 ops/s
Workload 4 (concurrency: 100): 10633 operations, 708.86664 ops/s
Workload 5 (concurrency: 50): 20848 operations, 1389.8667 ops/s

That is a 10x-100x improvement depending on the stresstest.

skip-changelog