技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
detect-anomalies-aiops【数据与研究】Implement AI-powered anomaly detection for operational metrics using time series analysis (Isolation Forest, Prophet, LSTM), alert correlation, and root cause analysis. Reduce alert fatigue by intelligently identifying true anomalies in system metrics, logs, and traces. Use when operations teams are overwhelmed by alert volume, when detecting complex…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
完整配置與範本詳見 擴展範例。
以機器學習察運維指標之異常,關聯告警,減誤報。
裝依賴並備時序資料以作分析。
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install anomaly detection libraries
pip install prophet scikit-learn pandas numpy
pip install tensorflow keras # for LSTM models
pip install pyod # Python Outlier Detection library
pip install statsmodels # for statistical methods
pip install prometheus-api-client # if using Prometheus
# Visualization
pip install plotly matplotlib seaborn
載並備資料:
# aiops/data_loader.py
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
from typing import List, Dict
import logging
logging.basicConfig(level=logging.INFO)
# ... (see EXAMPLES.md for complete implementation)
得: 時序資料以規律間隔載入,缺值已處,特徵已為 ML 模型所工程。
敗則: Prometheus 連接失敗則驗 URL 與網絡;資料有缺則用前向填充或插值;確保時戳列為 datetime 型;察大日期範圍之記憶體之虞(分塊處之)。
以無監督 Isolation Forest 算法察異常。
# aiops/isolation_forest_detector.py
from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import StandardScaler
import pandas as pd
import numpy as np
from typing import Dict, List
import joblib
# ... (see EXAMPLES.md for complete implementation)
得: 模型於歷史資料上訓練畢,異常已帶分標出,常 0.5-2% 之點標為異常。
敗則: 異常過多(>5%)則減 contamination 參數或於更潔基期重訓;過少(<0.1%)則增 contamination 或察特徵縮放;驗特徵有足夠方差。
用 Facebook Prophet 建季節模型並察偏離。
# aiops/prophet_detector.py
from prophet import Prophet
import pandas as pd
import numpy as np
from typing import Dict, Tuple
import logging
logger = logging.getLogger(__name__)
# ... (see EXAMPLES.md for complete implementation)
得: Prophet 模型捕捉日/週季節性,實值落於 99% 置信區間外時察為異常,並生預測以作容量規劃。
敗則: Prophet 過慢(每指標 >5 min)則縮歷史為 30 日或閉 weekly_seasonality;誤報過多則增 interval_width 至 0.995;缺季節模式則加自定義季節;確保時戳時區一致。
將相關異常聚為事件並識潛在根因。
# aiops/alert_correlation.py
import pandas as pd
import numpy as np
from sklearn.cluster import DBSCAN
from typing import List, Dict
from datetime import timedelta
import networkx as nx
# ... (see EXAMPLES.md for complete implementation)
得: 相關異常聚為事件,根因基於依賴圖而識,生事件摘要以資調查。
敗則: 諸異常皆分為獨立事件則增 time_window_minutes;根因不明則按架構明定 metric_relationships;驗時戳序正確。
發帶上下文之智告警並抑噪。
# aiops/intelligent_alerting.py
import requests
import logging
from typing import Dict, List
from datetime import datetime, timedelta
import json
logger = logging.getLogger(__name__)
# ... (see EXAMPLES.md for complete implementation)
得: 高嚴重性事件觸 PagerDuty 呼叫,中嚴重性至 Slack,低嚴重性僅記錄;重複告警於 15 分鐘窗內被抑。
敗則: 先以 curl 測 webhook URL;驗嚴重性之算出合理值(0.5-0.9 範圍);察限速未抑諸告警;確保 last_alerts 追蹤之時區處理正確。
立定期運行之自動化流水線。
# aiops/monitoring_service.py
import schedule
import time
import logging
from datetime import datetime, timedelta
from data_loader import MetricsDataLoader
from isolation_forest_detector import IsolationForestDetector
from prophet_detector import ProphetAnomalyDetector
# ... (see EXAMPLES.md for complete implementation)
得: 服務持續運行,每 5 分鐘察異常,事件時發告警,諸活動皆記。
敗則: 驗調度進程存活(生產用 systemd/supervisor);察 Prometheus 連通;確保模型成功載入;若服務停則施 dead man 告警;察記憶體用量(記憶體增長則周期重載模型)。
monitor-model-drift — 察異常察模型之退化monitor-data-integrity — 異常察前之資料質量檢查setup-prometheus-monitoring — 收集運維指標forecast-operational-metrics — 以 Prophet 預測作容量規劃