This commit is contained in:
ygx
2026-03-19 22:34:03 +08:00
parent ba2494f5b3
commit bfc27c346f
24 changed files with 4008 additions and 2 deletions

View File

@@ -34,3 +34,23 @@ export const fetchAlertStatistics = (data: {
/** 获取 告警计数 */
export const fetchAlertCount = () => request.get("/Alert/v1/record/count");
/** 获取 告警处理记录列表 */
export const fetchAlertProcessList = (data: {
alert_record_id?: number,
action?: string,
page?: number,
page_size?: number,
keyword?: string,
sort?: string,
order?: string
}) => request.get("/Alert/v1/process/list", { params: data });
/** 获取 告警趋势 */
export const fetchAlertTrend = (data: {
granularity?: string, // day / month
start_time?: string,
end_time?: string,
policy_id?: number,
severity_id?: number
}) => request.get("/Alert/v1/record/trend", { params: data });

109
src/api/ops/alertPolicy.ts Normal file
View File

@@ -0,0 +1,109 @@
import { request } from "@/api/request";
/** 获取 告警策略列表 */
export const fetchPolicyList = (data: {
page?: number,
page_size?: number,
keyword?: string,
enabled?: string,
priority?: number[],
created_at_start?: string,
created_at_end?: string,
order_by?: string,
order?: string
}) => request.get("/Alert/v1/policy/list", { params: data });
/** 获取 告警策略详情 */
export const fetchPolicyDetail = (id: number) => request.get(`/Alert/v1/policy/get/${id}`);
/** 创建 告警策略 */
export const createPolicy = (data: {
name: string;
description?: string;
enabled?: boolean;
priority?: number;
labels?: string;
template_id?: number;
auto_create_ticket?: boolean;
feedback_template_id?: number;
dispatch_rule?: string;
}) => request.post("/Alert/v1/policy/create", data);
/** 更新 告警策略 */
export const updatePolicy = (data: {
id: number;
name?: string;
description?: string;
enabled?: boolean;
priority?: number;
labels?: string;
template_id?: number;
auto_create_ticket?: boolean;
feedback_template_id?: number;
dispatch_rule?: string;
}) => request.post("/Alert/v1/policy/update", data);
/** 删除 告警策略 */
export const deletePolicy = (id: number) => request.delete(`/Alert/v1/policy/delete/${id}`);
/** 获取 告警规则列表 */
export const fetchRuleList = (data: {
policy_id?: number;
page?: number;
page_size?: number;
keyword?: string;
sort?: string;
order?: string
}) => request.get("/Alert/v1/rule/list", { params: data });
/** 获取 告警规则详情 */
export const fetchRuleDetail = (id: number) => request.get(`/Alert/v1/rule/get/${id}`);
/** 创建 告警规则 */
export const createRule = (data: {
policy_id: number;
name: string;
description?: string;
rule_type: string;
severity_id: number;
enabled?: boolean;
metric_name?: string;
query_expr?: string;
threshold?: number;
compare_op?: string;
duration?: number;
labels?: string;
}) => request.post("/Alert/v1/rule/create", data);
/** 更新 告警规则 */
export const updateRule = (data: {
id: number;
name?: string;
description?: string;
rule_type?: string;
severity_id?: number;
enabled?: boolean;
metric_name?: string;
query_expr?: string;
threshold?: number;
compare_op?: string;
duration?: number;
labels?: string;
}) => request.post("/Alert/v1/rule/update", data);
/** 删除 告警规则 */
export const deleteRule = (id: number) => request.delete(`/Alert/v1/rule/delete/${id}`);
/** 获取 告警模板列表 */
export const fetchTemplateList = (data: {
page?: number;
page_size?: number;
keyword?: string;
}) => request.get("/Alert/v1/template/list", { params: data });
/** 获取 告警级别列表 */
export const fetchSeverityList = (data: {
page?: number;
page_size?: number;
enabled?: string;
}) => request.get("/Alert/v1/severity/list", { params: data });

View File

@@ -0,0 +1,48 @@
import { request } from "@/api/request";
/** 获取 当前告警记录列表 */
export const fetchAlertRecords = (data: {
page?: number,
page_size?: number,
policy_id?: number,
rule_id?: number,
status?: string,
severity_id?: number,
start_time?: string,
end_time?: string,
keyword?: string
}) => {
return request.get("/Alert/v1/record/list", { params: data });
};
/** 获取 告警记录详情 */
export const fetchAlertRecordDetail = (id: number) => request.get(`/Alert/v1/record/get/${id}`);
/** 创建处理记录(执行确认/解决/屏蔽等操作) */
export const createAlertProcess = (data: {
alert_record_id: number;
action: string; // ack / resolve / silence / comment / assign / escalate / close
operator: string;
operator_id?: string;
comment?: string;
assign_to?: string;
assign_to_id?: string;
silence_until?: string;
silence_reason?: string;
escalate_level?: string;
escalate_to?: string;
root_cause?: string;
solution?: string;
metadata?: Record<string, any>;
}) => request.post("/Alert/v1/process/create", data);
/** 获取 告警处理记录列表 */
export const fetchAlertProcessList = (data: {
alert_record_id?: number,
action?: string,
page?: number,
page_size?: number,
keyword?: string,
sort?: string,
order?: string
}) => request.get("/Alert/v1/process/list", { params: data });