Rust
Use pprof-rs (Apache-2.0) in-process and push the pprof it writes. Sample types: cpu. Span links: no. Native frames symbolize from uploaded debug files (wtctl debug-files upload).
let guard = pprof::ProfilerGuardBuilder::default().frequency(99).build()?;
// ... later
let report = guard.report().build()?;
let mut buf = Vec::new();
report.pprof()?.write_to_vec(&mut buf)?; // protobuf; gzip before uploadgzip -c cpu.pb > cpu.pb.gz
wtctl profile upload cpu.pb.gz --service checkout --version 1.4.2 --format pprofUpdated