跳转到主要内容

Django应用程序,用于收集运行中的服务器进程信息。

项目描述

一个可重复使用的Django应用程序,用于收集运行中的服务器进程信息。我们尽量减少额外的开销:django-processinfo大多数时间只创建一个数据库查询来更新数据。

django-processinfo将捕获的最重要数据

  • 进程统计

    • 进程PID、启动时间、生命周期

    • 平均/最大存活进程数

    • 最小/平均/最大响应时间

    • 总请求/异常计数

  • 内存统计

    • 最小/平均/最大内存使用(VmRSS、VmPeak)

  • 系统信息

    • 系统内存使用

    • 交换使用

    • 负载平均值

django-processinfo按SITE_ID拆分一些数据,因此您可以查看例如哪个站点使用最多。

它不是什么

更多信息:https://www.python-forum.de/viewtopic.php?f=6&t=27168(德语)

限制

此功能仅在存在/proc/$$/status的情况下有效。因此,目前仅适用于类似于Unix/Linux的平台。

待办事项

添加单元测试

屏幕截图

这里有一些屏幕截图(从v0.2 - 2011年8月19日),显示其外观


Screenshot 1


Screenshot 2

安装

  1. 例如安装它

pip install django-processinfo
  1. 添加设置(见下文)

  2. 创建表(运行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

  • v1.1.0 - 16.08.2022

    • 针对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

  • v0.4

    • 修复了“创建的总进程数”错误

    • 显示“进程生命周期”

  • v0.3.0

    • 显示从/proc/meminfo和“平均负载”中获取的一些系统信息

    • 许多错误修复

  • v0.2.0

    • 许多更改!重新创建表,例如:./manage.py reset django_processinfo

  • v0.1.0

    • 第一个版本

捐赠

项目详情


下载文件

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

源代码分发

django-processinfo-1.1.0.tar.gz (24.2 kB 查看哈希)

上传时间 源代码

构建分发

django_processinfo-1.1.0-py3-none-any.whl (29.5 kB 查看哈希)

上传时间 Python 3

由以下机构支持

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