go-metrics介绍

go-metrics — 对Go应用的某个服务做监控、做统计,应用级监控和测量。

源码 : https://github.com/rcrowley/go-metrics

文档:https://pkg.go.dev/github.com/rcrowley/go-metrics

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

Gauge

Gauge是最简单的度量类型,只有一个简单的返回值,
他用来记录一些对象或者事物的瞬时值。
类似于程序里的常量,是不变的值。

package mainimport ("github.com/rcrowley/go-metrics"
)
func main(){g := metrics.NewGauge()metrics.Register("bar", g)g.Update(1)print(g.Value())//1g.Update(5)print(g.Value())//5
} 

Counter

Counter是一个简单的计数器,可以增加和减少。
可以通过inc()和dec()方法对计数器做修改。

package mainimport ("github.com/rcrowley/go-metrics"
)
func main(){c := metrics.NewCounter()metrics.Register("foo", c)c.Inc(45)c.Dec(3)print(c.Count())/42
}

Meter

Meters用来度量某个时间段的平均处理次数(request per second),每1、5、15分钟的TPS。比如一个service的请求数,通过metrics.meter()实例化一个Meter之后,然后通过meter.mark()方法就能将本次请求记录下来。统计结果有总的请求数,平均每秒的请求数,以及最近的1、5、15分钟的平均TPS。

Meters工具会帮助我们统计系统中某一个事件的速率。比如每秒请求数(TPS),每秒查询数(QPS)等等。这个指标能反应系统当前的处理能力,帮助我们判断资源是否已经不足。Meters本身是一个自增计数器。

package mainimport ("time""os""github.com/rcrowley/go-metrics""log"
)func main(){m := metrics.NewMeter()metrics.Register("quux", m)m.Mark(1)go metrics.Log(metrics.DefaultRegistry,1 * time.Second,log.New(os.Stdout, "metrics: ", log.Lmicroseconds))var j int64j = 1for true {time.Sleep(time.Second * 1)j++m.Mark(j)}
}

Histrogram

Histrogram是用来度量流数据中Value的分布情况,Histrogram可以计算最大/小值、平均值,方差,分位数(如中位数,或者95th分位数),如75%,90%,98%,99%的数据在哪个范围内。

Timer

Timer是Histogram跟Meter的一个组合,比如要统计当前请求的速率和处理时间。

Go go-metrics相关推荐

  1. Kubernetes基于Metrics Server的HPA

    Kubernetes基于Metrics Server的HPA [TOC] 1. 环境说明和相关介绍 我的kubernetes环境: kubeadm安装的kubernetes1.11 Horizonta ...

  2. 评测指标(metrics)

    评测指标(metrics) metric主要用来评测机器学习模型的好坏程度,不同的任务应该选择不同的评价指标, 分类,回归和排序问题应该选择不同的评价函数. 不同的问题应该不同对待,即使都是 分类问题 ...

  3. 回归模型(regression model)有哪些指标?如何计算回归指标(regression metrics)?如何可视化他们?

    回归模型(regression model)有哪些指标?如何计算回归指标(regression metrics)?如何可视化他们? metrics.explained_variance_score(y ...

  4. 【pytorch】Metrics的工作原理

    Metrics是torchmetrics库里的度量类基类,本篇大体介绍一下它是如何工作的 它也是一个Model 由类的定义可以看到,它继承与两个类,一个是我们熟悉的Module,另外一个是ABC,所以 ...

  5. java度量页面_JAVA Metrics 度量工具使用介绍1

    Metrics是一个给JAVA提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同一时候,Metrics可以非常好的跟Ganlia.Graphite结合 ...

  6. Ambari安装之部署 (Metrics Collector和 Metrics Monitor) Install Pending ...问题

    问题详细描述如下:  Metrics Collector的解决办法 正在重新安装 Metrics  Monitor的解决办法 Metrics Collector和 Metrics Monitor 的I ...

  7. ValueError: Classification metrics can‘t handle a mix of multiclass and unknown targets

    ValueError: Classification metrics can't handle a mix of multiclass and unknown targets Keras显示召回率(c ...

  8. sklearn(五)计算acc:使用metrics.accuracy_score()计算分类的准确率

    sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None) 输入参数: y_true:真 ...

  9. sequential模型编译时的指标设置:sklearn.metrics:指标

    sklearn.metrics: Metrics 官网是最好的学习区. See the Model evaluation: quantifying the quality of predictions ...

  10. vCenter and Memory metrics

    vCenter and Memory metrics I received a question last week from a former colleague around some of th ...

最新文章

  1. idea svn的项目无法标识修改新增的类_是时候让你的 IDEA 飞起来啦!
  2. Win2K下关联进程/端口之代码初步分析
  3. 32位python-64位Python调用32位DLL方法(一)
  4. leetcode算法题--不同路径
  5. Python学习笔记(四)Python函数
  6. 如何查看header object和category 03的IBASE的relationship关系
  7. java 内存机制(堆和栈),内存地址
  8. mysql床数据库的命令_3种PHP连接MYSQL数据库的常用方法
  9. Hive 之 导入导出数据
  10. 《『若水新闻』客户端开发教程》——15代码编写(7)
  11. 怎样对ListView的项进行排序
  12. Lecture 6:值函数近似
  13. mysql中的concat和group_concat的用法
  14. Vue_(组件)实例属性
  15. libyuv库简单使用
  16. 解压软件安装包,winrar
  17. 问题解决——WSAAsyncSelect模型 不触发 FD_CLOSE
  18. openbsd mysql_在OpenBSD上运行MyDNSNameservers(MySQL / PHP + MyDNS + MyDNSConfig)
  19. Win7: Logoff被用户Lock的屏幕
  20. 华为云BI,真正的一站式BI解决方案

热门文章

  1. WGAN的成功,可能跟Wasserstein距离没啥关系
  2. 强化学习中的调参经验与编程技巧(on policy篇)
  3. 切分也重要:基于多粒度语言单元切分的BERT模型
  4. ACL 2019开源论文 | 基于图匹配神经网络的跨语言知识图对齐
  5. 数字图像处理与Python实现笔记之空间滤波
  6. ps ico插件_常用 PS 插件合集(1)
  7. 跑monkey需要安装什么_安装隔音吊顶需要注意什么 隔音吊顶材料推荐
  8. springmvc多个视图解析器管理跳转资源
  9. 14秋 c 语言程序设计 在线作业1,14秋学期《C语言及程序设计》在线作业
  10. 完全二叉树最小深度_树与二叉树递归c++