SLS机器学习最佳实践:时序异常检测

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
云备份 Cloud Backup,100GB 3个月
简介:

在SLS平台可以使用机器学习函数进行相关的时序异常检测,具体的相关函数可以使用如下函数进行异常检测,帮助用户提高巡检和分析的效率,具体的函数列表如下,具体的地址如下:https://help.aliyun.com/document_detail/93210.html
image
我们可以通过上面的函数组合,可以得到如下的巡检操作图标,我们将逐步拆解如何得到对应的结果:
image

  • 最复杂的巡检SQL函数如下所示:
* |
SELECT res.name AS INSTANCE
FROM
  (SELECT ts_anomaly_filter(INSTANCE, ts, ds, preds, probs, cast(5 AS bigint), cast(1 AS bigint)) AS res
   FROM
     (SELECT INSTANCE,
             res[1] AS ts,
             res[2] AS ds,
             res[3] AS preds,
             res[4] AS uppers,
             res[5] AS lowers,
             res[6] AS probs
      FROM
        (SELECT INSTANCE,
                array_transpose(ts_predicate_arma(TIME, value, 5, 1, 1, 1, 1, TRUE)) AS res
         FROM
           (SELECT (TIME/1000) AS TIME,
                   labels['instance'] AS INSTANCE,
                   value
            FROM
              (SELECT promql_query_range('1 - avg(irate(node_cpu_seconds_total{instance=~".*",mode="idle"}[10m])) by (instance) ', '10m') AS t
               FROM metrics)
            ORDER BY TIME ASC)
         GROUP BY INSTANCE)))

我们对上面的SQL进行拆解,看看怎么一步一步获取到对应的结果!

  • 我们先获得到对应要检测的对象:
* |
SELECT (TIME/1000) AS TIME,
       labels['instance'] AS INSTANCE,
       value
FROM
  (SELECT promql_query_range('1 - avg(irate(node_cpu_seconds_total{instance=~".*",mode="idle"}[10m])) by (instance) ', '10m') AS t
   FROM metrics)

这里,从SLS中使用PromQL获取对应N个监控对象每10分钟的cpu idle指标,为了形象的展示出来,我们可以使用流图将对应的图进行可视化。
image

  • 我们要针对获取的N条线,进行异常检测。SLS提供了异常检测函数,同时支持group by模式,我们可以较为放方便的使用上述方法进行巡检
* |
SELECT INSTANCE,
       ts_predicate_arma(TIME, value, 5, 1, 1, 1.0, 1.0, TRUE)
FROM
  (SELECT (TIME/1000) AS TIME,
          labels['instance'] AS INSTANCE,
          value
   FROM
     (SELECT promql_query_range('1 - avg(irate(node_cpu_seconds_total{instance=~".*",mode="idle"}[10m])) by (instance) ', '10m') AS t
      FROM metrics))
GROUP BY INSTANCE

利用上述的sql,我们可以轻松的对N条线进行异常检测,我们将会得到如下结果,表格的第一列是表示instance实例,第二列对应的每条线的检测结果。但是对于这么复杂的结果,该如何进行操作呢?
image
针对ts_predicate_arma 这个函数,我们提供了对应的函数对模型结果进行解析和转换,我们先检测结果中的数组进行转置操作。

* |
SELECT INSTANCE,
       array_transpose(ts_predicate_arma(TIME, value, 5, 1, 1, 1.0, 1.0, TRUE)) AS res
FROM
  (SELECT (TIME/1000) AS TIME,
          labels['instance'] AS INSTANCE,
          value
   FROM
     (SELECT promql_query_range('1 - avg(irate(node_cpu_seconds_total{instance=~".*",mode="idle"}[10m])) by (instance) ', '10m') AS t
      FROM metrics))
GROUP BY INSTANCE

使用 array_transpose 我们已经对函数结果做了转换,将对应的结果做unnest操作后,获取到对应的结果,进行后续的处理。

* |
SELECT INSTANCE,
       res[1] AS ts,
       res[2] AS ds,
       res[3] AS preds,
       res[4] AS uppers,
       res[5] AS lowers,
       res[6] AS probs
FROM
  (SELECT INSTANCE,
          array_transpose(ts_predicate_arma(TIME, value, 5, 1, 1, 1.0, 1.0, TRUE)) AS res
   FROM
     (SELECT (TIME/1000) AS TIME,
             labels['instance'] AS INSTANCE,
             value
      FROM
        (SELECT promql_query_range('1 - avg(irate(node_cpu_seconds_total{instance=~".*",mode="idle"}[10m])) by (instance) ', '10m') AS t
         FROM metrics))
   GROUP BY INSTANCE)

我们得到了对应的结果如下图所示:
image
针对这样的结果,我们筛选出满足我们的异常,我们使用ts_anomaly_filter这个函数来解决这个问题,具体的操作可以参看文档 https://help.aliyun.com/document_detail/93210.html
这就是我们最初复杂SQL的全部内容了。我们得到对应的表格结果后,可以通过SLS这边对应的跳转配置完成对应的分析操作,具体可配置如下:
image
配置DrillDown操作将数据进行可视化操纵
image
image
image
这样就可以实现对应的选择跳转了。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与CUDA:加速深度学习模型训练的最佳实践
【8月更文第27天】随着深度学习应用的广泛普及,高效利用GPU硬件成为提升模型训练速度的关键。PyTorch 是一个强大的深度学习框架,它支持动态计算图,易于使用且高度灵活。CUDA (Compute Unified Device Architecture) 则是 NVIDIA 开发的一种并行计算平台和编程模型,允许开发者直接访问 GPU 的并行计算能力。本文将详细介绍如何利用 PyTorch 与 CUDA 的集成来加速深度学习模型的训练过程,并提供具体的代码示例。
258 1
|
6月前
|
存储 Prometheus Cloud Native
SLS Prometheus存储问题之为什么SLS时序引擎最终选择了使用C++实现PromQL的部分算子
SLS Prometheus存储问题之为什么SLS时序引擎最终选择了使用C++实现PromQL的部分算子
|
5月前
|
机器学习/深度学习 数据采集 缓存
Elasticsearch与机器学习集成的最佳实践
【8月更文第28天】Elasticsearch 提供了强大的搜索和分析能力,而机器学习则能够通过识别模式和预测趋势来增强这些能力。将两者结合可以实现更智能的搜索体验、异常检测等功能。
148 0
|
6月前
|
人工智能 自然语言处理 算法
|
7月前
|
人工智能 自然语言处理 算法
阿里云PAI大模型评测最佳实践
在大模型时代,模型评测是衡量性能、精选和优化模型的关键环节,对加快AI创新和实践至关重要。PAI大模型评测平台支持多样化的评测场景,如不同基础模型、微调版本和量化版本的对比分析。本文为您介绍针对于不同用户群体及对应数据集类型,如何实现更全面准确且具有针对性的模型评测,从而在AI领域可以更好地取得成就。
|
8月前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
8月前
|
机器学习/深度学习 数据采集 数据挖掘
构建高效机器学习模型的最佳实践
【5月更文挑战第31天】 在数据驱动的时代,机器学习已成为创新的核心动力。本文深入探讨了构建高效机器学习模型的关键技术要点,包括数据预处理、特征工程、模型选择、调参策略及模型评估等环节。通过实例分析与经验总结,旨在为从业者提供实用的技术参考,以优化模型性能,提升项目成功率。
|
8月前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习中的特征工程最佳实践
【5月更文挑战第21天】 在机器学习领域,特征工程是模型性能优化的关键环节之一。本文将深入探讨特征工程的核心概念、方法及其在构建高效机器学习模型中的应用。文章不仅总结了实用的特征选择技巧和数据预处理策略,还介绍了如何通过自动化工具简化特征工程流程。通过案例分析,我们展示了在不同数据集上应用这些技术的效果,并讨论了特征工程在未来发展中的潜在趋势与挑战。
|
8月前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的最佳实践
【5月更文挑战第16天】 在数据驱动的时代,机器学习已成为创新的核心推动力。本文将深入探讨如何构建一个高效的机器学习模型,包括数据预处理、特征选择、模型训练与优化等关键步骤。通过实例分析和技术讲解,旨在为读者提供一套实用的技术指导和最佳实践方法,以支持其在复杂数据环境中实现准确预测和智能决策。
|
8月前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的最佳实践
【5月更文挑战第18天】 在数据驱动的时代,构建高效的机器学习模型已经成为企业获取竞争优势的关键。本文将深入探讨如何通过精确的数据预处理、合理的特征工程、高效的算法选择以及细致的模型调优等步骤,来提升模型的性能和预测准确度。我们还将讨论模型部署后的监控和维护策略,确保模型长期稳定运行。这些最佳实践不仅适用于初学者建立基础,也能帮助有经验的数据科学家优化现有工作流程。

相关产品

  • 日志服务