1 unstable release
| 0.1.0 | May 2, 2025 |
|---|
#401 in Profiling
10KB
151 lines
ProfServe - HTTP-Enabled Profiling for Rust
ProfServe is a Rust crate that provides HTTP endpoints for performance profiling, built on top of pprof-rs. It enables remote profiling capabilities for your Rust applications with flamegraph generation and pprof data export.
Features
- 🚀 HTTP API for remote profiling
- 🔥 Flamegraph generation in SVG format
- 🔒 Async-ready for modern Rust applications
Quick Start
Installation
Add to your Cargo.toml:
[dependencies]
profserve = "0.1"
Basic Usage
fn main() {
std::thread::spawn(|| profserve::http::serve(8080).expect("Failed to start profserve"));
// your code goes here
}
Making Requests
Get a 10-second profile as flamegraph:
curl -s "http://localhost:8080/prof/cpu?seconds=10&frequency=100&output=flamegraph" > profile.svg
Get raw text pprof data:
curl -s "http://localhost:8080/prof/cpu?seconds=10&output=text" > profile.txt
API Endpoints
| Endpoint | Method | Parameters | Description |
|---|---|---|---|
/prof/cpu |
GET | seconds, output, frequency |
Capture profile |
Dependencies
~25–41MB
~730K SLoC