當前位置: 首頁>>代碼示例>>Golang>>正文


Golang go-metrics.NewMeter函數代碼示例

本文整理匯總了Golang中github.com/rcrowley/go-metrics.NewMeter函數的典型用法代碼示例。如果您正苦於以下問題:Golang NewMeter函數的具體用法?Golang NewMeter怎麽用?Golang NewMeter使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了NewMeter函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: NewLocalMetrics

func NewLocalMetrics(reportInterval time.Duration) *LocalMetrics {
    metrics := LocalMetrics{
        Logger:         log.NewPrefixLogger("metrics"),
        reportInterval: reportInterval,
        windowsCounter: gometrics.NewCounter(),
        linuxCounter:   gometrics.NewCounter(),
        osxCounter:     gometrics.NewCounter(),
        otherCounter:   gometrics.NewCounter(),

        tunnelMeter:        gometrics.NewMeter(),
        tcpTunnelMeter:     gometrics.NewMeter(),
        httpTunnelMeter:    gometrics.NewMeter(),
        connMeter:          gometrics.NewMeter(),
        lostHeartbeatMeter: gometrics.NewMeter(),

        connTimer: gometrics.NewTimer(),

        bytesInCount:  gometrics.NewCounter(),
        bytesOutCount: gometrics.NewCounter(),

        /*
           metrics.tunnelGauge = gometrics.NewGauge(),
           metrics.tcpTunnelGauge = gometrics.NewGauge(),
           metrics.connGauge = gometrics.NewGauge(),
        */
    }

    go metrics.Report()

    return &metrics
}
開發者ID:0x19,項目名稱:ngrok,代碼行數:31,代碼來源:metrics.go

示例2: NewMetricsDB

func NewMetricsDB() *MetricsDB {
    return &MetricsDB{
        connections: mt.NewHistogram(mt.NewExpDecaySample(1028, 0.015)),
        queries:     mt.NewMeter(),
        executes:    mt.NewMeter(),
        rows:        mt.NewMeter(),
        affects:     mt.NewMeter(),
        timers:      &MeticsTimers{timers: make(map[string]mt.Timer)},
    }
}
開發者ID:najeira,項目名稱:goutils,代碼行數:10,代碼來源:metrics.go

示例3: NewMetricsHttp

func NewMetricsHttp() *MetricsHttp {
    return &MetricsHttp{
        clients:        mt.NewHistogram(mt.NewExpDecaySample(1028, 0.015)),
        clientsCounter: mt.NewCounter(),
        requests:       mt.NewTimer(),
        status2xx:      mt.NewMeter(),
        status3xx:      mt.NewMeter(),
        status4xx:      mt.NewMeter(),
        status5xx:      mt.NewMeter(),
    }
}
開發者ID:najeira,項目名稱:goutils,代碼行數:11,代碼來源:metrics.go

示例4: NewProcessCpuMetrics

func NewProcessCpuMetrics(prefix string) *ProcessCpuMetrics {
    cpu := &ProcessCpuMetrics{
        User:  gmetrics.NewMeter(),
        Sys:   gmetrics.NewMeter(),
        Total: gmetrics.NewMeter(),
    }

    gmetrics.Register(prefix+".cpu.user", cpu.User)
    gmetrics.Register(prefix+".cpu.sys", cpu.Sys)
    gmetrics.Register(prefix+".cpu.total", cpu.Total)

    return cpu
}
開發者ID:ninjasphere,項目名稱:mqtt-proxy,代碼行數:13,代碼來源:runtime.go

示例5: NewProxyMetrics

func NewProxyMetrics() ProxyMetrics {
    pm := ProxyMetrics{
        Requests:        gmetrics.NewMeter(),
        CmdReply:        gmetrics.NewMeter(),
        CmdForward:      gmetrics.NewMeter(),
        RequestBodySize: gmetrics.NewHistogram(gmetrics.NewExpDecaySample(1028, 0.015)),
    }

    gmetrics.Register("vulcan.proxy.requests", pm.Requests)
    gmetrics.Register("vulcan.proxy.cmd_reply", pm.CmdReply)
    gmetrics.Register("vulcan.proxy.cmd_forward", pm.CmdForward)
    gmetrics.Register("vulcan.proxy.request_body_size", pm.RequestBodySize)

    return pm
}
開發者ID:karlpilkington,項目名稱:golang-devops-stuff,代碼行數:15,代碼來源:metrics.go

示例6: NewUpstreamMetrics

func NewUpstreamMetrics(upstreamId string) UpstreamMetrics {
    hm := NewHttpMetrics(fmt.Sprintf("vulcan.upstream.%s", upstreamId))
    um := UpstreamMetrics{
        Requests:  gmetrics.NewMeter(),
        Failovers: gmetrics.NewMeter(),
        Latency:   gmetrics.NewTimer(),
        Http:      &hm,
    }

    gmetrics.Register(fmt.Sprintf("vulcan.upstream.%s.requests", upstreamId), um.Requests)
    gmetrics.Register(fmt.Sprintf("vulcan.upstream.%s.latency", upstreamId), um.Failovers)
    gmetrics.Register(fmt.Sprintf("vulcan.upstream.%s.failovers", upstreamId), um.Failovers)

    return um
}
開發者ID:karlpilkington,項目名稱:golang-devops-stuff,代碼行數:15,代碼來源:metrics.go

示例7: NewFileHandlerAdapter

func NewFileHandlerAdapter(updater Updater, factory mailfile.MailFileFactory) *FileHandlerAdapter {
    total := metrics.NewCounter()
    meter := metrics.NewMeter()
    metrics.Register("FileHandlerAdapter-Total", total)
    metrics.Register("FileHandlerAdapter-Size", meter)
    return &FileHandlerAdapter{updater, factory, total, meter}
}
開發者ID:postfix,項目名稱:spamdefender,代碼行數:7,代碼來源:filehandleradapter.go

示例8: NewHttp

func NewHttp() *Http {
    return &Http{
        Txns:     util.NewBroadcast(),
        reqGauge: metrics.NewGauge(),
        reqMeter: metrics.NewMeter(),
        reqTimer: metrics.NewTimer(),
    }
}
開發者ID:koolshare,項目名稱:ngrok-1.7,代碼行數:8,代碼來源:http.go

示例9: NewRocksDB

func NewRocksDB(path string) (*RocksDB, error) {
    opts := gorocksdb.NewDefaultOptions()
    filter := gorocksdb.NewBloomFilter(14)
    opts.SetFilterPolicy(filter)
    opts.SetMaxOpenFiles(10000)
    db, err := gorocksdb.OpenDbForReadOnly(opts, path, false)
    if err != nil {
        return nil, err
    }
    return &RocksDB{
        db:     db,
        ro:     gorocksdb.NewDefaultReadOptions(),
        hits:   metrics.NewMeter(),
        misses: metrics.NewMeter(),
        cache:  lru.New(1000000),
    }, nil
}
開發者ID:robcat,項目名稱:ripple,代碼行數:17,代碼來源:rocksdb.go

示例10: NewClientMetrics

func NewClientMetrics() *ClientMetrics {
    return &ClientMetrics{
        connGauge:       metrics.NewGauge(),
        connMeter:       metrics.NewMeter(),
        connTimer:       metrics.NewTimer(),
        proxySetupTimer: metrics.NewTimer(),
        bytesIn:         metrics.NewHistogram(metrics.NewExpDecaySample(sampleSize, sampleAlpha)),
        bytesOut:        metrics.NewHistogram(metrics.NewExpDecaySample(sampleSize, sampleAlpha)),
        bytesInCount:    metrics.NewCounter(),
        bytesOutCount:   metrics.NewCounter(),
    }
}
開發者ID:0x19,項目名稱:ngrok,代碼行數:12,代碼來源:metrics.go

示例11: addGCMetrics

func addGCMetrics(p *newrelic.Plugin) {
    numGC := metrics.NewMeter()
    pauseDur := metrics.NewMeter()
    pauseTime := metrics.NewHistogram(metrics.NewExpDecaySample(10000, 0.015))
    gcr := &gcReader{
        sampleRate: time.Second * 10,
        numGC:      numGC,
        pauseDur:   pauseDur,
        pauseTime:  pauseTime,
    }
    gcr.Run()

    nrmetrics.AddMeterMetric(p, numGC, nrmetrics.MetricConfig{Name: "GC/GC Pauses Per Second", Unit: "pauses", Rate1: true, Rate5: true, Rate15: true})
    nrmetrics.AddMeterMetric(p, pauseDur, nrmetrics.MetricConfig{Name: "GC/GC Pause Time Per Second", Unit: "nanoseconds", Rate1: true, Rate5: true, Rate15: true})
    nrmetrics.AddHistogramMetric(p, pauseTime, nrmetrics.MetricConfig{
        Name:        "GC/GC Time Per Pause",
        Unit:        "pauses",
        Duration:    time.Microsecond,
        Mean:        true,
        Percentiles: []float64{0.5, 0.75, 0.9, 0.99, 0.999},
    })
}
開發者ID:neocortical,項目名稱:gonr,代碼行數:22,代碼來源:gc.go

示例12: NewProxyMetrics

// conf.Environment, conf.Region
func NewProxyMetrics(env string, region string) ProxyMetrics {

    prefix := buildPrefix(env, region)

    pm := ProxyMetrics{
        Msgs:        gmetrics.NewMeter(),
        MsgReply:    gmetrics.NewMeter(),
        MsgForward:  gmetrics.NewMeter(),
        MsgBodySize: gmetrics.NewHistogram(gmetrics.NewExpDecaySample(1028, 0.015)),
        Connects:    gmetrics.NewMeter(),
        Connections: gmetrics.NewGauge(),
    }

    gmetrics.Register(prefix+".proxy.msgs", pm.Msgs)
    gmetrics.Register(prefix+".proxy.msg_reply", pm.Msgs)
    gmetrics.Register(prefix+".proxy.msg_forward", pm.Msgs)
    gmetrics.Register(prefix+".proxy.msg_body_size", pm.MsgBodySize)
    gmetrics.Register(prefix+".proxy.connects", pm.Connects)
    gmetrics.Register(prefix+".proxy.connections", pm.Connections)

    return pm
}
開發者ID:ninjasphere,項目名稱:mqtt-proxy,代碼行數:23,代碼來源:proxy.go

示例13: initializeFieldTagPath

// initializeFieldTagPath traverses the given struct trying to initialize
// metric values.  The "metric" struct tag is used to determine the name of the
// metrics for each struct field. If there is no "metric" struct tag, the
// lowercased struct field name is used for the metric name. The name is
// prefixed with tags from previous struct fields if any, separated by a dot.
// For example:
//
//     	Messages struct {
//          Smtp struct {
//              Latency metrics.Timer `metric:"latency"`
//          } `metric:"smtp"`
//          Http struct {
//              Latency metrics.Timer `metric:"latency"`
//          } `metric:"http"`
//      } `metric:"messages"`
//
// yields timers with names "messages.smtp.latency" and "messages.http.latency"
// respectively.
//
// If there is no metric tag for a field it is skipped and assumed it is used
// for other purposes such as configuration.
func (m *MetricTags) initializeFieldTagPath(fieldType reflect.Value, prefix string) {
    for i := 0; i < fieldType.NumField(); i++ {
        val := fieldType.Field(i)
        field := fieldType.Type().Field(i)

        tag := field.Tag.Get("metric")
        if tag == "" {
            // If tag isn't found, derive tag from the lower case name of
            // the field.
            tag = strings.ToLower(field.Name)
        }
        if prefix != "" {
            tag = prefix + m.separator + tag
        }

        if field.Type.Kind() == reflect.Struct {
            // Recursively traverse an embedded struct
            m.initializeFieldTagPath(val, tag)
        } else if field.Type.Kind() == reflect.Map && field.Type.Key().Kind() == reflect.String {
            // If this is a map[string]Something, then use the string key as bucket name and recursively generate the metrics below
            for _, k := range val.MapKeys() {
                m.initializeFieldTagPath(val.MapIndex(k).Elem(), tag+m.separator+k.String())
            }
        } else {
            // Found a field, initialize
            switch field.Type.String() {
            case "metrics.Counter":
                c := metrics.NewCounter()
                metrics.Register(tag, c)
                val.Set(reflect.ValueOf(c))
            case "metrics.Timer":
                t := metrics.NewTimer()
                metrics.Register(tag, t)
                val.Set(reflect.ValueOf(t))
            case "metrics.Meter":
                m := metrics.NewMeter()
                metrics.Register(tag, m)
                val.Set(reflect.ValueOf(m))
            case "metrics.Gauge":
                g := metrics.NewGauge()
                metrics.Register(tag, g)
                val.Set(reflect.ValueOf(g))
            case "metrics.Histogram":
                s := metrics.NewUniformSample(1028)
                h := metrics.NewHistogram(s)
                metrics.Register(tag, h)
                val.Set(reflect.ValueOf(h))
            }
        }
    }
}
開發者ID:sendgrid,項目名稱:tagtrics,代碼行數:72,代碼來源:tagtrics.go

示例14: NewHttpMetric

func NewHttpMetric() *HttpMetric {
    x := &HttpMetric{
        Requests: metrics.NewCounter(),
        Rate:     metrics.NewMeter(),

        Responses2xx: metrics.NewCounter(),
        Responses3xx: metrics.NewCounter(),
        Responses4xx: metrics.NewCounter(),
        Responses5xx: metrics.NewCounter(),
        ResponsesXxx: metrics.NewCounter(),
        Latency:      metrics.NewHistogram(metrics.NewExpDecaySample(1028, 0.015)),
    }
    return x
}
開發者ID:hanjinze,項目名稱:gorouter,代碼行數:14,代碼來源:varz.go

示例15: NewProcessMemoryMetrics

func NewProcessMemoryMetrics(prefix string) *ProcessMemoryMetrics {

    mem := &ProcessMemoryMetrics{
        Resident:   gmetrics.NewGauge(),
        Shared:     gmetrics.NewGauge(),
        PageFaults: gmetrics.NewMeter(),
    }

    gmetrics.Register(prefix+".mem.resident", mem.Resident)
    gmetrics.Register(prefix+".mem.shared", mem.Shared)
    gmetrics.Register(prefix+".mem.pagefaults", mem.PageFaults)

    return mem
}
開發者ID:ninjasphere,項目名稱:mqtt-proxy,代碼行數:14,代碼來源:runtime.go


注:本文中的github.com/rcrowley/go-metrics.NewMeter函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。