K8s AIOps 算法落地优先选3σ、Prophet、孤立森林、DBSCAN、XGBoost,覆盖 80% 场景

我直接给你最精简、能立刻落地的版本:
5 个算法 = 覆盖 K8s AIOps 80% 场景
每个算法只给:作用 + 用在哪 + 最简代码,你照着用就行。


1. 3σ 原则(动态阈值)

定位:最简单、最稳、最先落地

  • 做什么:指标突增、突降、异常波动
  • K8s 场景:CPU/内存/磁盘/网络 异常
  • 优势:不用训练、秒上线
import numpy as np
def detect_3sigma(data):
    mu = np.mean(data)
    sigma = np.std(data)
    upper = mu + 3*sigma
    lower = mu - 3*sigma
    return [x for x in data if x > upper or x < lower], upper, lower

2. Prophet(时序预测)

定位:资源预测、容量规划

  • 做什么:预测未来 CPU/内存/Pod 负载
  • K8s 场景:防 OOM、防拥堵、自动扩缩容依据
  • 优势:自带节假日、周期,适配 K8s 流量规律
from prophet import Prophet
model = Prophet()
model.fit(df)  # ds, y 时间序列
future = model.make_future_dataframe(periods=24, freq='h')
forecast = model.predict(future)

3. 孤立森林(Isolation Forest)

定位:多维度指标异常检测

  • 做什么:K8s 节点 / Pod 综合异常
  • 场景:CPU+内存+磁盘+网络 一起判断
  • 优势:高维数据强、无监督、不用标异常
from pyod.models.iforest import IForest
clf = IForest(contamination=0.05)
clf.fit(X)  # X=[[cpu, mem, disk, net], ...]
anomaly_score = clf.decision_scores_
label = clf.labels_  # 0正常 1异常

4. DBSCAN(告警聚类)

定位:雪崩告警去重、找根告警

  • 做什么:把一堆相似告警聚成一类
  • K8s 场景:Node 挂 → 一堆 Pod 告警 → 聚成 1 个根因
  • 优势:不用指定簇数量,适合告警文本聚类
from sklearn.cluster import DBSCAN
db = DBSCAN(eps=0.5, min_samples=2, metric='cosine')
clusters = db.fit_predict(alert_vectors)

5. XGBoost(根因排序 Top5)

定位:根因分析核心

  • 做什么:看哪些特征最“导致故障”
  • K8s 场景:Pod 重启 → 输出 OOM/节点故障/磁盘满 权重
  • 优势:可解释、工业级稳定
import xgboost as xgb
model = xgb.XGBClassifier()
model.fit(X, y)
importance = model.feature_importances_  # 根因得分

这 5 个组合 = 完整 K8s AIOps 能力

  1. → 指标异常
  2. Prophet → 预测未来负载
  3. 孤立森林 → 多维综合异常
  4. DBSCAN → 告警聚类降噪
  5. XGBoost → 根因 TopN

真正覆盖:80% K8s 故障场景

  • Pod 重启
  • Node NotReady
  • 资源打爆
  • 网络抖动
  • 磁盘满
  • 告警风暴
  • 根因定位

posted @ 2026-02-11 16:11  wuyingchun1987  阅读(2)  评论(0)    收藏  举报