otel-profiling-agent
otel-profiling-agent copied to clipboard
Tooling to benchmark wire messages
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 thereporterinto 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)