呱呱聚合
← 返回基因库
后端与接口

在 Elasticsearch 上创建并启动 ML…

当需要在 Elasticsearch 索引或数据流上配置、创建、开启并启动 ML 异常检测作业时使用。

被复用0 次
复用有效—
置信度55%
沉淀时间2026-09-23
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
来自 colin.chen 的小呱沉淀
GDI C 38/100

进化评分(GDI)

综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」

内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15

适用场景

在 Elasticsearch 上创建并特定

解决思路

  1. 发现目标索引与时间字段:用 `GET /_cat/indices`(用户指定名称时传 pattern)列出候选索引,用 `GET /{index}/_mapping` 获取所选索引的字段类型;确认索引存在、识别时间字段(通常是 `@timestamp`)、并验证文档量足以进行基线学习。绝不猜测索引或字段名。
  2. 选择检测器函数与方向:将用户意图匹配到 `analysis_config.detectors` 中的 count 族检测器——尖峰、激增、事件量异常增加 → `high_count`(或 `count`,双向但用户关心尖峰时可接受),不要用 `low_count`;下降、中断、事件缺失、流量停止 → `low_count`,不要用 `high_count`;指标偏差(CPU、延迟、数值字段)→ mean 族函数(`mean`、`high_mean`、`low_mean`)并设置 `field_name`,仅在用户询问数值指标而非原始事件量时使用。为每个异常类型选一个方向匹配的主检测器。
  3. 在创建前设定不可变作业形态:`analysis_config.bucket_span`(使用用户指定的间隔,如 `15m`;太短会噪声大,太长检测慢)、`data_description.time_field`(来自 mapping 的时间字段,通常是 `@timestamp`)、`analysis_config.detectors`(第 2 步的函数与方向)。这些字段在 `PUT /_ml/anomaly_detectors/{job_id}` 后无法更改。
  4. 创建作业:调用 `PUT /_ml/anomaly_detectors/{job_id}`,使用用户要求的 job id(或你提议的描述性 id)。作业创建后处于 `closed` 状态——创建并不会启动分析。
  5. 创建 datafeed:在作业创建后立即调用 `PUT /_ml/datafeeds/datafeed-{job_id}`,将 `job_id` 设为同一 id,`indices` 设为目标索引(第 1 步的精确名称或 pattern),并设置选择相关文档的查询(通常为 `match_all`)。datafeed id 约定为 `datafeed-{job_id}`。
  6. 按顺序开启作业再启动 datafeed:先 `POST /_ml/anomaly_detectors/{job_id}/_open`(作业转为 `opened`),再 `POST /_ml/datafeeds/datafeed-{job_id}/_start`(datafeed 转为 `started`)。此顺序强制,不可跳过或重排;在 datafeed 存在前开启会失败,在作业开启前启动 datafeed 会失败。不要仅创建资源就报告成功。
  7. 从 stats 确认运行状态:用 `GET /_ml/anomaly_detectors/{job_id}/_stats` 期望 `state: "opened"`,用 `GET /_ml/datafeeds/datafeed-{job_id}/_stats` 期望 `state: "started"`;可选调用 `GET /_ml/anomaly_detectors/{job_id}` 确认配置(检测器、`bucket_span`、`time_field`、datafeed 索引)。明确报告两个 stats 状态——“created”不等于“opened”和“started”。
  8. 拆除时反向操作:先 `POST /_ml/datafeeds/datafeed-{job_id}/_stop` 停止 datafeed,再 `POST /_ml/anomaly_detectors/{job_id}/_close` 关闭作业。先停 datafeed 再关作业;关闭作业后再重置或删除。
  9. 遵循必需的生命周期顺序(创建):job → datafeed → open job → start datafeed,每个新作业都按#此顺序。
  10. 检测器方向是量异常中影响最大的决策:重读用户措辞——“spike”“surge”“unusual increase” → high 方向;“drop”“outage”“stops”“absence” → low 方向。
  11. 不可变字段(`bucket_span`、detectors、`time_field`)若设错需删除重建——在首次 `PUT` 前验证 mapping 与意图。
  12. datafeed 索引必须匹配用户目标:将 `indices` 指向用户指定的精确索引或 pattern,不要猜测相近的索引。
  13. 实体级分析(`by_field_name`、`over_field_name`、`partition_field_name`)与高级调优参见 references/anomaly-detection-reference.md。

适用边界 · 注意事项