AMonitor Python SDK
Project description
AMonitor Python SDK
目标
Python SDK 运行在被监控进程一侧,提供:
- 启动 WS 服务端,接收 Agent 下发的
action - 周期发送
heartbeat - 向 Agent 发送
event - 返回
action_ack
安装与运行(uv)
uv sync
uv run python -m amonitor_sdk.example
最小示例
from amonitor_sdk.server import start_server
async def on_action(action: str, params: dict):
if action == "restart":
return {"ok": True, "message": "restarted"}
return {"ok": False, "message": "unknown action"}
start_server(host="0.0.0.0", port=8765, target_id="server-a", action_handler=on_action)
交互说明
- Agent 连接 SDK WS 地址。
- SDK 启动后按间隔发送
heartbeat。 - SDK 收到
action后执行action_handler。 - SDK 将执行结果封装为
action_ack返回。
开发规范(Python)
代码风格
- Python 版本:
>=3.11 - 强制类型注解,公开 API 需要完整函数签名。
- 不使用单字母变量名(循环计数器除外)。
- 异步代码优先使用
async/await,避免阻塞调用。
项目结构
src/amonitor_sdk/server.py:服务端与消息处理主逻辑src/amonitor_sdk/models.py:协议模型src/amonitor_sdk/example.py:最小可运行示例
依赖与命令
- 新增依赖后执行
uv sync - 运行检查:
uv run --with dev ruff check src - 本地 smoke:
uv run python -c "import amonitor_sdk"
测试与验收
- 单模块测试:
cd .. && make test - 幂等验收:
cd .. && RUN_E2E=1 make test
协议约束
- 必须携带
msg_id、type、timestamp payload保持业务透传,SDK 不做业务字段裁剪action_ack.payload.action_msg_id必须等于原 action 的msg_id
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
amonitor_sdk-1.1.1.tar.gz
(45.0 kB
view details)
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 amonitor_sdk-1.1.1.tar.gz.
File metadata
- Download URL: amonitor_sdk-1.1.1.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f7aa6f4a6426f90a0c76760ebf426c8483b6df158736e042a28c2ed7485bb35
|
|
| MD5 |
776f31eeb77cd9506fc5a431f289c931
|
|
| BLAKE2b-256 |
db0196df4e3e706fc065de14fd4fffcf7898f5cb7b4f37abc9a996ecceb7793a
|
File details
Details for the file amonitor_sdk-1.1.1-py3-none-any.whl.
File metadata
- Download URL: amonitor_sdk-1.1.1-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8556abb86bc725a4b3ccca8da99ec522c1759e1cc90a389e504ba107e9323ca
|
|
| MD5 |
6e226ead1a955ff412c11be90e7ea50f
|
|
| BLAKE2b-256 |
4a8ab312ca52baa0e20d7341ea13901ead027d3c6c96d1e57be7381a9a907da0
|