跳转到主要内容

记录和绘制慢速的Pyramid和WSGI应用

项目描述

概述

slowlog 库帮助您找出为什么某些Web应用的请求耗时较长。它定期将长时间运行请求的堆栈跟踪输出到日志文件。它可以作为一个Pyramid中间件或作为一个WSGI组件工作。它受到了 Products.LongRequestLogger 的启发,后者为Zope 2提供了类似的功能。

此库还可以使用 perfmetrics 库将帧统计信息记录到Graphite,从而可以创建实时图形,揭示昂贵的代码路径。

此库使用 sys._current_frames() 来收集堆栈跟踪,因此它支持CPython版本2.6+和3.2+,但其他Python实现可能不适用。

TravisBadge

安装

使用setuptools安装,例如(在虚拟环境中)

$ bin/easy_install slowlog

Pyramid配置

安装 slowlog 库后,使用 config.include 机制将 slowlog 添加到您的项目中。在您的Pyramid项目的 __init__.py

config = Configurator(...)
config.include('slowlog')

或者,您可以在应用程序的 .ini 文件中添加以下行

pyramid.includes = slowlog

接下来,Pyramid需要在 slowlog 库生效之前设置一些配置。有两个中间件可用,分别是 slowlogframestats

slowlog 中间件

slowlog 中间件定期记录长时间运行请求的堆栈跟踪。要激活它,在Pyramid设置中将 slowlog = trueslowlog 中间件支持以下设置。

slowlog

设置为 true 以激活 slowlog 平滑过渡。默认:false。

slowlog_timeout

仅记录持续时间至少为这个秒数(浮点数)的请求的堆栈跟踪。默认:2.0。

slowlog_interval

一旦请求持续时间超过 slowlog_timeoutslowlog 平滑过渡将按给定秒数(浮点数)的间隔定期记录堆栈跟踪。默认:1.0。

slowlog_file

将所有堆栈跟踪记录到指定的文件。当文件增长到10兆字节时,文件将自动轮换。如果此设置为空或不存在,堆栈跟踪将使用Python的标准的 logging 模块以 slowlog 的记录器名称进行记录。默认:none。

slowlog_frames

限制堆栈跟踪中的帧数。如果设置为0,则不会记录堆栈跟踪。默认:100。

slowlog_hide_post_vars

应擦除(隐藏)的POST变量,由空格分隔。对于避免意外存储明文密码非常有用。默认:password

帧统计平滑过渡

framestats 平滑过渡定期增加长运行请求堆栈上所有帧的Statsd计数器。要激活它,在Pyramid设置中将 framestats = trueframestats 平滑过渡支持以下设置。

framestats

设置为 true 以激活 framestats 平滑过渡。默认:false。

statsd_uri

必需。一个常见的URI是 statsd://localhost:8125。有关支持的参数,请参阅 perfmetrics 库。

framestats_timeout

仅更新Statsd,对于持续时间至少为这个秒数(浮点数)的请求。默认:2.0。

framestats_interval

一旦请求持续时间超过 framestats_timeoutframestats 平滑过渡将按给定秒数(浮点数)的间隔定期更新Statsd。默认:1.0。

framestats_frames

限制在堆栈跟踪中要跟的帧数。如果设置为1,Statsd将仅接收有关当前帧的信息。默认:100。

变更记录

0.9 (2012-09-22)

  • 初始版本。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

slowlog-0.9.tar.gz (14.6 kB 查看哈希)

上传时间

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面