Run the Parca server binary or deploy it via Kubernetes, pointing it at a parca.yaml config file that contains scrape_configs
In parca.yaml define a job with job_name, static_configs listing target host:port, and scrape_interval (default 30s); enable desired profile types under profiling_config.pprof_config
Ensure target Go services expose /debug/pprof/* endpoints by importing net/http/pprof and serving on a known port
Optionally deploy the Parca Agent (eBPF-based) as a DaemonSet for system-wide always-on CPU profiling that requires no code changes
Open the Parca UI, select a profile type (cpu, heap, goroutine), choose a time range, and use the flamegraph or icicle chart to identify hot functions
Use the ParcaScrapeConfig CRD when running the Parca Operator to dynamically add scrape targets without restarting the server
Known gotchas
scrape_timeout defaults to 40s which is longer than scrape_interval default of 30s; set scrape_timeout below your scrape_interval to avoid overlapping scrapes
The /debug/pprof/ endpoint must be reachable from the Parca server; avoid exposing it on a public port — use a separate internal listener or network policy
pprof heap profiles show allocations in-use at snapshot time, not cumulative allocations; use /debug/pprof/allocs for cumulative allocation data
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp