Metrics 简介

本文目录

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>() {
    @Override
    public 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();
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
出现"AttributeError: module 'sklearn.metrics' has no attribute 'SCORERS'"的错误,说明在sklearn.metrics模块中没有名为"SCORERS"的属性。 要解决这个问题,您可以尝试以下几个步骤: 1. 确保您的sklearn版本符合要求。请确保您使用的是最新版本的scikit-learn库。您可以通过运行以下命令来更新scikit-learn库: ``` pip install -U scikit-learn ``` 2. 检查您的导入语句。确保您的导入语句正确,并且导入了所需的模块和类。在这种情况下,您可以尝试导入sklearn.metrics模块并检查是否存在"SCORERS"属性: ``` import sklearn.metrics print(sklearn.metrics.SCORERS) ``` 如果没有错误提示,并且打印出了SCORERS属性的内容,那么问题可能不在这个地方。否则,您可以继续进行下一步。 3. 检查您的scikit-learn安装。有时候,安装过程可能会出现问题,导致某些属性无法正确导入。您可以尝试重新安装scikit-learn库,以确保所有的依赖项都正确安装。 希望这些步骤能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我能够提供更准确的帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [AttributeError: module 'tensorflow.compat.v1' has no attribute '](https://download.csdn.net/download/qq_38766019/86272235)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [sklearn:sklearn.GridSearchCV函数的简介、使用方法之详细攻略](https://blog.csdn.net/qq_41185868/article/details/104510145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值