Documentation renewed! For old docs, visit doc.newapi.pro
New APINew API
User GuideInstallationAPI ReferenceAI ApplicationsHelp & SupportBusiness Cooperation

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=true

Standalone Deployment:

export ENABLE_PPROF=true

2. 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-hostname

Standalone 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-hostname

3. Restart Application

Restart the application to apply changes.

4. Verification

  1. Open Pyroscope UI
  2. Select the application corresponding to PYROSCOPE_APP_NAME
  3. If HOSTNAME is set, sources can be differentiated by instance dimension

Troubleshooting

Performance analysis not working?

  1. ✅ Verify environment variables are set correctly
  2. ✅ Restart the application after changing variables
  3. ✅ Check network connectivity and authentication configuration
  4. ✅ Confirm PYROSCOPE_APP_NAME naming consistency

Docker Users:

# Check env vars
docker exec new-api env | grep -E "PPROF|PYROSCOPE"

Environment Variables Reference

VariableRequiredDefault ValueDescription
ENABLE_PPROFNofalseEnable pprof performance analysis
PYROSCOPE_URLNo-Pyroscope service address
PYROSCOPE_APP_NAMENo-Pyroscope application identifier
PYROSCOPE_BASIC_AUTH_USERNo-Pyroscope Basic Auth username
PYROSCOPE_BASIC_AUTH_PASSWORDNo-Pyroscope Basic Auth password
PYROSCOPE_MUTEX_RATENo-Mutex sampling rate
PYROSCOPE_BLOCK_RATENo-Block sampling rate
HOSTNAMENo-Instance identifier (optional)

How is this guide?

Last updated on