92 lines
2.4 KiB
TypeScript
92 lines
2.4 KiB
TypeScript
import { request } from '@/api/request'
|
|
|
|
export interface AlertQualityScore {
|
|
rule_id: number
|
|
resource_uid: string
|
|
business_system_id: number
|
|
window_start: string
|
|
window_end: string
|
|
score: number
|
|
repeat_count: number
|
|
notify_count: number
|
|
avg_ack_seconds: number
|
|
avg_resolve_seconds: number
|
|
reopen_rate: number
|
|
factors: string[]
|
|
}
|
|
|
|
export interface NoiseBucket {
|
|
rule_id: number
|
|
resource_uid: string
|
|
business_system_id: number
|
|
window_start: string
|
|
window_end: string
|
|
alert_count: number
|
|
notify_count: number
|
|
noise_score: number
|
|
}
|
|
|
|
export interface RuleSuggestion {
|
|
type: string
|
|
priority: string
|
|
rule_id: number
|
|
resource_uid?: string
|
|
business_system_id?: number
|
|
reason: string
|
|
action: string
|
|
}
|
|
|
|
export interface CapacityRisk {
|
|
resource_uid: string
|
|
metric_code: string
|
|
unit: string
|
|
current_value: number
|
|
status: '资源不足' | '配置合理' | '资源闲置' | '容量风险' | '数据不足'
|
|
idle_threshold: number
|
|
risk_threshold: number
|
|
shortage_threshold: number
|
|
slope_per_hour: number
|
|
risk_level: string
|
|
predicted_at?: string
|
|
predicted_value?: number
|
|
confidence_low?: number
|
|
confidence_high?: number
|
|
sample_count: number
|
|
data_start?: string
|
|
data_end?: string
|
|
data_span_hours: number
|
|
forecast_hours: number
|
|
}
|
|
|
|
export interface SloDashboardBucket {
|
|
total: number
|
|
response_breached: number
|
|
resolve_breached: number
|
|
breached: number
|
|
breach_rate: number
|
|
}
|
|
|
|
export interface SloDashboard {
|
|
total_closed: number
|
|
response_breached: number
|
|
resolve_breached: number
|
|
overall_breached: number
|
|
breach_rate: number
|
|
by_business_system: Record<string, SloDashboardBucket>
|
|
by_resource_category: Record<string, SloDashboardBucket>
|
|
}
|
|
|
|
export const fetchAlertQualityScores = (params?: { hours?: number }) =>
|
|
request.get<AlertQualityScore[]>('/Alert/v1/governance/quality', { params })
|
|
|
|
export const fetchAlertNoise = (params?: { hours?: number }) =>
|
|
request.get<NoiseBucket[]>('/Alert/v1/governance/noise', { params })
|
|
|
|
export const fetchRuleSuggestions = (params?: { hours?: number }) =>
|
|
request.get<RuleSuggestion[]>('/Alert/v1/governance/suggestions', { params })
|
|
|
|
export const fetchCapacityRisk = (params?: { resource_uid?: string; metric_type?: string; metric_code?: string }) =>
|
|
request.get<CapacityRisk>('/DC-Control/v1/risk/capacity', { params })
|
|
|
|
export const fetchSloDashboard = () => request.get<SloDashboard>('/Feedback/v1/tickets/slo/dashboard')
|