Django的性能追踪中间件
项目描述
django-cavalry
性能追踪器!
设置
- 将
'cavalry.middleware.cavalry'
添加到您的中间件。 - 将
CAVALRY_ENABLED = bool(DEBUG)
(或类似~) 添加到您的设置。
设置 – 通用
CAVALRY_ENABLED
(布尔值,默认False)
中间件的开关。
这可以在运行时切换。也就是说,它不会通过 MiddlewareNotUsed
机制永久禁用中间件。
CAVALRY_PROBABILITY
(浮点数,默认1)
请求被追踪的概率(0..1);在生产环境中很有用。
CAVALRY_DB_RECORD_STACKS
(布尔值,默认True)
是否记录数据库堆栈跟踪。记录堆栈跟踪自然会有性能影响。
设置 – 发布
必须可用的 requests
库才能使发布工作。
您可以通过手动安装或使用安装Cavalry时的 [poster]
额外功能来安装它。
CAVALRY_ELASTICSEARCH_URL_TEMPLATE
(字符串)
一个用于向Elasticsearch发送有效负载的URL模板。使用Python语法进行插值{curly-braced}
段。有效负载中的所有字段都可用,加上{ymd}
是当前时间的YYYY-MM-DD
。如果为假,则不尝试向Elasticsearch发送帖子。
一个有用的默认模板可能是'http://localhost:9200/my-app-{ymd}/item'
。这很容易被Kibana接收。
CAVALRY_THREADED_POST
(布尔值,默认False)
是否在另一个线程中执行帖子操作。
启用此选项将产生积极的性能影响,因为在格式化和提交数据到Elasticsearch数据时,不会占用请求处理。
然而,如果工作进程在帖子完成之前死亡,则跟踪会丢失。
另外,如果你正在使用uWSGI,请确保已设置enable-threads
。
CAVALRY_POST_STACKS
(布尔值,默认True)
是否发布堆栈跟踪。
不发布堆栈跟踪会使ES有效负载更小。
运行时
当
- 在
DEBUG
模式下运行时,或者 - 当你是一个超级用户时,或者
- 如果
request._cavalry_can_inject_stats
为真(例如,通过你自己设计的中间件)- 请注意,这可能会,特别是与
_cavalry_stacks
结合使用时,揭示敏感信息。请非常注意该中间件。
- 请注意,这可能会,特别是与
Cavalry在每个渲染的HTML页面中注入一个小型性能栏,以及一个输出SQL查询到开发控制台的脚本段。
默认情况下,不打印SQL查询的堆栈跟踪;添加_cavalry_stacks
查询参数以打印它们。
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。