{ "info": { "author": "Dotan Nahum", "author_email": "jondotan@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "![](media/cover.png)\n\n# mongomon\n\nA Python mongodb monitor and profiler for development.\n\n\n## Quick Start\n\nInstall using pip/pipenv/etc. (we recommend [poetry](https://github.com/sdispater/poetry) for sane dependency management):\n\n```\n$ poetry add mongomon --dev\n```\n\nInitialize before you set up your MongoDB connection:\n\n```py\nfrom mongomon import Monitor, Config\nMonitor(Config(file_capture=\".*/(wiki.*)\")).monitor()\n```\n\nUse `file_capture` to specify how to extract relevant project file paths from traces, rather than absolute file paths.\n\n## Exploring the Example\n![](/media/demo.gif)\n\nWe've taken the example from [Flask-PyMongo](https://flask-pymongo.readthedocs.io/en/latest/) to show how easy it is to have mongomon integrated and running.\n\nYou can [look at the integration here](examples/wiki). To run it:\n\n```\n$ poetry shell\n$ cd examples/wiki && pip install -r requirements\n$ python wiki.py\n```\n\n\n## Configuration\n\nYour main configuration points for mongomon are:\n\n* `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.\n* `low_watermark_us` - a threshold in microseconds (us) above which mongomon starts working (yellow).\n* `high_watermark_us` - a high threshold in microseconds (us) above which mongomon displays timing as alert (red).\n\n\nRest of configuration looks like so (with their defaults and comments):\n```py\n # cleans up stack trace with uninteresting things. Usually packages, standard library, etc.\n ignores = attrib(\n default=[\n \".*/site-packages/.*\",\n \".*traceback.format_stack.*\",\n r\".*/lib/python\\d\\.\\d+/.*\",\n ]\n )\n # shows a file, cleans up absolute path to a file\n file_capture = attrib(default=\"(.*)\")\n # above this value mongomon starts working\n low_watermark_us = attrib(default=5000)\n # above this value mongomon flags as alert\n high_watermark_us = attrib(default=40000)\n # customize how mongodb query looks like before printing to screen\n query_filter = attrib(default=identity)\n # want to print to something else? replace this\n print_fn = attrib(default=print_)\n # want shorter stack traces? customize this\n stack_preprocess = attrib(default=trim_last)\n```\n\n### Thanks:\n\nTo all [Contributors](https://github.com/jondot/mongomon/graphs/contributors) - you make this happen, thanks!\n\n# Copyright\n\nCopyright (c) 2019 [@jondot](http://twitter.com/jondot). See [LICENSE](LICENSE.txt) for further details.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jondot/mongomon", "keywords": "pymongo,mongo,mongodb,monitoring,profiling", "license": "MIT", "maintainer": "Dotan Nahum", "maintainer_email": "jondotan@gmail.com", "name": "mongomon", "package_url": "https://pypi.org/project/mongomon/", "platform": "", "project_url": "https://pypi.org/project/mongomon/", "project_urls": { "Documentation": "https://github.com/jondot/mongomon", "Homepage": "https://github.com/jondot/mongomon", "Repository": "https://github.com/jondot/mongomon" }, "release_url": "https://pypi.org/project/mongomon/0.0.5/", "requires_dist": [ "toolz (>=0.9.0,<0.10.0)", "pygments (>=2.3,<3.0)", "six (>=1.12,<2.0)", "colored (>=1.3,<2.0)", "attr (>=0.3.1,<0.4.0)" ], "requires_python": "", "summary": "A profiler for Python and mongodb", "version": "0.0.5" }, "last_serial": 5134161, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "48cee1a7689fb23e878eea26e71e841a", "sha256": "455cfeec8dfff6a82aac1df0d589de264423a90784e15d8e9c38d097e6a45550" }, "downloads": -1, "filename": "mongomon-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48cee1a7689fb23e878eea26e71e841a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4368, "upload_time": "2019-04-12T13:57:56", "url": "https://files.pythonhosted.org/packages/df/1c/7d97577764e0d36dc24e179cbe49e8d56b4902b38ad387b13b79aa6a56f1/mongomon-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cee895b4202641a1b8f5cff5b9039a1", "sha256": "9544e3dbb5a016ccc975bc8103f55d5812e9cd905c933a85e47077591e92c464" }, "downloads": -1, "filename": "mongomon-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0cee895b4202641a1b8f5cff5b9039a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4230, "upload_time": "2019-04-12T13:57:58", "url": "https://files.pythonhosted.org/packages/1e/ff/6e090bc815c51fe088e4cbae2c69ef732938e6e042f17002e558d7fbbd9d/mongomon-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "87271a57f4939e7b62fd471c5510707d", "sha256": "158593a0119659db5a492dbd6169a816be5c0204365f54b18f2aca2acb1225f2" }, "downloads": -1, "filename": "mongomon-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87271a57f4939e7b62fd471c5510707d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4259, "upload_time": "2019-04-12T14:03:40", "url": "https://files.pythonhosted.org/packages/4f/cc/9e3c8847892adc81b0226385cc9a9fe5114c0be174f0547977bdfa706dbb/mongomon-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0f0ac8397a8c8d5971fc2f3931191b4", "sha256": "9b48855e70cce0934ce3980b407e6d865253f0b5dcedd8e1b78a5e2aa9af3fa5" }, "downloads": -1, "filename": "mongomon-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c0f0ac8397a8c8d5971fc2f3931191b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4116, "upload_time": "2019-04-12T14:03:41", "url": "https://files.pythonhosted.org/packages/28/4c/6a1f1d89d786675e6ad69b513cd6a81868b077dd1b17960b863e6b8fe05a/mongomon-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "dbe31ddac7b93d00fe81fe35506f1ba4", "sha256": "87dfb8a48ba5aaf13c2a108f481d1c54597913bde5b503f64aa7ce0dacf9c6ed" }, "downloads": -1, "filename": "mongomon-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dbe31ddac7b93d00fe81fe35506f1ba4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4259, "upload_time": "2019-04-12T14:07:03", "url": "https://files.pythonhosted.org/packages/a9/d9/e88f48f05a2c36c80ee82a562a35e2f4946ab28c0aab959a8a23e35fd96a/mongomon-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1709dcb5344dbfc41c54344416207a50", "sha256": "c40ea7d019b4d8658fecfaf4d1988cc0fb1430eb58168b22d752bdc80e103f3d" }, "downloads": -1, "filename": "mongomon-0.0.4.tar.gz", "has_sig": false, "md5_digest": "1709dcb5344dbfc41c54344416207a50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4129, "upload_time": "2019-04-12T14:07:05", "url": "https://files.pythonhosted.org/packages/92/b3/5d57a0a35053ff25d2a89d19df240329671c7202c39b7d6c155671afff48/mongomon-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "db2e7a8e0c36cc76e01f6042de22d86c", "sha256": "f2cb96faf3783c8bec11f02faf349647c9fb1229d4b8c35973ece54f39ca559d" }, "downloads": -1, "filename": "mongomon-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db2e7a8e0c36cc76e01f6042de22d86c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4249, "upload_time": "2019-04-12T14:13:13", "url": "https://files.pythonhosted.org/packages/c6/82/cb21dd7534a9abbd54c50639dc95e0f82c43c69b92afca9ed6310c41052f/mongomon-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db46a3f76bfe99ae8f2b514477b51575", "sha256": "a0d72becc65a3091b3e63cb42e351d7e4c9b04928c880dc1feecb95da0fbed1c" }, "downloads": -1, "filename": "mongomon-0.0.5.tar.gz", "has_sig": false, "md5_digest": "db46a3f76bfe99ae8f2b514477b51575", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4111, "upload_time": "2019-04-12T14:13:15", "url": "https://files.pythonhosted.org/packages/1b/2c/a2699adc9e22a5ceb12d6cba312bce274f4a155b10bd0eb757464895c352/mongomon-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "db2e7a8e0c36cc76e01f6042de22d86c", "sha256": "f2cb96faf3783c8bec11f02faf349647c9fb1229d4b8c35973ece54f39ca559d" }, "downloads": -1, "filename": "mongomon-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db2e7a8e0c36cc76e01f6042de22d86c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4249, "upload_time": "2019-04-12T14:13:13", "url": "https://files.pythonhosted.org/packages/c6/82/cb21dd7534a9abbd54c50639dc95e0f82c43c69b92afca9ed6310c41052f/mongomon-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db46a3f76bfe99ae8f2b514477b51575", "sha256": "a0d72becc65a3091b3e63cb42e351d7e4c9b04928c880dc1feecb95da0fbed1c" }, "downloads": -1, "filename": "mongomon-0.0.5.tar.gz", "has_sig": false, "md5_digest": "db46a3f76bfe99ae8f2b514477b51575", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4111, "upload_time": "2019-04-12T14:13:15", "url": "https://files.pythonhosted.org/packages/1b/2c/a2699adc9e22a5ceb12d6cba312bce274f4a155b10bd0eb757464895c352/mongomon-0.0.5.tar.gz" } ] }