Performance Analysis Setup Guide
Overview
New API provides two types of performance analysis capabilities:
- pprof (Built-in): Suitable for temporary diagnosis and offline analysis
- Pyroscope (Optional): Suitable for online continuous analysis and flame graph visualization
Both can be enabled simultaneously without conflict.
Features
✅ Zero-code integration - configured solely via environment variables
✅ Supports Docker and standalone deployment
✅ Supports coexisting temporary diagnosis and continuous analysis
✅ Optional authentication and instance differentiation
pprof (Built-in) Setup
1. Configure Environment Variables
Using Docker Compose:
environment:
- ENABLE_PPROF=trueStandalone Deployment:
export ENABLE_PPROF=true2. Restart Application
Restart the application to apply changes.
3. Verification
If the route is not modified, it can usually be accessed at /debug/pprof/ (subject to actual deployment).
Pyroscope Setup
1. Prepare Pyroscope Service
Ensure the Pyroscope service is accessible and record its address (e.g., http://localhost:4040).
2. Configure Environment Variables
Using Docker Compose:
environment:
- PYROSCOPE_URL=http://localhost:4040
- PYROSCOPE_APP_NAME=new-api
- PYROSCOPE_BASIC_AUTH_USER=your-user
- PYROSCOPE_BASIC_AUTH_PASSWORD=your-password
- PYROSCOPE_MUTEX_RATE=5
- PYROSCOPE_BLOCK_RATE=5
- HOSTNAME=your-hostnameStandalone Deployment:
export PYROSCOPE_URL=http://localhost:4040
export PYROSCOPE_APP_NAME=new-api
export PYROSCOPE_BASIC_AUTH_USER=your-user
export PYROSCOPE_BASIC_AUTH_PASSWORD=your-password
export PYROSCOPE_MUTEX_RATE=5
export PYROSCOPE_BLOCK_RATE=5
export HOSTNAME=your-hostname3. Restart Application
Restart the application to apply changes.
4. Verification
- Open Pyroscope UI
- Select the application corresponding to
PYROSCOPE_APP_NAME - If
HOSTNAMEis set, sources can be differentiated by instance dimension
Troubleshooting
Performance analysis not working?
- ✅ Verify environment variables are set correctly
- ✅ Restart the application after changing variables
- ✅ Check network connectivity and authentication configuration
- ✅ Confirm
PYROSCOPE_APP_NAMEnaming consistency
Docker Users:
# Check env vars
docker exec new-api env | grep -E "PPROF|PYROSCOPE"Environment Variables Reference
| Variable | Required | Default Value | Description |
|---|---|---|---|
ENABLE_PPROF | No | false | Enable pprof performance analysis |
PYROSCOPE_URL | No | - | Pyroscope service address |
PYROSCOPE_APP_NAME | No | - | Pyroscope application identifier |
PYROSCOPE_BASIC_AUTH_USER | No | - | Pyroscope Basic Auth username |
PYROSCOPE_BASIC_AUTH_PASSWORD | No | - | Pyroscope Basic Auth password |
PYROSCOPE_MUTEX_RATE | No | - | Mutex sampling rate |
PYROSCOPE_BLOCK_RATE | No | - | Block sampling rate |
HOSTNAME | No | - | Instance identifier (optional) |
Related Links
How is this guide?
Last updated on