zoukankan      html  css  js  c++  java
  • go go-metrics

     go-metrics介绍

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

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

    文档:http : //godoc.org/github.com/rcrowley/go-metrics

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

    Gauge

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

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

    Counter

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

    package main
    
    import (
    	"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 main
    
    import (
    	"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 int64
    	j = 1
    	for true {
    		time.Sleep(time.Second * 1)
    		j++
    		m.Mark(j)
    	}
    } 

    Histrogram

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

    Timer

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

  • 相关阅读:
    Python程序中的线程操作-锁
    线程基础
    博客园自动发布/更新博客系统
    Python程序中的进程操作-进程间通信(multiprocess.Queue)
    操作系统的发展史
    在 foreach 里使用引用要注意的陷阱(转)
    php 自定义求数组差集,效率比自带的array_diff函数还要快(转)
    php 二维数组转换成树状数组(转)
    PHP 发布两个不用递归的树形数组构造函数(转)
    php 二维数组以树形输出(转)
  • 原文地址:https://www.cnblogs.com/-wenli/p/12409018.html
Copyright © 2011-2022 走看看