• 服务可用性设计


    一、统计指标
    根据普罗米修斯Prometheus中的up指标,按照分钟记录服务不可用的记录数
    up指标:up{application=“agr-ecos.admin”,instance=“30.79.8.41:43950”,job=“agr-ecos”} 当实例下线时为0,实例上线时为1
    1、判断服务不可用逻辑
    服务在某个分钟里,所有实例的up指标全为0,如果满足条件则记录入库(为了可以删除,存储至Pg库)
    2、统计逻辑
    a)定时任务查询前1h中up为0的指标,若存在记录,则遍历up为0的服务,根据服务名查询对应的事件段的up数据
    b)按天统计不可用持续时间和当天不可用分钟数,若服务不可用跨天则需要在第二天统计时,更新不可用持续时间和结束时间
    c)删除数据时需要重新统计
    二、表结构设计
    1、服务不可用明细表: tb_service_disabled_record

    fieldtypecomment
    service_namevarchar服务名
    disable_timetimestamp不可用出现时间(分钟)
    instance_numint实例数量

    2、服务不可用时间统计表:tb_service_disabled_duration

    fieldtypecomment
    service_namevarchar服务名
    disable_start_timetimestamp不可用开始时间
    disable_durationint不可用持续时间
    disable_end_timetimestamp不可用结束时间

    有跨天不可用时,则在第二天更新disable_duration 和disable_start_time
    3、服务不可用按天统计表:tb_service_disabled_daily_statistic

    fieldtypecomment
    service_namevarchar服务名
    disable_minutesint不可用时间
    statistic_daydate日期

    三、接口设计
    1、按周,月,年统计服务可用率,不可用分钟数,最长不可用时间
    2、最近一周topK不可用服务列表
    3、最近一个月topK不可用服务列表
    4、各个系统不可用服服务列表

  • 相关阅读:
    【Ansible】04
    Vue3 分页
    什么是 SMB 服务器以及它如何工作?
    计算机网络的标准化工作及相关组织
    【Linux操作系统】信号的产生&&捕获
    【C++】菱形继承和虚继承
    如何在Flutter中实现网络请求
    stack栈、queue队列、list链表容器
    scrapy框架--
    Ubuntu 22.04 MySQL安装并设置远程访问
  • 原文地址:https://blog.csdn.net/m0_38068812/article/details/133963578