运维系统特殊接口
涵盖消息管理(/message_modelview/api)、K8s 管理(/k8s)、仪表盘(/dashboard/api)、账单(/bill_modelview/api)、整体资源(/total_resource/api)。
消息管理 /message_modelview
代码文件:myapp/views/view_message.py(route_base = '/message_modelview/api')
Webhook 接收消息
GET/POST /message_modelview/api/<client>/webhook
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| client | path | string | 客户端标识(Slack、Teams 等) |
请求体/Header: 客户端特定的 Webhook 载荷
响应: 客户端特定的确认响应(ack / 空)
K8s管理 /k8s
代码文件:myapp/views/view_k8s.py(route_base = '/k8s')
获取 Pod 日志
GET /k8s/read/log/<cluster_name>/<namespace>/<pod_name>
GET /k8s/read/log/<cluster_name>/<namespace>/<pod_name>/<container>
GET /k8s/read/log/<cluster_name>/<namespace>/<pod_name>/<container>/<tail>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| cluster_name | path | string | 集群名称 |
| namespace | path | string | 命名空间 |
| pod_name | path | string | Pod 名称 |
| container | path | string | 容器名(可选) |
| tail | path | int | 尾部行数,默认 100 |
响应: 纯文本(Pod 日志)
获取 Pod 信息
GET /k8s/read/pod/<cluster_name>/<namespace>/<pod_name>
响应: JSON(Pod 元数据和状态)
获取 Pod YAML
GET /k8s/read/pod/yaml/<cluster_name>/<namespace>/<pod_name>
响应: YAML(Pod 完整定义)
获取 Terminating 状态 Pod
GET /k8s/read/pod/terminating
GET /k8s/read/pod/terminating/<namespace>
响应: JSON 数组(卡在 Terminating 状态的 Pod 列表)
删除 Pod
GET/POST /k8s/web/delete/pod/<cluster_name>/<namespace>/<pod_name> # Web UI 删除
GET/POST /k8s/delete/pod/<cluster_name>/<namespace>/<pod_name> # API 删除
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| cluster_name | path | string | 集群名称 |
| namespace | path | string | 命名空间 |
| pod_name | path | string | Pod 名称 |
Web 响应: 302 重定向或 JSON 确认 API 响应:
{"status": 0, "message": "success"}
打开 Pod 日志界面
GET/POST /k8s/web/log/<cluster_name>/<namespace>/<pod_name>
GET/POST /k8s/web/log/<cluster_name>/<namespace>/<pod_name>/<container_name>
响应: HTML 日志查看器(流式日志)
打开 Pod 命令行界面
GET/POST /k8s/web/debug/<cluster_name>/<namespace>/<pod_name>
GET/POST /k8s/web/debug/<cluster_name>/<namespace>/<pod_name>/<container_name>
响应: HTML 终端界面(Web Terminal)
搜索 Pod 和服务
GET/POST /k8s/web/search/<cluster_name>/<namespace>/<search>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| cluster_name | path | string | 集群名称 |
| namespace | path | string | 命名空间 |
| search | path | string | 搜索关键词(Pod 名或服务名) |
响应: HTML 搜索结果或 JSON
仪表盘 /dashboard
代码文件:myapp/views/view_dashboard.py(route_base = '/dashboard/api')
获取仪表盘布局
GET /dashboard/api/layout
响应: JSON,包含仪表盘布局配置(widget 位置、大小等)
⚠️ 已按代码改正:原文档此处写的是
GET/POST/PUT /dashboard/api/layout,当前代码中layout仅声明methods=['GET'](view_dashboard.py:64)。
获取仪表盘组件数据
GET /dashboard/api/widget/<widget_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| widget_id | path | string | 组件 ID |
响应: JSON,组件数据和配置
⚠️ 已按代码改正:原文档此处写的是
GET/POST,当前代码中widget仅声明methods=['GET'](view_dashboard.py:101)。
账单 /bill_modelview
代码文件:myapp/views/view_bill.py(route_base = '/bill_modelview/api')
账单详情
GET/POST /bill_modelview/api/detail/<bill_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| bill_id | path | int | 账单 ID |
响应: JSON,账单明细(按项列出费用、汇总等)
整体资源 /total_resource
代码文件:myapp/views/view_total_resource.py(route_base = '/total_resource/api')
暴露监控数据
GET/POST /total_resource/api/data
请求参数(Query):
| 参数 | 类型 | 说明 |
|---|---|---|
| filters | JSON | 过滤条件(时间范围、集群、组织等) |
响应: JSON,聚合资源使用统计(CPU、内存、GPU 总量和使用量)