mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-04-01 10:43:02 +08:00
51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
## 实现插件化
|
||
以下部分用『RP3』指代 RP3 的核心部分。
|
||
|
||
### 服务
|
||
每个服务插件,需要提供以下的功能(hook), 以下以 MySQL 举例:
|
||
|
||
* 启用 - 为 MySQL 添加一个用户
|
||
* 暂停 - 删除 MySQL 的用户
|
||
* 删除 - 删除这个用户所有的数据库
|
||
* 默认配置 - 密码默认为禁用
|
||
* 修改配置 - 修改密码
|
||
* 显示状态 - 如显示 MySQL 数据库磁盘占用
|
||
* 监控资源 - 如监控 MySQL 数据库磁盘占用
|
||
|
||
### Hook
|
||
插件可以注册 RP3 提供的 Hook 来对 RP3 的数据和逻辑进行修改。
|
||
|
||
如 `rendering.navbar` 表示正在渲染 HTML 输出中的导航条部分。
|
||
|
||
插件可以注册自己的处理程序,接收一个参数(目前的导航条条目), 返回一个值(处理后的).
|
||
|
||
### 数据储存
|
||
插件与 RP3 使用同一数据库,插件所使用的集合名需添加 `plugin.name` 的前缀,如 `plugin.ssh.info`.
|
||
|
||
### 路由
|
||
插件可以注册或覆盖 RP3 的路由。
|
||
|
||
### UI
|
||
插件可以在用户的面板添加区块来显示信息。
|
||
|
||
插件在修改配置时需要提供一段 HTML 表单。
|
||
|
||
### 资源监控
|
||
需要监控的资源有:
|
||
|
||
* CPU 时间 - 单位 秒(s)
|
||
* 内存占用 - 单位 百万字节每小时(MiB/h)
|
||
* 磁盘空间 - 单位 MiB
|
||
* 外网流量 - 可以延后实现
|
||
* 磁盘 OI - 可以延后实现
|
||
|
||
当然并非每个服务都能精确地监控这些资源,这其中有很多困难,总之尽力而为吧,以下以 SSH 服务的资源监控为例:
|
||
|
||
插件可以向 RP3 注册监控程序,如:
|
||
|
||
* 每 30s 运行 CPU 监控程序
|
||
* 每 60s 运行内存监控程序
|
||
* 每 6h 运行磁盘监控程序
|
||
|
||
监控程序定时向 RP3 返回几种资源的使用情况,RP3 进行汇总统计。
|