DjangoRedisMonitor
轻量的 Django 应用,用于管理与监控 Redis 键,支持按任务周期采集 Key 快照并在 Admin 中查看指标与趋势图。
概览
- 配置多 Redis 连接:
django_redis_monitor.models.RedisInstance - 注册需要监控的 Key:
django_redis_monitor.models.MonitoredKey - 定时采集任务:
django_redis_monitor.models.KeySnapshotTask - 采集结果快照:
django_redis_monitor.models.KeySnapshot - 后台采集线程:
django_redis_monitor.snapshot.SnapshotThread/django_redis_monitor.snapshot.start_snapshot_threads - Admin 支持:
django_redis_monitor.admin.RedisInstanceAdmin、django_redis_monitor.admin.MonitoredKeyAdmin、django_redis_monitor.admin.KeySnapshotTaskAdmin、django_redis_monitor.admin.KeySnapshotAdmin
快速开始
-
安装依赖(示例使用 pyproject 中定义的依赖):
-
数据库迁移与创建管理员:
- 运行迁移:python manage.py migrate (参见项目入口
django_redis_monitor_server/manage.py) - 创建超级用户:python manage.py createsuperuser
- 运行迁移:python manage.py migrate (参见项目入口
-
运行开发服务器:
- python manage.py runserver
- 应用在启动时会在
runserver或gunicorn情况下自动启动后台快照线程(参见django_redis_monitor.apps.DjangoRedisMonitorConfig.ready)
使用说明(Admin)
- 在 Django Admin 中添加 Redis 实例:参见模型实现
django_redis_monitor.models.RedisInstance。 - 为实例添加需要监控的 Key(
MonitoredKey),并为其创建/关联一个KeySnapshotTask来配置采集间隔与启用状态(参见django_redis_monitor.models.MonitoredKey与django_redis_monitor.models.KeySnapshotTask)。 - 在 MonitoredKey 的列表页面可以查看当前指标、历史快照并展示趋势图(实现位于
django_redis_monitor/admin.py)。Admin 使用 Chart.js 渲染趋势图(静态示例在django_redis_monitor/static/admin/js/metrics_chart.js)。
实现细节
- Redis 客户端池由
django_redis_monitor.models.RedisInstance.client管理,避免重复创建连接池。 - Key 指标读取逻辑在
django_redis_monitor.models.MonitoredKey.get_metrics中,根据key_type使用不同的 Redis 命令(llen / scard / zcard / hlen / xlen)。 - 为减少频繁读取,提供了简易的缓存装饰器
django_redis_monitor.models.key_metrics_cache,默认缓存 ttl 可配置(装饰get_metrics)。 - 后台采集线程会查找
KeySnapshotTask中next_run_at早于当前时间且enable=True的任务,采集并保存为KeySnapshot(参见django_redis_monitor/snapshot.py)。
注意事项
- 当前配置仅用于开发/内部使用:静态 SECRET_KEY、DEBUG=True、SQLite;生产部署请参考 Django 文档并在
django_redis_monitor_server/django_redis_monitor_server/settings.py中调整。 - snapshot 线程在 App.ready 中根据进程参数启动,确保不会在不期望的进程中启动(参见
django_redis_monitor/apps.py)。 - 若需扩展 key 类型或指标,请修改
django_redis_monitor.models.MonitoredKey.get_metrics。
项目文件(主要)
django_redis_monitor/models.pydjango_redis_monitor/admin.pydjango_redis_monitor/snapshot.pydjango_redis_monitor/apps.pydjango_redis_monitor/static/admin/js/metrics_chart.js- 项目入口与配置:
django_redis_monitor_server/manage.py、django_redis_monitor_server/django_redis_monitor_server/settings.py
许可证
- MIT:见
LICENSE
贡献
- 欢迎提交 issue / PR,改进监控项、错误处理和高并发下的稳定性。
Metadata
Release files for django-redis-monitor 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_redis_monitor-0.1.2.tar.gz | 12.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_redis_monitor-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.0 kB
Release files / django_redis_monitor-0.1.2.tar.gz
| Download URL | django_redis_monitor-0.1.2.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
afda8403ccd0735198318c342690592a8215e583f0ddc23ae585459891cb1a8f
|
|
BLAKE2b-256 checksum How to use checksums |
8fd64f0d06b28ee23a9e33ec7e486b999412a47af28ee0bb7aafa8a53db8ea05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.14
|
Release files / django_redis_monitor-0.1.2-py3-none-any.whl
| Download URL | django_redis_monitor-0.1.2-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a98d937993adddce8a2f803d48a292cab39313da74f439e682da13eaee50585
|
|
BLAKE2b-256 checksum How to use checksums |
2022328cdc14cc06f82f1a1295d0166c6e1f3665747dda7a3d156fd9babebc36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.14
|