{ "info": { "author": "Tarek Ziade", "author_email": "tarek@ziade.org", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 3.3", "Framework :: Plone :: 4.0", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Programming Language :: Python", "Programming Language :: Python :: 2.4", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Monitoring" ], "description": "=================\nZopeHealthWatcher\n=================\n\nZopeHealthWatcher allows you to monitor the threads of a Zope application,\nwether it's a Zeo client, wether it's a plain Zope server.\n\nFor each thread running on your server, you will know if it's active or\nidling. When it's active, you will get an execution stack.\n\nIt's also useful to debug in case of a locked thread : you'll know\nwhere the problem is located.\n\nYou can monitor it through your browser or through a console script.\n\n`ZopeHealthWatcher` is based on `DeadlockDebugger` code,\nsee http://plone.org/products/deadlockdebugger.\n\nInstallation\n============\n\nIf you run `zc.buildout`, add the ``ZopeHealthWatcher`` product into\nyour buildout file. \n\nFor example ::\n\n [buildout]\n\n parts =\n zhw\n\n [zhw]\n recipe = zc.recipe.egg\n\n eggs = ZopeHealthWatcher\n scripts = zope_health_watcher\n\nYou can also install it using `pip` or `easy_install`.\n\nConfiguration\n=============\n\nOnce the package is installed, open the ``custom.py`` module located in\n`ZopeHealthWatcher` and change ``ACTIVATED`` and ``SECRET`` values, so\nthe tool is activated::\n\n ACTIVATED = True\n SECRET = 'MySuperPass'\n\nUsage\n=====\n\nThere are two ways to query the tool: with the `zope_health_watcher` script or\nthrough the browser.\n\nzope_health_watcher\n-------------------\n\n`zope_health_watcher` takes the root URL of the Zope server to run::\n\n $ zope_health_watcher http://localhost:8080\n Idle: 4 Busy: 1\n OK - Everything looks fine\n\nIt will return the number of idling and busy threads.\n\nIn case your server is on high load (e.g. 4 busy threads), the tool will\nreturn some relevant infos like the time, the sysload (only linux),\nthe memory information (only linux) and for each busy thread, the current\nstack of execution, the query, the url and the user agent::\n\n $ zope_health_watcher http://localhost:8080\n Information:\n Time 2009-05-18T18:23:34.415319\n Sysload\n Meminfo\n\n Dump:\n Thread -1339518976\n QUERY: GET /test?\n URL: http://localhost:8080/test\n HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10\n File \"/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py\", line 25, in __init__\n response=b)\n ...\n roles = getRoles(container, name, value, _noroles)\n\n Thread -1340051456\n QUERY: GET /test?\n URL: http://localhost:8080/test\n HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10\n File \"/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py\", line 25, in __init__\n response=b)\n ...\n roles = getRoles(container, name, value, _noroles)\n\n Thread -1341648896\n not busy\n\n Thread -1341116416\n QUERY: GET /test?\n URL: http://localhost:8080/test\n HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10\n File \"/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py\", line 25, in __init__\n response=b)\n ...\n roles = getRoles(container, name, value, _noroles)\n\n Thread -1340583936\n QUERY: GET /test?\n URL: http://localhost:8080/test\n HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10\n File \"/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py\", line 25, in __init__\n response=b)\n ...\n roles = getRoles(container, name, value, _noroles)\n\n Idle: 1 Busy: 4\n WARNING - Warning, high load\n\nIf the server is down or unreachable, the script will return a failure::\n\n $ bin/zope_health_watcher http://localhost:8080\n Idle: 0 Busy: 0\n FAILURE - [Errno socket error] (61, 'Connection refused')\n\n`zope_watcher` is also returning the right exit codes, so it can\nbe used by third party programs like Nagios:\n\n- OK = 0\n- WARNING = 1\n- FAILURE = 2\n- CRITICAL =3\n\nweb access\n----------\n\nAn HTML version is accessible through the web, using the url\n`http://host:port/manage_zhw?secret`. This url has to be changed depending\non the values entered in `custom.py`.\n\nBeware that this URL is not password protected.\n\n .. image:: http://bitbucket.org/tarek/zopewatcher/raw/ca8cb8e237eb/ZHW.png", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/Products.ZopeHealthWatcher", "keywords": "Plone Zope monitoring", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "ZopeHealthWatcher", "package_url": "https://pypi.org/project/ZopeHealthWatcher/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ZopeHealthWatcher/", "project_urls": { "Homepage": "https://github.com/collective/Products.ZopeHealthWatcher" }, "release_url": "https://pypi.org/project/ZopeHealthWatcher/0.9.0/", "requires_dist": null, "requires_python": "", "summary": "ZopeHealthWatcher allows you to monitor and debug the threads of a Zope application.", "version": "0.9.0" }, "last_serial": 1886247, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "db378d63aab3429d3ec0766981ec9fda", "sha256": "a631e5d62ebb2ac27d16b5a344014c230c16fd1838a02bf9f86474de5d1a7e59" }, "downloads": -1, "filename": "ZopeHealthWatcher-0.1.tar.gz", "has_sig": false, "md5_digest": "db378d63aab3429d3ec0766981ec9fda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6973, "upload_time": "2009-05-18T18:53:16", "url": "https://files.pythonhosted.org/packages/42/c2/da73dba1e6873d94599e4bc456683c8d89ef2da2b7d646e8eef4e8d0dfa6/ZopeHealthWatcher-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "35d49f9a61599153e0a2d81385bff57a", "sha256": "db13260c5c37ec212fdaba0d2148f5e02eceab54697c34cccd9be762172ae38f" }, "downloads": -1, "filename": "ZopeHealthWatcher-0.2.tar.gz", "has_sig": false, "md5_digest": "35d49f9a61599153e0a2d81385bff57a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17590, "upload_time": "2009-05-21T11:29:14", "url": "https://files.pythonhosted.org/packages/5f/1f/0f47be01b69daaa47aa19e36a554421106bb42263eaf5d8e2665b8aab80f/ZopeHealthWatcher-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "e3ab1a3f1ce2c2c61a7dc74f89669823", "sha256": "d504da8abcbbeae12ecd057c1771e3adcc6ee2e34ab278f5162a60ec31cc7dca" }, "downloads": -1, "filename": "ZopeHealthWatcher-0.3.tar.gz", "has_sig": false, "md5_digest": "e3ab1a3f1ce2c2c61a7dc74f89669823", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17778, "upload_time": "2009-05-27T14:44:03", "url": "https://files.pythonhosted.org/packages/4e/61/a47bda9a104b7f41f81fa7db35e83c905cb05cc3f9cc9832d12fea44f908/ZopeHealthWatcher-0.3.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "00fb77b8ec9f291c43c3ec5c5c961e2a", "sha256": "24e750fe618210748752ddf143a2b1311cf2cbf8d227cc7762ebb8a364a07e85" }, "downloads": -1, "filename": "ZopeHealthWatcher-0.9.0.tar.gz", "has_sig": false, "md5_digest": "00fb77b8ec9f291c43c3ec5c5c961e2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 168576, "upload_time": "2016-01-03T12:33:21", "url": "https://files.pythonhosted.org/packages/5f/bc/f7e5d51a3cadf3655b1b5df83706a576b83b00f0d2d1d3839e6efe81db17/ZopeHealthWatcher-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "00fb77b8ec9f291c43c3ec5c5c961e2a", "sha256": "24e750fe618210748752ddf143a2b1311cf2cbf8d227cc7762ebb8a364a07e85" }, "downloads": -1, "filename": "ZopeHealthWatcher-0.9.0.tar.gz", "has_sig": false, "md5_digest": "00fb77b8ec9f291c43c3ec5c5c961e2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 168576, "upload_time": "2016-01-03T12:33:21", "url": "https://files.pythonhosted.org/packages/5f/bc/f7e5d51a3cadf3655b1b5df83706a576b83b00f0d2d1d3839e6efe81db17/ZopeHealthWatcher-0.9.0.tar.gz" } ] }