otel-profiling-agent icon indicating copy to clipboard operation
otel-profiling-agent copied to clipboard

Tooling to benchmark wire messages

Open rockdaboot opened this issue 1 year ago • 0 comments

This PR is a PoC/RFC for https://github.com/open-telemetry/opentelemetry-ebpf-profiler/issues/110.

The PR adds three new options to the profiling agent

  • -reporter-record-inputs-to=<FILE> to record all internal data passed to the reporter into the given NDJSON file.
  • -reporter-replay-inputs-from=<FILE> replays the data from the given NDJSON file.
  • -reporter-save-outputs-to=<DIR> records all wire messages uncompressed into the given directory, one file per message.

The PR also adds tools/protobench that allows compressing the wire messages recorded by the profiling agent with different compression algorithms and levels. The compressors are all imported as Go dependencies (external tools are not used), as that is what the profiling agent would use. The results can be output as CSV or as PNG file (bar chart).

This should combine with prior work from @petethepig (see https://docs.google.com/spreadsheets/d/1Q-6MlegV8xLYdz5WD5iPxQU2tsfodX1-CDV1WeGzyQ0/edit?gid=1732807979#gid=1732807979)

rockdaboot avatar Aug 15 '24 16:08 rockdaboot