【发布时间】:2018-10-31 13:21:34
【问题描述】:
在我的应用程序中,我收集很多指标:硬件/本机系统指标(例如 CPU 负载、可用内存、交换内存、网络 IO 数据包和发送/接收字节等.) 以及 JVM 指标(垃圾收集器、堆大小、线程利用率等)以及应用级指标(仅对我的应用有意义的工具,例如每分钟的订单数等)。
在整个一周、一个月、一年中,我都会在这些指标中看到趋势/模式。例如,当 cron 作业都在午夜开始时,我看到 CPU 和磁盘在生成报告时出现抖动,等等。
我正在寻找一种方法来评估/评估指标是健康/正常还是不健康/异常,但这会考虑到这些模式。例如,如果 CPU 在每晚午夜(+/- 5 分钟)左右出现峰值,则应将其视为“正常”并且不会引发警报。但是,如果 CPU 在当天的“低潮”期间(例如上午 11:00 到中午之间)出现问题,那肯定会触发一些危险信号。
我有能力将我的指标存储在时间序列数据库中,如果这有助于启动这个分析过程,但我不知道我可以利用哪些算法、方法和策略来建立这些作为时间函数的周期性“基线”。显然,这样的系统需要预先播种,甚至需要使用映射到正常/异常值的历史数据进行训练(这就是为什么我要学习时间序列数据库作为底层存储的原因),但这是一个新领域对我来说,我什至不知道从什么开始谷歌搜索,以便在搜索结果中找回有意义/相关/受过教育的解决方案候选者。有什么想法吗?
【问题讨论】:
标签: algorithm machine-learning time-series baseline