基于NoneBot2的状态监测插件
Project description
简介
可通过 服务状态 查询当前服务器各功能 API 可用状态
例如:
O 可用 | 会战面板
O 可用 | 远程登录
X 故障 | 涩图
O 可用 | 画图
X 故障 | ChatGPT
特色
🚸 开箱即用:安装完成后无需修改任何配置项或代码即可使用
💡 易于使用:所有配置项都可通过命令交互实现增删查改
⚡️ 异步支持:所有协议均通过异步实现,无需担心探测过程中造成堵塞
💻 开发友好:只需实现核心探测方法即可增添新协议支持,详情参考添加协议
安装
使用 nb-cli 安装(推荐):
nb plugin install nonebot-plugin-servicestate
使用 pip 安装:
pip install nonebot-plugin-servicestate
使用 git clone 安装:
git clone https://github.com/OREOCODEDEV/nonebot-plugin-servicestate.git
使用
服务状态查询
可通过发送 服务状态 获取当前绑定的服务可用状态
只有服务状态查询无权限要求,服务的增删查改均需要 NoneBot 管理员权限,若服务增删查改命令不响应,请检查 NoneBot 是否已正确配置管理员
添加服务
可通过发送 添加服务 <协议> <名称> <地址> 以添加需要监控的服务
- 可在此处查看所有受支持的协议
添加服务 HTTP git截图 https://github.com
修改服务
可通过发送 修改服务 <名称> <参数名> <参数内容> 以修改服务的参数
- 不同协议支持修改的参数字段不同,具体请参考协议支持
修改服务 git截图 proxies http://127.0.0.1:10809
群组服务
当多个API共同支持某项服务时,可通过 群组服务 <名称1> <名称2> <群组名称> 群组多个服务为一个显示
- 只有当群组中的所有服务都为可用状态时,群组才显示为可用,当有一个或多个服务为故障状态时,群组都显示为故障
例:假设当前已设置好 涩图信息API 和 涩图图床 两个服务,可通过下列命令组合为一个服务
群组服务 涩图信息API 涩图图床 涩图
群组命令前:
O 可用 | 涩图信息API
X 故障 | 涩图图床
群组命令后:
X 故障 | 涩图
解散群组
当需要解散群组时,可通过 解散群组 <群组名称> 解散
- 解散群组后,群组内的服务都会重新作为独立服务显示在状态列表中
解散群组 涩图
删除服务
可通过发送 删除服务 <名称> 以不再监测该服务
删除服务 git截图
群组操作
在名称参数中加入转义符 @ 以指定群组中的服务
- 若群组或服务名中本身包含了转义符
@,则需要通过@@以代替名称中的@
例:在群组涩图中修改服务涩图图床的参数timeout为3
修改服务 涩图@涩图图床 timeout 3
协议支持
以下是项目当前支持的协议,以及可被通过修改命令配置的字段
HTTP GET
- 协议名称:
HTTP - 状态查询:探测地址超时前返回状态 200 为可用
- 服务名称:
name@ [str] - 监测地址:
host@ [str] - 超时时间:
timeout@ [int] - 代理地址:
proxies@ [str, None] - 请求头:暂未支持
- UA:暂未支持
- Cookie:暂未支持
- 有效响应码:暂未支持
- 内容正则判定:暂未支持
TCP
- 协议名称:
TCP - 状态查询:探测地址超时前成功建立连接为可用
- 服务名称:
name@ [str] - 监测地址:
host@ [str] - 端口:
port@ [int] - 超时时间:
timeout@ [int] - 代理地址:暂未支持
添加协议
说明
本段内容面向开发者,如不理解可跳过本段
若某项服务可用需要特殊的可用性检查逻辑,且无法通过通用协议支持实现(如动态解析内容并获取链接跳转)或当前协议暂未支持该判定特性时,可通过添加新的协议快速实现
编写
项目.\protocol中内置了一个demo协议
demo.py
实现了一个可用概率为随机的协议,你可以参照内部的注释,编写自己的自定义协议方法
下列步骤中默认均按照demo协议编写,如需要自定义协议请按照实际情况操作
注册
在.\protocol\__init__.py中导入需要注册的demo协议
from .demo import DEMOProtocol
使用
现在,你已经完成自定义协议的所有步骤,可直接使用你的自定义协议了
添加demo协议命令:添加服务 DemoProtocol DemoName demo_url
修改随机可用概率为 25% :修改服务 DemoName normal_rate 25
修改为永远故障状态:修改服务 DemoName always_malfunction True
使用上述命令并分别通过服务状态命令观察它们执行后的变化吧!
Todo
- 核心pydantic支持
- PING 协议支持
- RDP 协议支持
- 协议配置项合法检查接口支持
- 协议载入配置方法统一实现
- 协议必填配置项接口支持
- 群组
增删查改支持 - OneBotV11配置文件收发
- 不同用户服务绑定支持(咕咕咕
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 nonebot_plugin_servicestate-0.2.1.tar.gz.
File metadata
- Download URL: nonebot_plugin_servicestate-0.2.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
466f4b2483d043d9673d19be6ef3761811a6aa357217d5b4087f321453a1a857
|
|
| MD5 |
ffa91899dcabea0ecd2fe3134ff72475
|
|
| BLAKE2b-256 |
a90834a181d5e509d227c3b393474bdc31d9aca5039c6d7aa23b34f2bbf2ea8b
|
File details
Details for the file nonebot_plugin_servicestate-0.2.1-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_servicestate-0.2.1-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dd09687be73ce32a9af1f3339bc71e400fd649e8967d4c4315f28dc0539dd02
|
|
| MD5 |
c89d36bbee888ad6a2c3231997dbb5ae
|
|
| BLAKE2b-256 |
968f66daf755a2738fc40e9013f875d82d2ea56acc21aa479a338f649fe80838
|