Django应用程序,用于收集运行中的服务器进程信息。
项目描述
一个可重复使用的Django应用程序,用于收集运行中的服务器进程信息。我们尽量减少额外的开销:django-processinfo大多数时间只创建一个数据库查询来更新数据。
django-processinfo将捕获的最重要数据
进程统计
进程PID、启动时间、生命周期
平均/最大存活进程数
最小/平均/最大响应时间
总请求/异常计数
内存统计
最小/平均/最大内存使用(VmRSS、VmPeak)
系统信息
系统内存使用
交换使用
负载平均值
django-processinfo按SITE_ID拆分一些数据,因此您可以查看例如哪个站点使用最多。
它不是什么
跟踪用户行为
收集例如在apache.log中找到的信息
它不是一个源代码分析器(阅读https://code.djangoproject.com/wiki/ProfilingDjango)
更多信息:https://www.python-forum.de/viewtopic.php?f=6&t=27168(德语)
限制
此功能仅在存在/proc/$$/status
的情况下有效。因此,目前仅适用于类似于Unix/Linux的平台。
待办事项
添加单元测试
屏幕截图
这里有一些屏幕截图(从v0.2 - 2011年8月19日),显示其外观
安装
例如安装它
pip install django-processinfo
添加设置(见下文)
创建表(运行syncdb)
设置
将以下内容添加到您的settings.py中
import os import django_processinfo INSTALLED_APPS = ( ... 'django_processinfo', ... ) MIDDLEWARE = ( 'django_processinfo.middlewares.ProcessInfoMiddleware', ... ) # Put templates above admin contrib, e.g.: TEMPLATE_DIRS = ( ... os.path.join(os.path.abspath(os.path.dirname(django_processinfo.__file__)), "templates/"), ... ) # include app settings from ./django_processinfo/app_settings.py from django_processinfo import app_settings as PROCESSINFO # Change settings like this: PROCESSINFO.ADD_INFO = True
ProcessInfoMiddleware
ProcessInfoMiddleware实际上可以插入任何位置。但是,应该放在较高的位置。这样,就可以捕获所有内容。
为了提高性能,您可以将ProcessInfoMiddleware放在LocalSyncCacheMiddleware之后。但是,这样就会缺少每次缓存命中时的统计值!
应用程序设置
您可以在./django_processinfo/app_settings.py中找到可用的django-processinfo设置
开发者信息
例如:
~$ git clone https://github.com/jedie/django-processinfo.git ~$ cd django-processinfo ~/django-processinfo$ make help List all commands install-poetry install or update poetry install install PyInventory via poetry update update the sources and installation lint Run code formatters and linter fix-code-style Fix code formatting tox-listenvs List all tox test environments tox Run pytest via tox with all environments tox-py36 Run pytest via tox with *python v3.6* tox-py37 Run pytest via tox with *python v3.7* tox-py38 Run pytest via tox with *python v3.8* pytest Run pytest update-rst-readme update README.rst from README.creole publish Release new version to PyPi run-dev-server Run the django dev server in endless loop.
运行测试项目
存在一个可以通过Django开发服务器和SQLite数据库轻松本地运行的测试项目。要运行此项目,请执行以下操作
~/django-processinfo$ make run-dev-server
您还必须设置一个测试用户,名称为
~/django-processinfo$ ./manage.sh createsuperuser
Django兼容性
版本 |
Python |
Django |
---|---|---|
>=v1.1.0 |
3.7,3.8,3.9,3.10 |
3.2,4.0,4.1 |
v0.9.0 |
python 3 |
django v2.2 LTS |
v0.8.0 |
python 3 |
django v1.11 LTS |
v0.7.0 |
python 2 |
django v1.5 |
v0.6.1 |
python 2 |
django v1.4 |
历史记录
dev - compare v1.1.0…master
TBC
-
针对Django 3.2、4.0和4.1以及Python 3.7、3.8、3.9和3.10进行测试
现代化项目设置
v1.0.2 - 09.12.2020 - compare v1.0.1…v1.0.2
修复了“DataError: smallint out of range”错误,该错误出现在较大的PID数字上
v1.0.1 - 2.11.2020 - compare v1.0.0…v1.0.1
修复了注入的页脚
修复/清理更改列表
修复测试项目 manage.sh
清理测试项目
v1.0.0 - 1.11.2020 - compare v0.9.0…v1.0.0
使用poetry现代化项目设置
添加测试项目
添加测试
升级代码样式
v0.9.0 - 26.02.2020 - compare v0.8.0…v0.9.0
针对Django 2.2的更新
v0.8.0 - 09.03.2018 - compare v0.7.1…v0.8.0
针对Python v3和Django 1.11的更新
v0.7.1 - 20.08.2015 - compare v0.6.3…v0.7.1
针对django 1.5的支持的更改
将setup install_requires更改为Django v1.3.x - v1.5.x
修复模板中的错误:遗漏了i18n
v0.6.3 - 24.08.2012
从版本中删除自动提交日期
v0.6.2
自动清理ProcessInfo表以防止过载。
如果response.status_code不是200,则不要插入django-processinfo的“时间消耗”信息
v0.6.1
还与django v1.4进行了测试
将setup install_requires更改为Django v1.3.x - v1.4.x
v0.6.0
在对象工具中添加“重置所有数据”
使“删除无效PID”和“重置所有数据”在两个管理页面上都可用。
v0.5.2
v0.5.1
将“删除无效PID”作为“进程统计”对象工具中的管理视图添加(顶部、右侧、灰色链接)
v0.5.0
模型更改:请重新创建表,例如:./manage.py reset django_processinfo
新增:显示一些静态系统信息(uname、域名、IP地址、Python版本、sys.prefix)
新增:当前存活进程(按站点划分)
显示用户/系统模式时间的总和
v0.4.1
修复了设置中的UnicodeEncodeError错误:使用新解决方案,请参阅:https://code.google.com/p/python-creole/wiki/UseInSetup
v0.4
修复了“创建的总进程数”错误
显示“进程生命周期”
v0.3.0
显示从/proc/meminfo和“平均负载”中获取的一些系统信息
许多错误修复
v0.2.0
许多更改!重新创建表,例如:./manage.py reset django_processinfo
v0.1.0
第一个版本
捐赠
链接
GitHub |
|
PyPi |
联系方式
加入讨论,除了GitHub通信功能外
论坛 |
|
IRC |
#pylucid on freenode.net(是的,PyLucid频道…) |
网络聊天 |
注意:此文件由README.creole 2022-08-16 18:56:10使用"python-creole"生成
项目详情
django-processinfo-1.1.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e5d883c2bd4d3a197357bb381a4c19165b5c9ff9a852f96b0dd1ccfd98e2e4a2 |
|
MD5 | 454967a3b9265f484aeedef3438060c0 |
|
BLAKE2b-256 | fa5300c837e3e470d10d78077eb52ac7d5dbf203b97dbf6133461da6d8e69391 |
django-processinfo-1.1.0-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c7d1fe2203655925294c860878509fe2a6eb1a5390a170c848023e4619b903da |
|
MD5 | 69a991bb94c292d18273cc4b1bc12fa1 |
|
BLAKE2b-256 | 7a69a0b33c6001ad848bf63f0287762fee377a630c73798d10be63f1c99fd58e |