【问题标题】:Algorithms for establishing baselines from time series data从时间序列数据建立基线的算法
【发布时间】:2018-10-31 13:21:34
【问题描述】:

在我的应用程序中,我收集很多指标:硬件/本机系统指标(例如 CPU 负载、可用内存、交换内存、网络 IO 数据包和发送/接收字节等.) 以及 JVM 指标(垃圾收集器、堆大小、线程利用率等)以及应用级指标(仅对我的应用有意义的工具,例如每分钟的订单数等)。

在整个一周、一个月、一年中,我都会在这些指标中看到趋势/模式。例如,当 cron 作业都在午夜开始时,我看到 CPU 和磁盘在生成报告时出现抖动,等等。

我正在寻找一种方法来评估/评估指标是健康/正常还是不健康/异常,但这会考虑到这些模式。例如,如果 CPU 在每晚午夜(+/- 5 分钟)左右出现峰值,则应将其视为“正常”并且不会引发警报。但是,如果 CPU 在当天的“低潮”期间(例如上午 11:00 到中午之间)出现问题,那肯定会触发一些危险信号。

我有能力将我的指标存储在时间序列数据库中,如果这有助于启动这个分析过程,但我不知道我可以利用哪些算法、方法和策略来建立这些作为时间函数的周期性“基线”。显然,这样的系统需要预先播种,甚至需要使用映射到正常/异常值的历史数据进行训练(这就是​​为什么我要学习时间序列数据库作为底层存储的原因),但这是一个新领域对我来说,我什至不知道从什么开始谷歌搜索,以便在搜索结果中找回有意义/相关/受过教育的解决方案候选者。有什么想法吗?

【问题讨论】:

    标签: algorithm machine-learning time-series baseline


    【解决方案1】:

    您可以将每个指标(CPU 负载、可用内存、交换内存、网络 IO)与日期和时间分类为每个指标的好坏。 在给定的时间范围内提供一组数据,其中包含度量值以及它们是好是坏。使用 70% 的数据以及数据中的好答案和坏答案来训练模型。 然后使用其他 30% 的没有答案的数据来测试经过训练的模型,看看您是否从模型中获得了预测结果(好、坏)。您可以使用分类算法。

    【讨论】:

      猜你喜欢
      • 2019-12-31
      • 2013-06-20
      • 2019-12-07
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 2017-02-11
      相关资源
      最近更新 更多