【2016-08-05】

本文介绍了如何使用Metrics进行系统监控统计,包括TPS、QPS等性能指标,并通过webx框架实现多维度数据统计,最后利用grafana进行数据可视化。

-->  监控统计

今天学到东西比较少,主要全部是一些统计监控方面的零碎知识点。总结如下。


要做监控统计,一定要了解的一个词是 Metrics,翻译为“度量”的意思。当我们对系统中的某一个服务做统计时,可以方便的使用Metrics对系统的各种性能指标以及自定义的一些维度进行统计。如统计TPS(系统每秒处理的事务数量)、QPS(系统每秒处理的请求数量)、RT(响应时间),或者是从业务层面,某一个方法的调用次数、对某一个用户所做的数据统计等等。


我使用的是webx,先说一下基本流程:

1、 先在web的配置文件的pipeline.xml中,在业务合适的数据添加<pl-valves:valve class="XXX">,其中“XXX”是自己定义的处理文件,它要继承自AbstractValve。

2、 在 XXX.class 中编写Metrics的操作,重点就是为此次统计创建一个Measurement,为此url调用过程中所能获得到的所有数据进行添加标签,这次统计QPS,那么为数据添加一个标签(这个标签是作为后来SQL查询时用的),然后通过Measurement的方法进行统计。注意,使用Measurement时,统计到的数据会根据标签自动写入相应的表中。因此不需要想传统数据库那样,要提前编写结构化的库表。

3、 在grafana这边,只需要为一个图表添加合适的数据库,以及合适的SQl语句就可以查询到数据了,比如select后面的字段就可以填写QPS。

4、 这时候就会出数据了。


但是问题来了,我想通过其他的指标来查,是不是还要重复上面的过程呢?不用!!!

为什么呢?举个栗子。

1、假设我们请求一个url:http://localhost:port/abc.json ,然后走上面的那个基本流程。

2、在XXX.class文件中,我们可以获取到url,那么也可以获取到此次请求过程中所有可用的系统数据,然后我们打标签(QPS),入库。

3、从grafana就可以查到数据了。

4、我又想从RT维度监控,还是同样的请求,那么想一下,在XXX.calss中,获取到的数据是不是一样得呢?只不过是我们从另一个维度查询相同的数据而已,是不是呢?


所以,我们没有必要再把代码在写一遍,对于同一个或同一种url,我们只需要对相同的数据通过不容维度打上不同的标签就行了,然后具体的数据我们通过grafana配置的SQL,用打的标签进行区分查询就行了。就是这么简单。


with_progress({ + # 初始化进度条 + p <- progressor(along = 1:2) + + # 执行100次置换 + placebo_dist <- manual_placebo(data, n_permute = 2) + }) One outcome and one treatment time found. Running single_augsynth. One outcome and one treatment time found. Running single_augsynth. Warning message: In handle_progression(condition, debug = debug) : Received a progression ‘update’ request (amount=1; msg=‘character(0)’) but is not listening to this progressor. This can happen when code signals more progress updates than it configured the progressor to do. When the progressor completes all steps, it shuts down resulting in the global progression handler to no longer listen to it. To troubleshoot this, try with progressr::handlers("debug") > # 清理内存碎片 > gc() used (Mb) gc trigger (Mb) max used (Mb) Ncells 2983096 159.4 5026872 268.5 5026872 268.5 Vcells 10326783 78.8 36845423 281.2 112127404 855.5 > # 5. 结果查看 ------------------------------------------------------------------ > # 查看前10次置换结果 > print(head(placebo_dist, 10)) Time Estimate lower_bound upper_bound p_val permutation pseudo_unit 2016-04-01...1 2016-04-01 -0.18368508 NA NA NA 1 1 2016-04-02...2 2016-04-02 -0.31366935 NA NA NA 1 1 2016-04-03...3 2016-04-03 -0.49916072 NA NA NA 1 1 2016-04-04...4 2016-04-04 0.30554081 NA NA NA 1 1 2016-04-05...5 2016-04-05 -0.33573735 NA NA NA 1 1 2016-04-06...6 2016-04-06 0.07909620 NA NA NA 1 1 2016-04-07...7 2016-04-07 -0.21757939 NA NA NA 1 1 2016-04-08...8 2016-04-08 -0.45763920 NA NA NA 1 1 2016-04-09...9 2016-04-09 0.07273611 NA NA NA 1 1 2016-04-10...10 2016-04-10 0.17557989 NA NA NA 1 1 >
最新发布
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值