zopehealthwatcher允许您监视和调试zope应用程序的线程。

ZopeHealthWatcher的Python项目详细描述


zopehealthwatcher允许您监视zope应用程序的线程, 不管它是一个zeo客户端,还是一个普通的zope服务器。

对于服务器上运行的每个线程,您将知道它是活动的还是 空转。当它处于活动状态时,您将得到一个执行堆栈。

在线程被锁定的情况下进行调试也很有用:您将知道 问题所在的位置。

您可以通过浏览器或控制台脚本监视它。

zopehealthwatcher基于死锁调试器代码, 见http://plone.org/products/deadlockdebugger

安装

如果运行zc.buildout,请将ZopeHealthWatcher产品添加到 你的构建文件。

例如

[buildout]

parts =
    zhw

[zhw]
recipe = zc.recipe.egg

eggs = ZopeHealthWatcher
scripts = zope_health_watcher

您也可以使用pipeasy_install安装它。

配置

安装包后,打开位于 zopehealthwatcher并更改ACTIVATEDSECRET值,因此 工具已激活:

ACTIVATED = True
SECRET = 'MySuperPass'

用法

有两种查询工具的方法:使用zope_health_watcher脚本或 通过浏览器。

Zope_健康观察者

zope_health_watcher获取要运行的zope服务器的根url:

$ zope_health_watcher http://localhost:8080
Idle: 4 Busy: 1
OK - Everything looks fine

它将返回空闲和繁忙线程的数量。

如果您的服务器负载很高(例如4个繁忙的线程),该工具将 返回一些相关信息,如时间、系统负载(仅限Linux)。 内存信息(仅限Linux)和每个繁忙线程的当前 执行堆栈、查询、url和用户代理:

$ zope_health_watcher http://localhost:8080
Information:
        Time 2009-05-18T18:23:34.415319
        Sysload
        Meminfo

Dump:
Thread -1339518976
QUERY: GET /test?
URL: http://localhost:8080/test
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
File "/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py", line 25, in __init__
    response=b)
    ...
    roles = getRoles(container, name, value, _noroles)

Thread -1340051456
QUERY: GET /test?
URL: http://localhost:8080/test
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
File "/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py", line 25, in __init__
    response=b)
    ...
    roles = getRoles(container, name, value, _noroles)

Thread -1341648896
not busy

Thread -1341116416
QUERY: GET /test?
URL: http://localhost:8080/test
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
File "/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py", line 25, in __init__
    response=b)
    ...
    roles = getRoles(container, name, value, _noroles)

Thread -1340583936
QUERY: GET /test?
URL: http://localhost:8080/test
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
File "/Volumes/MacDev/bitbucket.org/zopewatcher/parts/zope2/lib/python/ZServer/PubCore/ZServerPublisher.py", line 25, in __init__
    response=b)
    ...
    roles = getRoles(container, name, value, _noroles)

Idle: 1 Busy: 4
WARNING - Warning, high load

如果服务器关闭或无法访问,脚本将返回失败:

$ bin/zope_health_watcher http://localhost:8080
Idle: 0 Busy: 0
FAILURE - [Errno socket error] (61, 'Connection refused')
<> > ZopeWAVECHER 也在返回正确的退出代码,所以它可以 供Nagios等第三方程序使用:

  • 确定=0
  • 警告=1
  • 故障=2
  • 临界值=3

网络访问

使用url,可以通过web访问html版本 http://host:port/manage-zhw?秘密。此URL必须根据 在custom.py中输入的值。

请注意,此url不受密码保护。

http://bitbucket.org/tarek/zopewatcher/raw/ca8cb8e237eb/ZHW.png

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用于批量操作的java RESTful API分块响应   java读取在线存储的文本文件   在Java ME中将双精度舍入到小数点后5位   java查找一个数字的最接近因子   java更改JMenuBar的字体   java Kmeans聚类算法运行时间和复杂性   java是否可以阻止try catch返回null   java内容解析器指向具有正确URI的错误表   java Android Kotlin插装测试未被识别为插装测试   java TestNG@Dataprovider   在forloop和print语句中声明变量时发生java错误   java在Android Studio 3中设置JNI