比如每分钟 curl 一个服务接口,成功返回 ok 和当前时间戳,失败返回 down 和当前时间戳
ok 时间戳 1
down 时间戳 2
down 时间戳 3
ok 时间戳 4
down 时间戳 5
ok 时间戳 6
如何计算服务总的宕机时长?
ok 时间戳 1
down 时间戳 2
down 时间戳 3
ok 时间戳 4
down 时间戳 5
ok 时间戳 6
如何计算服务总的宕机时长?

1 devswork Mar 30, 2022 以 OK id=1 为例,查找下一次 ok 出现的 id ( 4 ),id-1 记录( 3 ) = 上一次宕机的时间戳,计算并存储宕机时长,然后查询 id = 上一次 ok 时的 id ( 4 ),循环遍历完数据表,时长求和 |
2 devswork Mar 30, 2022 不断寻找 OK ,如果 OK 的上一个 id 还是 OK ,则直接 continue ,不计算 |
3 clf Mar 30, 2022 简单点,down 的数量*请求间隔 就行了,比如你上面 6 个请求,3 个 down ,那就是停机 3 分钟。 毕竟是固定时间间隔请求的,不需要搞时序遍历去计算。 |