基于NoneBot2的状态监测插件
Project description
nonebot-plugin-servicestate
✨ NoneBot 服务状态查询插件 ✨
简介
可通过 服务状态
查询当前服务器各功能 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
Hashes for nonebot_plugin_servicestate-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 466f4b2483d043d9673d19be6ef3761811a6aa357217d5b4087f321453a1a857 |
|
MD5 | ffa91899dcabea0ecd2fe3134ff72475 |
|
BLAKE2b-256 | a90834a181d5e509d227c3b393474bdc31d9aca5039c6d7aa23b34f2bbf2ea8b |
Hashes for nonebot_plugin_servicestate-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dd09687be73ce32a9af1f3339bc71e400fd649e8967d4c4315f28dc0539dd02 |
|
MD5 | c89d36bbee888ad6a2c3231997dbb5ae |
|
BLAKE2b-256 | 968f66daf755a2738fc40e9013f875d82d2ea56acc21aa479a338f649fe80838 |