V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
awker
V2EX  ›  程序员

请教各位大佬,知道一个服务的在线时间点和宕机时间点,如何计算服务总的宕机时长?

  •  
  •   awker · 2022-03-30 17:36:01 +08:00 via iPhone · 868 次点击
    这是一个创建于 758 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如每分钟 curl 一个服务接口,成功返回 ok 和当前时间戳,失败返回 down 和当前时间戳
    ok 时间戳 1
    down 时间戳 2
    down 时间戳 3
    ok 时间戳 4
    down 时间戳 5
    ok 时间戳 6

    如何计算服务总的宕机时长?
    3 条回复    2022-03-30 17:46:33 +08:00
    devswork
        1
    devswork  
       2022-03-30 17:41:49 +08:00   ❤️ 1
    以 OK id=1 为例,查找下一次 ok 出现的 id ( 4 ),id-1 记录( 3 ) = 上一次宕机的时间戳,计算并存储宕机时长,然后查询 id = 上一次 ok 时的 id ( 4 ),循环遍历完数据表,时长求和
    devswork
        2
    devswork  
       2022-03-30 17:43:36 +08:00   ❤️ 1
    不断寻找 OK ,如果 OK 的上一个 id 还是 OK ,则直接 continue ,不计算
    clf
        3
    clf  
       2022-03-30 17:46:33 +08:00   ❤️ 1
    简单点,down 的数量*请求间隔 就行了,比如你上面 6 个请求,3 个 down ,那就是停机 3 分钟。

    毕竟是固定时间间隔请求的,不需要搞时序遍历去计算。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1395 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:45 · PVG 01:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.