Tod*_*oks 6 algorithm statistics formula
我有几百个网络设备每10分钟检入我们的服务器.每个设备都有一个嵌入式时钟,计算每次检入服务器时的秒数和报告经过的秒数.因此,示例数据集看起来像
CheckinTime Runtime
2010-01-01 02:15:00.000 101500
2010-01-01 02:25:00.000 102100
2010-01-01 02:35:00.000 102700
Run Code Online (Sandbox Code Playgroud)
等等
如果设备重新启动,则当它重新检入服务器时,它会报告运行时为0.
我想要确定的是设备"健康"的某种量化指标.
如果设备过去重启了很多但是在最近的xx天没有重新启动,那么它被认为是健康的,相比之下具有很长正常运行时间的设备除了重复重启的最后xx天之外.此外,与最近xx天每24小时不断重启的设备相比,设备已经运行了30天并且刚刚重新启动,不应该被视为"苦恼".
我尝试了多种计算健康状况的方法,使用各种指标:1.平均重启次数2.最大值(正常运行时间)3.平均值(正常运行时间)4.最近24小时重启次数5.重启次数过去3天6.过去7天内重新启动次数7.过去30天内重新启动次数
每个单独的度量标准仅考虑设备运行状况的一个方面,但不考虑与其他设备相比的总体运行状况或其当前的运行状况.
任何想法都会非常感激.
您可以执行类似Windows 7可靠性指标的操作 - 从完全健康状态开始(比如说10).每小时/每天/签入周期,增加健康(10 - currenthealth)*incrementfactor).每次服务器关闭时,减去一定的百分比.
因此,给出20%/崩溃的崩溃因子和10%/天的增量因子:
如果设备在过去重新启动但在过去20天内未重新启动,则运行状况为8.6
除了过去2天重复重启5次之外的大的正常运行时间将具有4.1的健康状况
已启动30天且刚重启的设备的运行状况为8
在过去10天内每24小时不断重启的设备的健康状况为3.9
要运行一个示例:
从第10
天开始:没有崩溃,new health = CurrentHealth + (10 - CurrentHealth)*.1 = 10
第2天:一次崩溃,new health = currenthealth - currentHealth*.2 = 8
但仍然每天增加所以new health = 8 + (10 - 8)*.1 = 8.2
第3天:没有崩溃,新的健康= 8.4
第4天:两次崩溃,新的健康= 5.8