223 lines
7.2 KiB
JSON
223 lines
7.2 KiB
JSON
{
|
|
"openapi": "3.0.3",
|
|
"info": {
|
|
"title": "AI-Ops API",
|
|
"version": "1.0.0",
|
|
"description": "AI-Ops 智能运维平台 API"
|
|
},
|
|
"servers": [
|
|
{"url": "http://localhost:8080", "description": "Local development"}
|
|
],
|
|
"paths": {
|
|
"/api/v1/ai-ops/login": {
|
|
"post": {
|
|
"summary": "用户登录",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {"type": "string"},
|
|
"password": {"type": "string"}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {"description": "Login success"},
|
|
"400": {"description": "Bad request"}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/metrics/realtime": {
|
|
"get": {
|
|
"summary": "实时指标",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/metrics/query": {
|
|
"get": {
|
|
"summary": "指标下钻查询",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [
|
|
{"name": "service", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "path", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "supplier", "in": "query", "schema": {"type": "string"}}
|
|
],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/metrics/suppliers/count": {
|
|
"get": {
|
|
"summary": "活跃供应商数量",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/alerts/open/count": {
|
|
"get": {
|
|
"summary": "未关闭告警数量",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/logs": {
|
|
"get": {
|
|
"summary": "日志查询",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [
|
|
{"name": "service", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "path", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "status_code", "in": "query", "schema": {"type": "integer"}},
|
|
{"name": "start_time", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "end_time", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "page", "in": "query", "schema": {"type": "integer", "default": 1}},
|
|
{"name": "page_size", "in": "query", "schema": {"type": "integer", "default": 100}}
|
|
],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/logs/export": {
|
|
"get": {
|
|
"summary": "日志导出 CSV",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"200": {"description": "CSV file"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/rules": {
|
|
"get": {
|
|
"summary": "告警规则列表",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
},
|
|
"post": {
|
|
"summary": "创建规则",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"201": {"description": "Created"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/rules/{id}": {
|
|
"get": {
|
|
"summary": "获取规则详情",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
},
|
|
"put": {
|
|
"summary": "更新规则",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
},
|
|
"delete": {
|
|
"summary": "删除规则",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"204": {"description": "No Content"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/alerts": {
|
|
"get": {
|
|
"summary": "告警事件列表",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [
|
|
{"name": "status", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "page", "in": "query", "schema": {"type": "integer"}},
|
|
{"name": "page_size", "in": "query", "schema": {"type": "integer"}}
|
|
],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/channels": {
|
|
"get": {
|
|
"summary": "通知渠道列表",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
},
|
|
"post": {
|
|
"summary": "创建渠道",
|
|
"security": [{"bearerAuth": []}],
|
|
"responses": {"201": {"description": "Created"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/channels/{id}": {
|
|
"get": {
|
|
"summary": "获取渠道详情",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
},
|
|
"put": {
|
|
"summary": "更新渠道",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
},
|
|
"delete": {
|
|
"summary": "删除渠道",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"204": {"description": "No Content"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/audits": {
|
|
"get": {
|
|
"summary": "审计日志列表",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [
|
|
{"name": "object_type", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "object_id", "in": "query", "schema": {"type": "string"}},
|
|
{"name": "page", "in": "query", "schema": {"type": "integer"}},
|
|
{"name": "page_size", "in": "query", "schema": {"type": "integer"}}
|
|
],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/api/v1/ai-ops/audits/{id}/rollback": {
|
|
"post": {
|
|
"summary": "配置回滚",
|
|
"security": [{"bearerAuth": []}],
|
|
"parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string"}}],
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/health": {
|
|
"get": {
|
|
"summary": "健康检查",
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/actuator/health": {
|
|
"get": {
|
|
"summary": "健康检查",
|
|
"responses": {"200": {"description": "OK"}}
|
|
}
|
|
},
|
|
"/actuator/health/live": {
|
|
"get": {
|
|
"summary": "Liveness probe",
|
|
"responses": {"200": {"description": "UP"}}
|
|
}
|
|
},
|
|
"/actuator/health/ready": {
|
|
"get": {
|
|
"summary": "Readiness probe",
|
|
"responses": {"200": {"description": "UP"}, "503": {"description": "DOWN"}}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"securitySchemes": {
|
|
"bearerAuth": {
|
|
"type": "http",
|
|
"scheme": "bearer",
|
|
"bearerFormat": "JWT"
|
|
}
|
|
}
|
|
}
|
|
}
|