记录和绘制慢速的Pyramid和WSGI应用
项目描述
概述
slowlog 库帮助您找出为什么某些Web应用的请求耗时较长。它定期将长时间运行请求的堆栈跟踪输出到日志文件。它可以作为一个Pyramid中间件或作为一个WSGI组件工作。它受到了 Products.LongRequestLogger 的启发,后者为Zope 2提供了类似的功能。
此库还可以使用 perfmetrics 库将帧统计信息记录到Graphite,从而可以创建实时图形,揭示昂贵的代码路径。
此库使用 sys._current_frames() 来收集堆栈跟踪,因此它支持CPython版本2.6+和3.2+,但其他Python实现可能不适用。
安装
使用setuptools安装,例如(在虚拟环境中)
$ bin/easy_install slowlog
Pyramid配置
安装 slowlog 库后,使用 config.include 机制将 slowlog 添加到您的项目中。在您的Pyramid项目的 __init__.py
config = Configurator(...) config.include('slowlog')
或者,您可以在应用程序的 .ini 文件中添加以下行
pyramid.includes = slowlog
接下来,Pyramid需要在 slowlog 库生效之前设置一些配置。有两个中间件可用,分别是 slowlog 和 framestats。
slowlog 中间件
slowlog 中间件定期记录长时间运行请求的堆栈跟踪。要激活它,在Pyramid设置中将 slowlog = true。 slowlog 中间件支持以下设置。
- slowlog
设置为 true 以激活 slowlog 平滑过渡。默认:false。
- slowlog_timeout
仅记录持续时间至少为这个秒数(浮点数)的请求的堆栈跟踪。默认:2.0。
- slowlog_interval
一旦请求持续时间超过 slowlog_timeout,slowlog 平滑过渡将按给定秒数(浮点数)的间隔定期记录堆栈跟踪。默认:1.0。
- slowlog_file
将所有堆栈跟踪记录到指定的文件。当文件增长到10兆字节时,文件将自动轮换。如果此设置为空或不存在,堆栈跟踪将使用Python的标准的 logging 模块以 slowlog 的记录器名称进行记录。默认:none。
- slowlog_frames
限制堆栈跟踪中的帧数。如果设置为0,则不会记录堆栈跟踪。默认:100。
- slowlog_hide_post_vars
应擦除(隐藏)的POST变量,由空格分隔。对于避免意外存储明文密码非常有用。默认:password。
帧统计平滑过渡
framestats 平滑过渡定期增加长运行请求堆栈上所有帧的Statsd计数器。要激活它,在Pyramid设置中将 framestats = true。framestats 平滑过渡支持以下设置。
- framestats
设置为 true 以激活 framestats 平滑过渡。默认:false。
- statsd_uri
必需。一个常见的URI是 statsd://localhost:8125。有关支持的参数,请参阅 perfmetrics 库。
- framestats_timeout
仅更新Statsd,对于持续时间至少为这个秒数(浮点数)的请求。默认:2.0。
- framestats_interval
一旦请求持续时间超过 framestats_timeout,framestats 平滑过渡将按给定秒数(浮点数)的间隔定期更新Statsd。默认:1.0。
- framestats_frames
限制在堆栈跟踪中要跟的帧数。如果设置为1,Statsd将仅接收有关当前帧的信息。默认:100。
变更记录
0.9 (2012-09-22)
初始版本。
项目详情
slowlog-0.9.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4faae46b28ab5a133c0b9ad49e1dae5435d8e977e7fbab7195bc99556f71325a |
|
MD5 | 36f85f5279fc8fb9f436139ee581c928 |
|
BLAKE2b-256 | 66dafd7339236cf78322f97d4e94750bd9100655211f5bb86523e09cf639fdbc |