使用haufe.requestmonitoring条目分析Zope实例日志
项目描述
简介
本项目为您的系统添加了一个新的实用命令:zope_lrr_analyzer。此实用工具仅与安装了haufe.requestmonitoring(并且启用了监控长时间运行请求的钩子)的Zope实例日志配合使用。
因此,您的instance.log必须包含如下条目
------ 2012-03-27T15:58:19 WARNING RequestMonitor.DumpTrace Long running request Request 28060 "/VirtualHostBase/http/www.mysite.com:80/mysiteid/VirtualHostRoot/myrequest/..." running in thread 1133545792 since 10.7206499577s Python call stack (innermost first) ... lot of lines, depends on Python traceback ... Module ZPublisherEventsBackport.patch, line 80, in publish Module ZPublisher.Publish, line 202, in publish_module_standard Module ZPublisher.Publish, line 401, in publish_module Module ZServer.PubCore.ZServerPublisher, line 25, in __init__ <BLANKLINE>
该实用工具将帮助您解析长时间运行请求并收集一些统计数据。
如何使用
用法:zope_lrr_analyzer [选项] 日志文件 [日志文件…]
使用haufe.requestmonitoring条目分析Zope实例日志
- 选项
- --version
显示程序版本号并退出
- -h,--help
显示此帮助信息并退出
- -s START_FROM,--start=START_FROM
从给定日期/时间开始分析(格式如“YYYY-MM-DD HH:MM:SS”)
- -e END_AT,--end=END_AT
在给定日期/时间停止分析(格式如“YYYY-MM-DD HH:MM:SS”)
- -l LOG_SIZE,--log-size=LOG_SIZE
仅保留一定数量的慢速请求。默认无限制。
- -i INCLUDE_REGEX,--include=INCLUDE_REGEX
一个正则表达式,调用路径必须匹配或将被丢弃。可多次调用,扩大集合
- -t TRACEBACK_INCLUDE_REGEX,--traceback-include=TRACEBACK_INCLUDE_REGEX
一个正则表达式,Python跟踪信息必须匹配或将被丢弃。可多次调用,扩大集合
- -r,--keep-request-id
使用请求和线程ID将每个匹配项作为不同的条目处理
结果
让我们解释一下结果
Stats from 2012-11-14 00:02:07 to 2012-11-15 09:55:41 (347 LRR catched) ... ---- 2 /VirtualHostBase/http/yoursite.com:80/siteid/VirtualHostRoot/foo/bar 25 - 3654.05561542 (1:00:54.055615) - from 2012-11-15 07:48:10 to 2012-11-15 08:45:29 ---- 1 /VirtualHostBase/http/yoursite.com:80/siteid/VirtualHostRoot/baz 77 - 16029.3731236 (4:27:09.373124) - from 2012-11-15 07:43:55 to 2012-11-15 08:45:30
您将获得慢速请求路径的排名(最快的是排名第一,最慢的是排名最后)。顺序是通过收集到同一路径的所有请求并获取总时间来完成的。
这意味着一个只调用一次且需要30秒的请求比另一个只调用10次且只需要10秒的路径要快(30x1 < 10x10)。
如果您还使用了--keep-request-id选项,每个请求都被视为一个单独的条目,因此输出略有变化
Stats from 2012-04-27 00:02:07 to 2012-04-27 16:55:41 (347 LRR catched) ... ---- 2 /VirtualHostBase/http/yoursite.com:80/siteid/VirtualHostRoot/foo/bar 1510.2860291 (0:25:10.286029) - from 2012-09-19 08:36:27 to 2012-09-19 09:01:22 ---- 1 /VirtualHostBase/http/yoursite.com:80/siteid/VirtualHostRoot/baz 1750.49365091 (0:29:10.493651) - from 2012-09-19 08:30:34 to 2012-09-19 09:00:58
单条记录含义
每个条目都会提供这类数据
Entry position Called path | | 1 /VirtualHostBase/http/yoursite.com:80/siteid/VirtualHostRoot/... 15 - 171.913325071 (0:02:51.913325) - from 2012-09-19 08:30:34 to 2012-09-19 09:00:58 | | | | | Times called | Time needed (human readable) | | | | Slow request end date Time needed (in seconds) Slow request start date
当使用--keep-request-id时
Entry position Called path | | 1 /VirtualHostBase/http/yoursite.com:80/siteid/VirtualHostRoot/... 1750.49365091 (0:29:10.493651) - from 2012-09-19 08:30:34 to 2012-09-19 09:00:58 | | | | Time needed (in seconds) | Slow request start date | | | Time needed (human readable) Slow request end date
请注意,“所需时间”信息是机器计算时间。
变更日志
0.5 (2016-06-13)
显示捕获的LRR总计数信息
现在可以使用-s和-e作为日期字符串(不需要时间)
0.4 (2012-12-06)
添加了--traceback-include选项
0.3 (2012-11-15)
始终显示请求的开始和结束日期(不仅当-r选项给出时)
0.2 (2012-09-19)
添加了--keep-request-id选项
还存储(如果给出-r选项则显示)开始和结束请求时间
0.1 (2012-04-27)
首次发布