A profiler for Python and mongodb
Project description
mongomon
A Python mongodb monitor and profiler for development.
Quick Start
Install using pip/pipenv/etc. (we recommend poetry for sane dependency management):
$ poetry add mongomon --dev
Initialize before you set up your MongoDB connection:
from mongomon import Monitor, Config
Monitor(Config(file_capture=".*/(wiki.*)")).monitor()
Use file_capture
to specify how to extract relevant project file paths from traces, rather than absolute file paths.
Exploring the Example
We've taken the example from Flask-PyMongo to show how easy it is to have mongomon integrated and running.
You can look at the integration here. To run it:
$ poetry shell
$ cd examples/wiki && pip install -r requirements
$ python wiki.py
Configuration
Your main configuration points for mongomon are:
file_capture
- an aesthetic configuration point for capturing files for your project. Usually of the form.*/(your-project.*)
, content in parenthesis are a regular expression capture group, and is what we actually extract.low_watermark_us
- a threshold in microseconds (us) above which mongomon starts working (yellow).high_watermark_us
- a high threshold in microseconds (us) above which mongomon displays timing as alert (red).
Rest of configuration looks like so (with their defaults and comments):
# cleans up stack trace with uninteresting things. Usually packages, standard library, etc.
ignores = attrib(
default=[
".*/site-packages/.*",
".*traceback.format_stack.*",
r".*/lib/python\d\.\d+/.*",
]
)
# shows a file, cleans up absolute path to a file
file_capture = attrib(default="(.*)")
# above this value mongomon starts working
low_watermark_us = attrib(default=5000)
# above this value mongomon flags as alert
high_watermark_us = attrib(default=40000)
# customize how mongodb query looks like before printing to screen
query_filter = attrib(default=identity)
# want to print to something else? replace this
print_fn = attrib(default=print_)
# want shorter stack traces? customize this
stack_preprocess = attrib(default=trim_last)
Thanks:
To all Contributors - you make this happen, thanks!
Copyright
Copyright (c) 2019 @jondot. See LICENSE for further details.
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
Built Distribution
File details
Details for the file mongomon-0.0.5.tar.gz
.
File metadata
- Download URL: mongomon-0.0.5.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.12 CPython/3.7.2 Darwin/18.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0d72becc65a3091b3e63cb42e351d7e4c9b04928c880dc1feecb95da0fbed1c |
|
MD5 | db46a3f76bfe99ae8f2b514477b51575 |
|
BLAKE2b-256 | 1b2ca2699adc9e22a5ceb12d6cba312bce274f4a155b10bd0eb757464895c352 |
File details
Details for the file mongomon-0.0.5-py2.py3-none-any.whl
.
File metadata
- Download URL: mongomon-0.0.5-py2.py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.12 CPython/3.7.2 Darwin/18.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2cb96faf3783c8bec11f02faf349647c9fb1229d4b8c35973ece54f39ca559d |
|
MD5 | db2e7a8e0c36cc76e01f6042de22d86c |
|
BLAKE2b-256 | c682cb21dd7534a9abbd54c50639dc95e0f82c43c69b92afca9ed6310c41052f |