使用zope 2启用zc.monitor

five.z2monitor的Python项目详细描述


Introduction

这个包允许从命令行监视zope 2实例。它在zope 2中插入zc.monitor(http://pypi.python.org/pypi/zc.monitor)和zc.z3 monitor(http://pypi.python.org/pypi/zc.z3monitor)。 monitor使用zc.ngi服务器并定义另一个线程来处理监视。这样,即使 HTTPServer正在挂起

Zope config

将此添加到您的zope.conf中,以便在端口8888上的环回接口上启用zc.ngi服务器:

<product-config five.z2monitor>
    bind 127.0.0.1:8888
</product-config>

Probes

此软件包已使用来自不同软件包的探针进行了测试:

  • zc.z3monitor
  • Products.ZNagios
  • zc.monitorcache
  • zc.monitorlogstats
  • ztfy.monitor

要注册自己的探测,只需定义一个提供zc.z3monitor.interfaces.IZ3MonitorPlugin接口的新实用程序像这样:

<utility
   component=".zc_uptime"
   provides="zc.z3monitor.interfaces.IZ3MonitorPlugin"
   name="uptime" />

组件应该如下所示:

def zc_uptime(connection, database='main'):
    """uptime of the zope instance in seconds"""
    app = App()
    elapsed = time.time() - app.Control_Panel.process_start
    print >> connection, elapsed
    app._p_jar.close()

zodb连接始终是第一个参数。之后可以添加自己的参数

一旦启动实例,您将看到如下内容:

INFO zc.ngi.async.server listening on ('127.0.0.1', 8888)

ngi服务器已启动,您可以使用netcat查找值,例如:

echo 'uptime' | nc -i 1 localhost 8888

plone.recipe.zope2instance

如果使用buildout和plone.recipe.zope2instance recipe(http://pypi.python.org/pypi/plone.recipe.zope2instance)配置zope实例。 要定义zc.z2monitor主机和端口,请使用zope-conf-additional选项,如下所示:

[client1]
recipe = plone.recipe.zope2instance
http-address = 8080
user = admin:admin
eggs =
  ${buildout:eggs}
zcml =
  ${buildout:zcml}
zope-conf-additional =
  <product-config five.z2monitor>
    bind 127.0.0.1:8888
  </product-config>

实例运行后,您将能够从 命令行使用:

bin/instance monitor dbinfo main

相当于:

echo 'dbinfo main' | nc -i 1 <zc.monitor host> <zc.monitor port>

要了解已注册的探测器,请使用以下命令:

bin/instance monitor help

Changelog

0.2 (2012-11-05)

  • 添加plone.recipe.zope2instance的入口点
  • 更多文档

0.1 (2012-11-05)

  • 初始实现

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

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储