{ "info": { "author": "Xavier Barbosa", "author_email": "xavier.barbosa@iscool-e.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: Log Analysis", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Page Counters", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Monitoring", "Topic :: Utilities" ], "description": "IsCool Entertainment Pynba\n==========================\n\n.. warning::\n\n This package is deprecated ! use pynba_ instead.\n\nPynba is a WSGI Middleware for Pinba_. It allows realtime monitoring/statistics\nserver using MySQL as a read-only interface. It works on Python 2.7, 3.3 and more.\n\nIt accumulates and processes data sent over UDP by multiple Python processes\nand displays statistics in a nice human-readable form of simple \"reports\", also\nproviding read-only interface to the raw data in order to make possible\ngeneration of more sophisticated reports and stats.\n\nUsers also can measure particular parts of the code using timers with arbitrary\ntags.\n\n\nWhy another statistics manager ?\n--------------------------------\n\nBecause Pinba rocks!\n\nAt `IsCool Entertainment`_, we already use Pinba for monitoring our PHP based\napplications.\n\n\nRequirements\n------------\n\nThis library relies only on Pinba_.\nYou will need to install theses packages before using Pynba.\n\nThe installation process requires setuptools to be installed.\nIf it is not, please refer to the installation of this package.\n\n\nSetup\n-----\n\nIf you want to install the official release, do::\n\n $ pip install iscool_e.pynba\n\nBut i you prefer to use the current developement version, do::\n\n $ git clone https://github.com/IsCoolEntertainment/pynba.git\n $ python setup.py install\n\n\nUsage\n-----\n\nSays that your main WSGI application is::\n\n def app(environ, start_response):\n ...\n\nImport the pynba decorator, and decorate your main app with it::\n\n from iscool_e.pynba import monitor\n\n @monitor(('127.0.0.1', 30002))\n def app(environ, start_response):\n ...\n\nEach time the app will be processed, a new UPD stream will be sent.\n\nYou can also tag the process, for example::\n\n @monitor(('127.0.0.1', 30002), tags={'foo': 'bar'})\n def app(environ, start_response):\n ...\n\nEventualy, you can use timers to measure particular parts of your code.\nFor it, just import the pynba proxy, and use it to create new timers::\n\n from iscool_e.pynba import pynba\n\n timer = pynba.timer(foo=\"bar\")\n timer.start()\n ...\n timer.stop()\n\nBut you may want to supervise simple scripts. For this usage, use ``ScriptMonitor``::\n\n from iscool_e.pynba.util import ScriptMonitor\n\n monitor = ScriptMonitor(('127.0.0.1', 30002), tags={'foo': 'bar'})\n timer = monitor.timer(foo='bar')\n timer.start()\n ...\n timer.stop()\n monitor.send()\n\n\nSome use cases are available on src/examples/\n\n\nLogging and debugging\n---------------------\n\nPynba log to the 'pynba' logger. You should plug an handler in it. For example,\nlet's say you want to log everything to syslog, here is the modop::\n\n import logging\n import logging.handlers\n logger = logging.getLogger('pynba')\n logger.setLevel(logging.DEBUG)\n logger.setHandler(logging.handlers.SysLogHandler)\n\n\nAnother aspect is that reporting will be as discreet as possible, by not\nraising exceptions on errors. This feature can be disabled directly into the\nreporter instance.\n\nFor the WSGI usage::\n\n from iscool_e.pynba import PynbaMiddleware\n\n monitored_app = PynbaMiddleware(app, ('127.0.0.1', 30002))\n monitored_app.reporter.raise_on_fail = True\n\nThe decorated version::\n\n from iscool_e.pynba import monitor\n\n @monitor(('127.0.0.1', 30002))\n def app(environ, start_response):\n ...\n app.reporter.raise_on_fail = True\n\nOr the script usage::\n\n from iscool_e.pynba.util import ScriptMonitor\n\n monitor = ScriptMonitor(('127.0.0.1', 30002))\n monitor.reporter.raise_on_fail = True\n\n\nContribute\n----------\n\nWhile debugging, you can rebuild c package with this command::\n\n $ python setup.py cythonize develop\n\n\nDifferences with PHP extension\n------------------------------\n\nAbout the data sent:\n\n* ``ru_utime`` and ``ru_stime`` represent the resource usage for the current\n process, not the shared resources.\n* ``document_size`` cannot be automaticaly processed with the current WSGI\n specification. You are able to set manually this value like this::\n\n pynba.document_size = [YOUR VALUE]\n\n* ``memory_peak`` also is currently not implemented. Like the previous data,\n you can set manually this value like this::\n\n pynba.memory_peak = [YOUR VALUE]\n\n* ``memory_footprint`` also is currently not implemented. Like the previous data,\n you can set manually this value like this::\n\n pynba.memory_footprint = [YOUR VALUE]\n\nAbout timers:\n\n* The Python version permites multiple values for each timer tags.\n Just declare any sequences, mapping or callable. This example::\n\n pynba.timer(foo='bar', baz=['seq1', 'seq2'], qux={'map1': 'val1'})\n\n Will populates 4 values for 3 tags in the Pinba database::\n\n ('foo', 'bar'),\n ('baz, 'seq1'),\n ('baz, 'seq2'),\n ('qux.map1', 'val1')\n\nOther additions:\n\n* ``ScriptMonitor`` allows to monitor single scripts. At IsCool Entertainment, we use it for monitoring our AMQ based workers.\n\n\nLicense\n-------\n\nThis package is release under the MIT Licence.\nPlease see LICENSE document for a full description.\n\n\nCredits\n-------\n\n- Pinba_\n- Pynba_\n- `IsCool Entertainment`_\n\n.. _Pinba: http://pinba.org\n.. _`IsCool Entertainment`: http://www.iscoolentertainment.com/en/\n.. _pynba: http://github.com/johnnoone/pynba\n\n\n.. Please, see the README.rst for more details\n\nNews\n====\n\n0.1\n---\n\n*Release date: 19-Jun-2012*\n\n* First release\n\n0.2\n---\n\n*Release date: 29-Jun-2012*\n\n* Logging refactoring\n\n0.3\n---\n\n*Release date: 26-Sept-2012*\n\n* Migrate to cython\n* Removed Werkzeug dependency\n\n0.3.2\n-----\n\n*Release date: 1-Oct-2012*\n\n* Fixed empty strings\n\n0.3.3\n-----\n\n*Release date: 29-Oct-2012*\n\n* Added util for scripts monitoring\n\n0.3.5\n-----\n\n*Release date: 29-Oct-2013*\n\n* Status support on reporter\n\n0.3.6\n-----\n\n*Release date: 4-Jun-2014*\n\n* preparation for Python 3 support\n* use pytest and tox for testing\n* added a Reporter.raise_on_fail attribute, in order to hide exceptions on production servers.\n* describe logging strategy\n\n0.4.0\n-----\n\n*Release date: 6-Jun-2014*\n\n* Python >= 3.3 support !\n* added memory_footprint and schema reporting\n* added cythonize command\n* dropped protobuf library for the benefit of a small embedded script\n\n0.4.1\n-----\n\n*Release date: 6-Jun-2014*\n\n* don't raise an Exception on pynba.enabled when outside of context\n* implements DataCollector tags\n\n0.4.2\n-----\n\n*Release date: 18-Jul-2014*\n\n* fix util.ScriptMonitor\n\n0.4.3\n-----\n\n*Release date: 06-Nov-2014*\n\n* fix util.ScriptMonitor tags\n\n\n0.5.0\n-----\n\n*Release date: 18-Jun-2015*\n\n* deprecated package ! use pynba instead", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/IsCoolEntertainment/pynba", "keywords": "pinba wsgi monitoring", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "iscool_e.pynba", "package_url": "https://pypi.org/project/iscool_e.pynba/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/iscool_e.pynba/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/IsCoolEntertainment/pynba" }, "release_url": "https://pypi.org/project/iscool_e.pynba/0.5.0/", "requires_dist": null, "requires_python": null, "summary": "lightweight timers and wsgi middleware to monitor performance in production systems", "version": "0.5.0" }, "last_serial": 1597625, "releases": { "0.1": [], "0.2": [], "0.2.3": [], "0.3": [], "0.3.1": [], "0.3.2": [], "0.3.3": [ { "comment_text": "", "digests": { "md5": "bb8eeabe25e919007b4af4f73e07803a", "sha256": "46718f4da0c123daff93950555d0708d4d02ae9b6d0ae8860bc493a6f3fd3c93" }, "downloads": -1, "filename": "iscool_e.pynba-0.3.3.tar.gz", "has_sig": false, "md5_digest": "bb8eeabe25e919007b4af4f73e07803a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 161360, "upload_time": "2013-09-16T09:37:39", "url": "https://files.pythonhosted.org/packages/43/82/7db6fb23904310364a23194375a3a234d3164f3385ec249a48e85bb23708/iscool_e.pynba-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "a8746d169627f585c979a27d4e88dc55", "sha256": "32232f259f0d6bb1ac1db859c012b3691a7b78e75fd9ecc6cdef17e9c09577e1" }, "downloads": -1, "filename": "iscool_e.pynba-0.3.4.tar.gz", "has_sig": false, "md5_digest": "a8746d169627f585c979a27d4e88dc55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 165861, "upload_time": "2013-10-15T16:44:02", "url": "https://files.pythonhosted.org/packages/24/0a/1c557f9872d408e57070a35ebc245f27f1de4537385e511927906027f5f1/iscool_e.pynba-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "cd60663610d2a0071a2ea8423c837e5b", "sha256": "2dc720aa31bd9f0050bc8c04cf555948b3562a005dabd04dd43722ba87cc4c1e" }, "downloads": -1, "filename": "iscool_e.pynba-0.3.5.tar.gz", "has_sig": false, "md5_digest": "cd60663610d2a0071a2ea8423c837e5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166239, "upload_time": "2013-10-29T15:52:09", "url": "https://files.pythonhosted.org/packages/26/08/2a776d1570df03d0d78c150a72ca26824b7a4f90c993324291fad058430b/iscool_e.pynba-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "3b41ef9dfd765cdf64e4924008f7a3d3", "sha256": "555f3820b30c9316d76e5e2d92669ed6371f1372305b64b2383ff694c08546f2" }, "downloads": -1, "filename": "iscool_e.pynba-0.3.6.tar.gz", "has_sig": false, "md5_digest": "3b41ef9dfd765cdf64e4924008f7a3d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187803, "upload_time": "2014-06-04T16:19:17", "url": "https://files.pythonhosted.org/packages/e1/bc/213def3609cea461b3af264638bb481380fe88a8ed1adc1e7d99e683e8f2/iscool_e.pynba-0.3.6.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "97cb2ecde8d2ddb6e916c40405216e9f", "sha256": "1f2b8d8bb14baffd6003a9eb739ff37e867fbe5fca3deb6316f0dc2eca33e083" }, "downloads": -1, "filename": "iscool_e.pynba-0.4.0.tar.gz", "has_sig": false, "md5_digest": "97cb2ecde8d2ddb6e916c40405216e9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189580, "upload_time": "2014-06-06T01:40:54", "url": "https://files.pythonhosted.org/packages/72/35/7fa33d6794ac609da97e20f4df9dbe2938f94639a517fe95601c2dc650bb/iscool_e.pynba-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "48a6d3aafa14bf5952dc6fe7804ceecc", "sha256": "c7fb714974727bd6421bdd0e95fb7083e7283e1a96c130810fa5597c5651cb10" }, "downloads": -1, "filename": "iscool_e.pynba-0.4.1.tar.gz", "has_sig": false, "md5_digest": "48a6d3aafa14bf5952dc6fe7804ceecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 192612, "upload_time": "2014-06-06T09:06:56", "url": "https://files.pythonhosted.org/packages/13/55/aa0375f1c36cc5f85e39308320bdd65546652d87934e7d380e2df8398023/iscool_e.pynba-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "58ce3cbbd180f3c9a8c6f0a552741996", "sha256": "dcc23268ff91c27db7b354e05843fd3023af532d89607d0fe3dd4dbd7c337c29" }, "downloads": -1, "filename": "iscool_e.pynba-0.4.2.tar.gz", "has_sig": false, "md5_digest": "58ce3cbbd180f3c9a8c6f0a552741996", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 192533, "upload_time": "2014-07-10T12:40:53", "url": "https://files.pythonhosted.org/packages/14/9b/3be79b843eb2be30aa7798ada0d818fd594fc55fd1f870164051753bdf4d/iscool_e.pynba-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "0a0bdefe5dbd5b52c0b7a906f5f89cdc", "sha256": "3ed32430d727da2bd7734d8b4d4eef863a63f744388d9d94403fbcd53d98c832" }, "downloads": -1, "filename": "iscool_e.pynba-0.4.3.tar.gz", "has_sig": false, "md5_digest": "0a0bdefe5dbd5b52c0b7a906f5f89cdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 192587, "upload_time": "2014-11-06T14:48:20", "url": "https://files.pythonhosted.org/packages/2a/ae/0760638a3c5538bf4dee91c91d9e8f63ebf64eba91af1f25d8a77844bda1/iscool_e.pynba-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "87a009703d2a56842ced962c72aa48cc", "sha256": "0375f76d4ae0202d28c3e50a093dcaa902b907fa94357031702cb0f306d253b7" }, "downloads": -1, "filename": "iscool_e.pynba-0.5.0.tar.gz", "has_sig": false, "md5_digest": "87a009703d2a56842ced962c72aa48cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7236, "upload_time": "2015-06-18T14:58:23", "url": "https://files.pythonhosted.org/packages/fe/cf/454eb10ce7410c8fc75d245879e91770ce63da94be1004ed433b4ed9af3c/iscool_e.pynba-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87a009703d2a56842ced962c72aa48cc", "sha256": "0375f76d4ae0202d28c3e50a093dcaa902b907fa94357031702cb0f306d253b7" }, "downloads": -1, "filename": "iscool_e.pynba-0.5.0.tar.gz", "has_sig": false, "md5_digest": "87a009703d2a56842ced962c72aa48cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7236, "upload_time": "2015-06-18T14:58:23", "url": "https://files.pythonhosted.org/packages/fe/cf/454eb10ce7410c8fc75d245879e91770ce63da94be1004ed433b4ed9af3c/iscool_e.pynba-0.5.0.tar.gz" } ] }