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.
Metadata
Release files for mongomon 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mongomon-0.0.5.tar.gz | 4.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mongomon-0.0.5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 8.4 kB
Release files / mongomon-0.0.5.tar.gz
| Download URL | mongomon-0.0.5.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0d72becc65a3091b3e63cb42e351d7e4c9b04928c880dc1feecb95da0fbed1c
|
|
BLAKE2b-256 checksum How to use checksums |
1b2ca2699adc9e22a5ceb12d6cba312bce274f4a155b10bd0eb757464895c352
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/0.12.12 CPython/3.7.2 Darwin/18.2.0
|
Release files / mongomon-0.0.5-py2.py3-none-any.whl
| Download URL | mongomon-0.0.5-py2.py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f2cb96faf3783c8bec11f02faf349647c9fb1229d4b8c35973ece54f39ca559d
|
|
BLAKE2b-256 checksum How to use checksums |
c682cb21dd7534a9abbd54c50639dc95e0f82c43c69b92afca9ed6310c41052f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/0.12.12 CPython/3.7.2 Darwin/18.2.0
|