本文目录

1 Metric Registry

2 Reporter

3 Metric

4 Snapshot 数据快照

5 完整示例代码


1 Metric Registry

存放所有Metrics的容器,以Name-Metric(Key-Value)形式维护其中的Metric对象。

2 Reporter

定期将Metric Registry对象发送至监控服务器,即定期将其中存放的所有Metric对象发送给监控服务器。

3 Metric

3.1 Gauge/RatioGauge 数值/比率

gauge.getValue()

获取数值

gauge.getRatio()

获取比率

3.2 Counter 计数

counter.inc()

增加1次

counter.inc(long n)

增加n次

counter.dec()

减少1次

counter.dec(long n)

减少n次

counter.getCount()

获取当前次数

3.3 Meter 频率

meter.mark()

记录1次

meter.mark(long n)

记录n次

meter.getCount()

自创建Meter时起,一共mark多少次;

meter.getMeanRate()

自创建Meter时起,平均每秒mark多少次;

meter.getOne/Five/FifteenMinuteRate()

最近1/5/15分钟,每秒mark的指数加权移动平均值;

3.4 Histogram 统计数据

histogram.update(int/long n)

增加一个n值记录

histogram.getCount()

获取记录总个数

histogram.getSnapshot()

获取当前快照

3.5 Timer 计时(Meter+ Histogram)

Context ctx = timer.time()

开始计时

ctx.stop()

结束计时,记录1次,增加一个计时值记录;

内部:meter.mark() + histogram.update(time)

timer.update(long duration, TimeUnit unit)

记录1次,增加一个计时值duration记录,单位由unit指定;

timer.getCount/getMeanRate/getOne/Five/FifteenMinuteRate()

详见Meter对应方法

timer.getSnapshot()

获取当前快照

4 Snapshot 数据快照

snapshot.size()

获取记录总个数

snapshot.getValues()

获取记录数组

snapshot.getValue(double quantile)

获取指定百分位记录值

snapshot.getMin/Max/Median/Mean()

获取其中最小值/最大值/中位值/平均值

snapshot.get75/95/98/99/999thPercentile()

获取75/95/98/99/99.9百分位记录值

5 完整示例代码

public static void main(String[] args) {// 创建 Metric Registry 对象MetricRegistry registry = new MetricRegistry();// 创建 Reporter 并绑定 Metric Registry 对象(本示例:创建一个控制台Reporter)ConsoleReporter reporter = ConsoleReporter.forRegistry(registry).build();// 定期将 Metric Registry 对象内容发送至监控服务器(本示例:发送至控制台)reporter.start(5, TimeUnit.SECONDS);// 模拟一群玩家final Set<Object> players = new HashSet<>();// Gauge : 获取玩家数量// 每次Report时,当场计算(获取)当前玩家的数量。registry.register("gauge", new Gauge<Integer>() {@Overridepublic Integer getValue() {return players.size();}});// Counter : 计数玩家数量// 每次Report时,通过counter.getCount()方法,直接得到当前玩家的数量。Counter counter = registry.counter("counter");// 新加入1个玩家counter.inc();// 新加入10个玩家counter.inc(10);// 离开1个玩家counter.dec();// 离开5个玩家counter.dec(5);// Meter : 计算击杀频率// 每次Report时,会通过相应的方法,得到总击杀数/平均每秒击杀数/近1分钟内平均每秒击杀数等。Meter meter = registry.meter("meter");// 发生一次击杀meter.mark();// Histograms : 统计每场击杀数量// SlidingTimeWindowReservoir表示仅统计近期某一段时间的数据(示例中指定为近7天的数据)Histogram histogram = new Histogram(new SlidingTimeWindowReservoir(7, TimeUnit.DAYS));registry.register("histogram", histogram);// 完成一场比赛并击杀33次histogram.update(33);// 完成一场比赛并击杀17次histogram.update(17);// Timer : 统计每场游戏时间// SlidingTimeWindowReservoir表示仅统计近期某一段时间的数据(示例中指定为近7天的数据)Timer timer = new Timer(new SlidingTimeWindowReservoir(7, TimeUnit.DAYS));registry.register("timer", timer);// 新一场游戏开始Context ctx = timer.time();// 游戏结束:场次增加1次,记录本场游戏时间。ctx.stop();
}

Metrics 简介相关推荐

  1. Python sklearn机器学习各种评价指标——Sklearn.metrics简介及应用示例

    Python Sklearn.metrics 简介及应用示例 利用Python进行各种机器学习算法的实现时,经常会用到sklearn(scikit-learn)这个模块/库. 无论利用机器学习算法进行 ...

  2. python的metrics_Python Sklearn.metrics 简介及应用示例

    Python Sklearn.metrics 简介及应用示例 利用Python进行各种机器学习算法的实现时,经常会用到sklearn(scikit-learn)这个模块/库. 无论利用机器学习算法进行 ...

  3. Media.Metrics简介

    背景 前几日分析遇到一个客户问题:客户长时间Monkey 煲机,发现一个叫media.metrics进程,该进程的内存一直增长到160+M左右后才稳定.所以简单分析了下该进程. codePath /f ...

  4. 【Flink】Metrics运作机制

    1.概述 转载并且补充:Flink源码剖析:Metrics运作机制 1. Metrics简介 1.1 什么是 Metrics? Flink 提供的 Metrics 可以在 Flink 内部收集一些指标 ...

  5. (深度学习评估指标)——MS COCO detection evaluation metrics

    这篇文章可以教会你如何看论文最下面的评价指标曲线图. 目前网上关于coco metrics的翻译都比较差,希望以此提高整体水平. 如有不足,还请指教! 1.概述: 本文介绍MC COCO数据集用到的M ...

  6. 一口气搞懂「Flink Metrics」监控指标和性能优化,全靠这33张图和7千字(建议收藏)

    前言 大家好,我是土哥. 最近在公司做 Flink 推理任务的性能测试,要对 job 的全链路吞吐.全链路时延.吞吐时延指标进行监控和调优,其中要使用 Flink Metrics 对指标进行监控. 接 ...

  7. flink实战--metrics监控与rest api

    Flink metrics简介 Flink的metrics是Flink公开的一个度量系统,metrics也可以暴露给外部系统,通过在flink配置文件conf/flink-conf.yaml配置即可, ...

  8. Sklearn.metrics函数

    Python Sklearn.metrics 简介及应用示例 利用Python进行各种机器学习算法的实现时,经常会用到sklearn(scikit-learn)这个模块/库. 无论利用机器学习算法进行 ...

  9. Yammer Metrics的使用

    Yammer Metrics简介 最近用到的某个框架,其官网提到利用Yammer Metrics来测量系统运行状态,需要对其统计的具体参数有个基本的了解,OK,那就需要弄清几个简单的问题: Yamme ...

最新文章

  1. DSP unresolved symbol问题的解决
  2. [原创]按键小精灵9通用去广告破解补丁
  3. 自反ACL访问控制列表的应用
  4. 【目录】python全栈工程师自动化+Py全栈+爬虫+Ai+python全栈工程师
  5. .NET新手系列(五)
  6. boost::locale::to_upper用法的测试程序
  7. python库--pandas--Series.str--字符串处理
  8. 160429、nodejs--Socket.IO即时通讯
  9. Springboot项目jar包部署Linux
  10. 使用QT调用FFMPEG库部署到Android设备、完成视频音频应用开发
  11. C4D如何将界面和参数设置快速恢复到默认值?
  12. 润乾报表简单报表制作流程(胎盘级教程)
  13. 解决layui form组件使用botton按钮提交页面自动刷新问题
  14. 概率论与数理统计--笔记
  15. Power收集[单调队列+DP]
  16. MysqlWorkbench中无法显示表[tables could not be fetched]
  17. 股票策略:A股三季度配置偏向成长股
  18. 【建立个人品牌】自媒体人必须知道的28个新媒体平台
  19. 鸿蒙os2.0主页,华为鸿蒙os2.0系统支持的手机型号,华为鸿蒙系统官方下载入口
  20. 搭建Windows下Android应用开发环境——Eclipse/Android/ADT

热门文章

  1. LeetCode第874题解析
  2. 5.5 jmeter组件—取样器
  3. pcb只开窗不镀锡_关于pads中 PCB铺铜开窗镀锡 的操作
  4. 《OpenCv视觉之眼》Python图像处理十二 :Opencv图像轮廓提取之基于一阶导数的Roberts算法、Prewitt算法及Sobel算法
  5. yii2 使用redis
  6. Jenkins 管理员 admin 密码找回
  7. SCTF2021 pwn Christmas Song 出题思路+预期解
  8. 王道数据结构2.2.4——1、设计递归算法删除不带头结点的单链表L中所有值为x的结点
  9. Oracle 数据库的性能优化
  10. elasticsearch压力测试工具之ESrally使用说明