系统监控

作者: 匆匆岁月 | 来源:发表于2022-06-29 17:00 被阅读0次

一、为什么监控,监控什么内容?

  • 对系统的运行状态了如指掌,有问题及时发现,而不让用户先发现我们系统不能使用。
  • 在应用程序中,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析。在很多时候,我们可能需要知道我们服务的运行情况,例如:
    • 每秒钟的请求数是多少(TPS)?
    • 平均每个请求处理的时间?
    • 请求处理的最长耗时?
    • 请求处理正确响应率?
    • 等待处理的请求队列长度?
    • 查看整个系统的的CPU使用率、内存占用、jvm运行情况;以及系统运行出错率等

二、监控的目的

  • 长期趋势分析:比如资源用量预测
  • 对照分析:比如两个版本系统运行资源使用情况差异
  • 告警:当系统出现或者即将出现故障时,监控系统需要迅速反应并通知管理员
  • 故障分析与定位:通过对不同监控以及历史数据分析,能快速找到并解决根源问题
  • 数据可视化:通过可视化仪表盘能直接获取系统运行情况、资源使用情况、以及服务运行状态等直观信息。

实时数据采集时,最简单的方法就是在系统的入口、出口和关键位置设置埋点,然后将采集到的信息发送到实时监控平台或者存入到缓存和DB中做进一步的分析和展示。

Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成各项数据的监控。

详见官方文档:https://metrics.dropwizard.io/3.1.0/manual/core/

一、Metrics 工具类库的介绍

Metrics提供5种基本的度量类型:Meters、Gauges、Counters、Histograms 和 Timers

1.设置maven依赖

<dependencies>
        <dependency>
            <groupId>io.dropwizard.metrics</groupId>
            <artifactId>metrics-core</artifactId>
            <version>3.2.6</version>
        </dependency>
        
        <dependency>
            <groupId>io.dropwizard.metrics</groupId>
            <artifactId>metrics-healthchecks</artifactId>
            <version>3.2.6</version>
        </dependency>
</dependencies>

2.Meters 的介绍与使用

//Meter(测量)是一种只能自增的计数器,通常用来度量一系列事件发生的概率。它提供了平均速率,以及指数平滑平均速率,以及采样后的1分钟,5分钟,15分钟的样例。
public class MetricsExample {
    
    //创建注册表
    private final static MetricRegistry registry = new MetricRegistry();
    
    //创建tps测量表
    private final static Meter requestMeter = registry.meter("tps");
    
    //创建异常测量表
    private final static Meter errorMeter = registry.meter("err_request");
    
    public static void main(String[] args) {
        
        //数据生成报告(按每分钟来统计)
        ConsoleReporter report = ConsoleReporter.forRegistry(registry)
                                    .convertRatesTo(TimeUnit.MINUTES)
                                    .convertDurationsTo(TimeUnit.MINUTES)
                                    .build();
        report.start(10, TimeUnit.SECONDS);    //每10秒将数据打印到控制台上
        
        for(;;){                              //模拟一直调用请求
            getAsk();                         //发送请求
            randomSleep();                     //间隔的发送请求
        }
    }
    //处理请求方法
    public static void getAsk(){
        try {
            requestMeter.mark();
            randomSleep();
            int x = 10/ThreadLocalRandom.current().nextInt(6);
        } catch (Exception e) {
            System.out.println("Error");
            errorMeter.mark();
        }
    }
    
    //模拟处理请求耗时
    public static void randomSleep(){
        try {
            TimeUnit.SECONDS.sleep(ThreadLocalRandom.current().nextInt(10));    //随机休眠时间
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
//打印结果如下
-- Meters ----------------------------------------------------------------------
err_request
count = 1
mean rate = 1.50 events/minute
1-minute rate = 0.75 events/minute
5-minute rate = 0.19 events/minute
15-minute rate = 0.07 events/minute
tps
count = 4
mean rate = 5.99 events/minute
1-minute rate = 8.85 events/minute
5-minute rate = 11.24 events/minute
15-minute rate = 11.74 events/minute

相关文章

  • 监控系统数据中心机房类型和维护

    监控系统数据中心机房监控系统也可以称为“自我监控系统”,主要是针对机房所有的设备及环境进行集中监控和管理的,其监控...

  • 模拟视频监控系统特点

    模拟无线监控系统是第一代监控系统,是带有磁带录像机的全模拟视频监控系统,也就是闭路电视监控系统。 该系统具有以下几...

  • Zabbix监控

    一、监控系统介绍 硬件-->系统-->应用监控:1.发现故障2.监控业务系统业务流量监控的两种方式:1.有agen...

  • 智能监控箱在平安城市建设中有什么作用?

    平安城市的建设离不开安防监控系统,而安防监控系统的建设更离不开智能监控箱,智能监控箱是安防监控系统的核心,它可对数...

  • 舆情系统

    舆情(监控)系统 、情感分类(系统)、细腻度的情感抽取 一、监控什么 新闻主体:监控人、金融:监控高管、法人、公司...

  • 描述常见监控系统及SNMP协议

    一、监控系统 1、监控系统概念 监控系统应用在监控硬件、软件和业务上,并及时获取相应的数据并分析保存数据,发送报警...

  • 水利泵站安全隔离防护解决方案

    水利泵站计算机监控系统(简称“监控系统”)是水利综合信息系统的核心。通过监控系统建设,可实现对水泵机组、供配电系统...

  • 线上监控

    监控类型 系统监控 系统监控更多是关注业务系统所在的环境及其资源的情况,简单理解就是能让系统正常运行起来的先决条件...

  • 安防监控系统的维护保养及管理

    一、 安防监控系统维护保养及管理 1.安防监控系统维护保养 1)为了做好监控设备的维护工作,日常要对监控系统的监测...

  • 监控系统选型Prometheus、TICK、Open-falco

    监控系统选型 Prometheus监控场景: 业务监控、性能监控、容器监控、微服务监控、部分应用监控(能够做的应用...

网友评论

    本文标题:系统监控

    本文链接:https://www.haomeiwen.com/subject/wanavrtx.html