为什么后台系统中需要Metrics组件

Metrics,谷歌翻译就是度量的意思。当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。基本上每一个服务、应用都需要做一个监控系统,这需要尽量以少量的代码,实现统计某类数据的功能。 例如对于图片压缩服务来说 每秒钟的请求数是多少? 平均每个请求处理的时间? 请求处理的最长耗时? 等待处理的请求队列长度? 例如对于缓存服务来说 缓存的命中率? 平均查询缓存的时间? 五种常用的Metrics类型 以 Java 为例,目前最为流行的 metrics 库是来自 Coda Hale 的 dropwizard/metrics,该库被广泛地应用于各个知名的开源项目中。例如 Hadoop,Kafka,Spark,JStorm 中。 Meter Meter可以mark事件发生的次数,并且通过getCount方法返回事件发生的次数。Meter对象提供四种速率,分别是表示最近一分钟、最近五分钟、最近一个季度和整个Meter生命周期的平均速率。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Meter meter = new Meter(); long initCount = meter.getCount(); assertThat (initCount, equalTo(0L)); meter.mark(); assertThat (meter.getCount(), equalTo(1L)); meter.mark(20); assertThat (meter.getCount(), equalTo(21L)); double meanRate = meter.getMeanRate(); double oneMinate = meter.getOneMinuteRate(); double fiveMinate = meter.getFiveMinuteRate(); double fifteenMinRate = meter....

May 19, 2023