Pypprof Flask wrapper
Project description
flask-pypprof
Blueprint for pprof profiling endpoints a la GO's that can be added to python Flask applications. flask-pypprof is a wrapper of pypprof and based on django-pypprof ideas.
Installation
pip install flask-pypprof
Usage
To add the pprof endpoints to your application, simply register the blueprint:
from flask_pypprof import get_pprof_blueprint
app.register_blueprint(get_pprof_blueprint())
Once registered, you will be able to access the following endpoints:
/debug/pprof/profile
: will return a CPU profile/debug/pprof/heap
: will return a heap profile/debug/pprof/thread
: will return a thread profile/debug/pprof/wall
: will return a wall time profile(work in progress)
Configuration
You can configure the memory sample rate by setting the following environment variable:
MEMORY_PROFILER_ENABLED
: enables the memory profiler (default: false)MEMORY_SAMPLE_RATE
: sets the memory profiling sample rate (default: 128 * 1024)
export MEMORY_PROFILER_ENABLED = false
export MEMORY_SAMPLE_RATE = 128 * 1024
Fetching profiles from your application
Fetch a 30 seconds CPU profile:
go tool pprof -http=:8088 http://localhost:8081/debug/pprof/profile?seconds=30
Fetch a heap profile:
go tool pprof -http=:8088 http://localhost:8081/debug/pprof/heap
Compatibility
Python 3.8, 3.9, 3.10 and Flask >= 2.0.0 and Linux only.
Known issues
zprofile issue with python 3.11
: https://github.com/timpalpant/zprofile/pull/2mprofile only works on linux/amd64 or at least linux/arm64 is not supported
. Also see timpalpant/mprofile#3.
License
This code base is available under the Apache License, version 2.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flask_pypprof-0.1.18.tar.gz
(7.0 kB
view hashes)
Built Distribution
Close
Hashes for flask_pypprof-0.1.18-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2bf8af0675006127ff439acffda2c9b3ee444b672d21ceb44ed32ebdd8b9849 |
|
MD5 | 0e0109d1e67db503f66340a9a9d791b9 |
|
BLAKE2b-256 | f920f6f418cec270209cd6dea1f368b41f7b1c03798fe0e5eb913443c5d21a75 |