轻量的 Django 应用,用于监控 Redis 键并按任务周期采集快照。
Project description
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,改进监控项、错误处理和高并发下的稳定性。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_redis_monitor-0.1.1.tar.gz.
File metadata
- Download URL: django_redis_monitor-0.1.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eec123fc6f19f6f0a1fc94bdea108b048ad10e2d11a2318928967f073bf97c15
|
|
| MD5 |
3c84153934ab63087e0e3dfec2bf7472
|
|
| BLAKE2b-256 |
942b44f128ad034662baddfd813ef4b3a391c05a54a08df3da5224da9bbaf644
|
File details
Details for the file django_redis_monitor-0.1.1-py3-none-any.whl.
File metadata
- Download URL: django_redis_monitor-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d3b828eaf20d00ffb7f330f33398c590bc5dab2e90737cf073b17c7003ac063
|
|
| MD5 |
7cdc4be41cd0d7982925f776ebc29afa
|
|
| BLAKE2b-256 |
7a1ea6d9d61782fdd087520cd394a5fdf7a165e0c89e31051a5c195cc6f5a627
|