feat
This commit is contained in:
@@ -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
109
src/api/ops/alertPolicy.ts
Normal 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 });
|
||||
48
src/api/ops/alertRecord.ts
Normal file
48
src/api/ops/alertRecord.ts
Normal 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 });
|
||||
Reference in New Issue
Block a user