Zope 2 请求监控
项目描述
目录
介绍
haufe.requestmonitoring在 Zope 2.12 中引入的发布事件之上实现了详细的请求日志记录功能。
要求
Zope 2.12.0b2 或更高版本
目前在 Zope 2.13.21 上测试
您可以将它与较旧的 Zope 版本 (2.10.x) 一起使用,但您还必须包括ZPublisherEventsBackport。
特征
精细分辨率请求记录
用作ztop和zanalysis的基础,即有助于确定 Zope 负载、检测长时间运行的请求并分析重新启动的原因。
此模块中的实现为IPubStart和 IPubSuccess/IPubFailure注册订阅者。对于这些事件中的每一个,都有以下形式的日志条目:
timestamp status request_time type request_id request_info
是写的。
字段
timestamp是格式为 %y%m%dT%H%M%S的当前时间。
对于IPubStart事件,status为0 ,对于将重试的请求为390 ,否则将IStatus的结果应用于响应。
对于IPubStart事件, request_time为0 。否则,将以秒为单位的请求时间。
对于IPubStart,类型为+ ,否则为-。
request_id是(进程)唯一的请求 ID。
request_info是应用于请求的IInfo 。
此外,当激活此日志记录时,会写入一个request_info == restarted的日志条目。除了request_info和timestamp所有其他字段都是0。它表明(显然)服务器已重新启动。以下请求获取以1开头的请求 ID 。
要激活此日志记录,必须同时激活timelogging.zcml (默认情况下启用),并且必须定义名称为timelogging的product-config部分,其中包含密钥filebase。它指定日志文件的基本名称;.<date>将附加到此基础。然后,必须定义ITicket、 IInfo适配器(例如来自info的适配器)。可以为响应定义一个 IStatus适配器。
例子:
<product-config timelogging> filebase /path/to/request-logs/instance-foo </product-config>
成功请求记录
此日志记录写入两个文件<base>_good.<date>和<base>_bad.<date>。对于每个请求,根据请求是成功还是不成功,将一个字符写入好的或坏的日志文件。这意味着,只有文件大小对这些日志文件很重要。
通常,响应代码 >= 500 被认为是不成功的请求。当您需要不同的分类时,您可以注册一个ISuccessFull适配器。
要激活此日志记录,必须同时激活successlogging.zcml (默认情况下),并且必须定义名称为successlogging的product-config部分,其中包含密钥filebase。它指定日志文件的基本名称(表示为上面的<base>)。
例子:
<product-config successlogging> filebase /path/to/request-logs/successful-foo </product-config>
监控长时间运行的请求
haufe.requestmonitoring允许您监控长时间运行的请求。zope.conf配置文件中的以下配置将安装 DumpTracer 并在经过一段时间后检查运行时间超过time的请求。
要激活此日志记录,必须同时激活monitor.zcml(默认关闭)并且 requestmonitor 配置部分必须存在:
zope-conf-additional = %import haufe.requestmonitoring <requestmonitor requestmonitor> # default is 1m period 10s # default is 1 verbosity 2 <monitorhandler dumper> factory haufe.requestmonitoring.DumpTraceback.factory # 0 --> no repetition repeat -1 time 10s </monitorhandler> </requestmonitor>
典型的转储跟踪如下所示(它向您显示 URL 和当前堆栈跟踪):
2009-08-11 14:29:09 INFO Zope Ready to handle requests 2009-08-11 14:29:09 INFO RequestMonitor started 2009-08-11 14:29:14 INFO RequestMonitor monitoring 1 requests 2009-08-11 14:29:19 INFO RequestMonitor monitoring 1 requests 2009-08-11 14:29:24 INFO RequestMonitor monitoring 1 requests 2009-08-11 14:29:24 WARNING RequestMonitor.DumpTrace Long running request Request 1 "/foo" running in thread -497947728 since 14.9961140156s Python call stack (innermost first) Module /home/junga/sandboxes/review/parts/instance/Extensions/foo.py, line 4, in foo Module Products.ExternalMethod.ExternalMethod, line 231, in __call__ - __traceback_info__: ((), {}, None) Module ZPublisher.Publish, line 46, in call_object Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 126, in publish Module ZPublisher.Publish, line 225, in publish_module_standard Module ZPublisher.Publish, line 424, in publish_module Module Products.ZopeProfiler.ZopeProfiler, line 353, in _profilePublishModule Module Products.ZopeProfiler.MonkeyPatcher, line 35, in __call__ Module ZServer.PubCore.ZServerPublisher, line 28, in __init__
日志行“ RequestMonitor 监控 X 请求”只是表示请求正在受到监控,有时您会在日志文件中得到无用的噪音。
您可以使用详细选项:将值设置为0以禁用日志行。每次监控一个或多个请求时,默认值 ( 1 ) 将显示日志行。值2更详细,还显示有关请求 URL 的信息。
在 pdb 上转储跟踪
如果您在源代码上放置 Python 调试行,然后您想在 Zope 上对其进行测试,那么 Traceback 转储很快就会变成一场噩梦。
在这种情况下,您可以在执行调试器时禁用回溯转储。只需添加 DISABLE_HAUFE_MONITORING_ON_PDB环境变量:
environment-vars = ... DISABLE_HAUFE_MONITORING_ON_PDB True
安装
将haufe.requestmonitoring添加到您的 buildout.cfg 文件的鸡蛋和zcml选项中。
执照
haufe.requestmonitoring在 Zope Public License V 2.1 (ZPL) 下发布。请参阅 LICENSE.txt。
变更日志
0.6.0 (2021-05-12)
支持 Zope 4 / Python 3。[tschorr]
0.5.1 (2018-04-03)
修复日志记录格式。参考:#9 [mamico]
0.5.0 (2016-09-29)
对于所有日志记录输出,使用 unicode 和字符串格式而不是字符串替换以避免可能的编码错误。参考:#5。[主题]
允许监视器处理程序定义它的 zLOG 日志级别。这使得为长时间运行的请求定义ERROR级别而不是WARNING成为可能,并在配置为通知ERROR级别日志时通过 Sentry 等工具获得通知。[主题]
删除 Logger.py,它是 DumpTraceback.py 中“长请求记录器”的更简单版本,既不使用也不记录。[主题]
将docs/HISTORY.txt移动到CHANGES.rst。[主题]
PEP8 兼容性
0.4.0 (2013-09-20)
添加了与旧版本 Zope 的复古兼容性,而无需手动修补 Zope。[贾科莫斯]
您现在可以添加DISABLE_HAUFE_MONITORING_ON_PDB envvar 以在 Python pdb上停止转储回溯。[库尔]
0.3.0 (2012-10-16)
不要在最近的 Python 版本上使用已弃用的线程框架依赖项。[库尔]
修复了 Zope 2.13 的 egg 依赖项。[库尔]
为记录器添加了详细配置选项。[库尔]
0.2.3 - (2009/08/11)
更新了文档。
0.2.2 - (2009/07/20)
小清理。
次要文档清理。
0.2.1 - (2009/05/28)
默认配置“成功记录”。
略微更新的文档。
0.2.0 - (2009/05/12)
初始发行。
项目详情
haufe.requestmonitoring -0.6.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d6f6cd1ebbe8ea0db6551a926942a4c046b60e4fe6f8dff57e5ce7abb6c309a |
|
MD5 | f2821334207d7f176be1dad662fb500e |
|
布莱克2-256 | 9fcdacc47b39cbd075d5c4f4eaa0950a6ced06a453238fd955a57e8d78ef96d0 |