带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(4)

简介: 带你读《Elastic Stack 实战手册》之59:——3.5.16.3.Anomaly detection(4)


《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.16. Machine learning ——3.5.16.3.Anomaly detection(3) https://developer.aliyun.com/article/1227221


6. job 类型简介

 

single metric job、Multi metric job、population job 是 Kibana抽象出来的几种常用类型,并非机器学习 job 分出来的类型,从 API 就可以清晰的看到,并没有 type 字段区分 job 类型,是通过配置参数的方式调整成用户预期的分析 job。

 

主要用途:

 

l Single metric:对一个索引字段进行数据分析。

l Multi metric:对多个索引字段分别进行数据分析,可根据字段分组切片。

l Population:群体分析,用于检测行为不同于指定群体中的其他实体的对象。

l Advanced:高级用法,对一个或多个索引字段执行数据分析,可包含多个检测器,且能通过JSON 编辑没有在 Kibana 中可视化的配置。


7. 使用 API 创建 Multi metric job

 

通过 API 创建 Multi metric job,指定 jobId、bucket_span、detectors、time_field、

by_field_name、influencers。


PUT _ml/anomaly_detectors/second_detector
{
  "description": "multi metric detector",
  "analysis_config": {
    "bucket_span": "15m",
    "detectors": [
      {
        "detector_description": "Sum of volume",
        "function": "sum",
        "field_name": "volume",
        "by_field_name":"label.keyword"
      },
      {
        "detector_description": "max of volume",
        "function": "max",
        "field_name": "volume",
        "by_field_name":"label.keyword"
      },
      {
        "detector_description": "max of high",
        "function": "max",
        "field_name": "high",
        "by_field_name":"label.keyword"
      }
    ],
    "influencers":["label.keyword","symbol"]
  },
  "data_description": {
    "time_field": "date",
    "time_format": "epoch_ms"
  }
  }

可以发现和 single metric job 十分类似,只是 Multi metric job 使用了多个 detectors,对多个字段进行检测,并且按照 label.keyword 字段进行拆分,在该 job 中添加了 label.keyword 、symbol 这两个影响者。

 

同样的,需要为该 job 创建一个 datafeed,保证 job 出于 open 状态,并开启 datafeed 的 task。


# 创建datafeed,通过job_id绑定机器学习job
PUT _ml/datafeeds/second-datafeed
{
  "job_id": "second_detector",
  "indexes": [
    "zmc-test1"
  ],
  "scroll_size": 1000
}
# 开启datafeed,将数据传输给job(需要保证job是open状态)
POST _ml/datafeeds/second-datafeed/_start?start=1970-01-02T10:00:00Z&end=2021-09-10T00:00:00Z

8. 使用 API 创建 population job

 

通过 API 创建 population job,可以看到与上述2种 job 的创建所使用的参数基本非常类似。over_field_name 表示以 label 字段的数据为总体的基准,对 field_name 指定的 change 字段进行分析。

 

这里还补充了一些可选参数,model_memory_limit 指定了该 job 的内存限制, model_snapshot_retention_days 指定了 snapshot 的保存时间,allow_lazy_open 指定了内存不足的情况下 job 是否可以 open(默认 false,不允许 open,如果为 true 则表示允许 open,等待内存充足的时候再执行),results_index_name 指定了 job 结果存入的索引的后缀名。


PUT _ml/anomaly_detectors/population_v2_detector
{
  "description": "population detector",
  "analysis_config": {
    "bucket_span": "15m",
    "detectors": [
      {
        "detector_description": "mean(change) over \"label.keyword\",这是一个群体分析j
        ob",
        "function": "mean",
        "field_name": "change",
        "over_field_name": "label.keyword",
        "detector_index": 0
      }
    ],
    "influencers": [
      "label.keyword"
    ]
  },
  "analysis_limits": {
    "model_memory_limit": "1024mb",
    "categorization_examples_limit": 4
  },
  "data_description": {
    "time_field": "date",
    "time_format": "epoch_ms"
  },
  "model_snapshot_retention_days": 1,
  "results_index_name": "shared",
  "allow_lazy_open": false
}

 为 population_v2_detector 这个 job 绑定一个 datafeed,该 datafeed 可以获取 zmc-test1 索引中的所有数据,可以通过 query 语句进行调整。

# 创建datafeed
PUT _ml/datafeeds/population-v2-datafeed
{
  "job_id": "population_v2_detector",
  "indexes": [
    "zmc-test1"
  ],
  "scroll_size": 1000,
  "query": {
    "bool": {
      "must": [
        {
          "match_all": {}
        }
      ]
    }
    },
  "chunking_config": {
    "mode": "auto"
  },
  "delayed_data_check_config": {
    "enabled": true
  }
}
# 开启datafeed任务,将数据传输到job
POST _ml/datafeeds/population-v2-datafeed/_start?start=1970-01-02T10:00:00Z&end=2021-09-10T00:00:00Z

9. 使用 Kibana 创建 Multi metric job、population job

 

1大多步骤与 single metric job 创建方式一致,不再赘述。

2Multi metric job,指标属性选取演示。


image.png


还可以在后续步骤中选择 label 字段进行切片,分组后逐一分析。

 

3population job,指标属性选取演示。

image.png

10. 查看机器学习分析结果

 

该过程即查询 .ml-anomalies-shared 索引中的数据,ES 提供了语义更加清晰的 API。

 

1按照 bucket 返回异常检测 job 的结果。


GET _ml/anomaly_detectors/first_detectors/results/buckets
{
  "anomaly_score": 80,
  "start": "1547078400000"
}

2可以通过 Kibana 的可视化页面查看结果和预测。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
16天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
6019 30
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
1天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
572 135
|
11天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1187 3
|
8天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
990 1
|
18天前
|
人工智能 自然语言处理 供应链
|
9天前
|
人工智能 弹性计算 安全
阿里云618活动时间、活动入口、优惠活动详细解读
2026年阿里云618创新加速季已全面开启,作为年度力度最大的云产品促销活动,本次大促覆盖轻量应用服务器、ECS云服务器、GPU云服务器、数据库、AI算力、安全服务、CDN等全品类产品,推出5亿元算力补贴、新用户限时秒杀、普惠满减、企业专享、免费试用、云大使返佣等多重福利,个人开发者、中小企业、AI团队均可享受专属低价。本文将系统梳理2026年阿里云618活动的完整时间节点、官方参与入口、各类优惠细则、使用规则、热门产品推荐及实操代码,帮助用户精准参与、高效省钱,以最低成本完成上云部署。
812 5
|
9天前
|
运维
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
1442 0

热门文章

最新文章