技能创建器
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 快照 · 自动分类 · 以原作者文档为准
完整配置檔案與範本見 Extended Examples。
以機器學習偵測運維指標之異常、關聯警示、減假陽性。
裝依賴並備時序數據以分析。
# 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 分鐘)時,減歷史至 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's switch 警示;監控記憶體用量(長時若漲則定期重載模型)。
monitor-model-drift - 偵測異常偵測模型之退化monitor-data-integrity - 異常偵測前之數據質量檢查setup-prometheus-monitoring - 收集運維指標forecast-operational-metrics - 以 Prophet 預測為容量規劃