statsdlib

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

README

概述

golang的业务程序,可以通过statsdlib,接入metrics统计服务。

使用

业务代码引入statsdlib包,在代码片段中调用statsdlib的API。比如,用户想要统计rpc请求数据,可以调用RpcMetric方法。

package xxx

import (
	"time"
	statsd "github.com/n9e/metrics/golang/statsdlib"
)

func foo(rpcSrv string) {
	startT := time.Now()

	result, err := doRpc(rpcSrv)

	latency := time.Now().Sub(startT)
	caller := "foo"
	callee := rpcSrv

	if ( err!=nil ) {
		statsd.RpcMetric("rpc", caller, callee, latency, "rpcFunc.error")
		return		
	} else {
		statsd.RpcMetric("rpc", caller, callee, latency, "ok")		
	}

	....
}

API

几个常用接口,如下。

接口名称 例子 使用场景
Counter(name string) // 统计调用次数加1
Counter("api.checkhealth")
Counter输出一个统计周期内的计数累加和
RpcMetric(metric,caller,callee string, latency time.Duration, code string) // 统计接口调用质量
RpcMetric("rpc","caller", "callee", time.Second*1, "ok")
RpcMetric输出一个统计周期内 (1)不同code的统计计数、错误率、访问质量 (2)所有code的统计计数、错误率、访问质量。code取值"ok", "0", "200", "201", "203"代表成功,其余均代表失败。Rpc产生的监控指标项,包括rpc.counter, rpc.error.ratio, rpc.latency

平台指标

  1. qps => metrics -> $(rpc/http/tcp/wss).query_count
  2. 错误数 => metrics ->$(rpc/http/tcp/wss).error_count
  3. 接口耗时 => metrics ->
  4. p90
  5. 错误率 => $(rpc/http/tcp/wss).error_rate (待定)

Documentation

Index

Constants

View Source
const (
	DefaultRpcVersion = iota
	EnhanceRpcVersion
)

Variables

This section is empty.

Functions

func Counter

func Counter(metric string, tags ...map[string]string) error

*

  • @note
  • counter统计接口
  • @param string $metric 计数指标名称
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func CounterE

func CounterE(metric string, tags ...map[string]string) error

**************************************************************************

**********************     业务定制接口区	      **************************
**********************  下述接口不常用,酌情使用  **************************
*************************************************************************

*

  • @note
  • counterE统计接口, counter接口增强版, 支持秒级max/min/avg
  • @param string $metric 计数指标名称
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func CounterN

func CounterN(metric string, cnt int, tags ...map[string]string) error

func CounterNBuilder

func CounterNBuilder(metric string, cnt int, tags ...map[string]string) *metricBuilder

func CounterNE

func CounterNE(metric string, cnt int, tags ...map[string]string) error

func CounterNEBuilder

func CounterNEBuilder(metric string, cnt int, tags ...map[string]string) *metricBuilder

func Gauge

func Gauge(metric string, value float64, tags ...map[string]string) error

*

  • @note
  • gauge统计接口
  • @param string $metric 计数指标名称
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func GaugeBuilder

func GaugeBuilder(metric string, value float64, tags ...map[string]string) *metricBuilder

func Percentile

func Percentile(metric string, value float64, percentiles []string, tags ...map[string]string) error

*

  • @note
  • percentile统计接口(分位值, 类比Prometheus的Summary)
  • @param string $metric 计数指标名称
  • @param float64 $value 计数值
  • @param []string $percentiles 分位值
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func PercentileBuilder

func PercentileBuilder(metric string, value float64, percentiles []string, tags ...map[string]string) *metricBuilder

func Ratio

func Ratio(metric string, code string) error

*

  • @note
  • ratio统计接口(统计各类code占比)
  • @param string $metric 计数指标名称
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func RatioBuilder

func RatioBuilder(metric string, code string, cnt ...int) *metricBuilder

func RatioN

func RatioN(metric string, code string, cnt int) error

*

  • @note
  • ratio统计接口升级版, 允许设置计数值
  • @param string $metric 计数指标名称
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func Rpc

func Rpc(caller string, callee string, latency time.Duration, code interface{}, tags ...map[string]string) error

**************************************************************************

**********************      即将被废弃的接口   **************************
*************************************************************************

*

  • @note
  • rpc统计接口
  • @param string $caller 主调服务标识
  • @param string $callee 被掉服务标识
  • @param duration $latency 调用耗时
  • @param string $code 调用结果, 取值 "ok" "0" "200" "201" "203"为成功、其他均为失败
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func RpcBuilder

func RpcBuilder(caller string, callee string, latency time.Duration, code interface{}, tags ...map[string]string) *metricBuilder

func RpcE

func RpcE(caller string, callee string, latency time.Duration, code interface{}, tags ...map[string]string) error

*

  • @note
  • rpcE统计接口, rpc接口增强版, 支持统计各code的比例
  • @param string $caller 主调服务标识
  • @param string $callee 被掉服务标识
  • @param duration $latency 调用耗时
  • @param string $code 调用结果, 取值 "ok" "0" "200" "201" "203"为成功、其他均为失败
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func RpcEBuilder

func RpcEBuilder(caller string, callee string, latency time.Duration, code interface{}, tags ...map[string]string) *metricBuilder

func RpcMetric

func RpcMetric(metric string, caller string, callee string, latency time.Duration, code interface{}, tags ...map[string]string) error

**************************************************************************

**********************     业务使用接口区        **************************
**********************  下述的接口提供给业务使用 **************************
*************************************************************************

*

  • @note
  • rpc统计接口
  • @param string $metric 指标名
  • @param string $caller 主调服务标识
  • @param string $callee 被掉服务标识
  • @param duration $latency 调用耗时
  • @param string $code 调用结果, 取值 "ok" "0" "200" "201" "203"为成功、其他均为失败
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func RpcMetricBuilder

func RpcMetricBuilder(metric string, caller string, callee string, latency time.Duration, code interface{}, version int, tags ...map[string]string) *metricBuilder

func RpcMetricE

func RpcMetricE(metric string, caller string, callee string, latency time.Duration, code interface{}, tags ...map[string]string) error

*

  • @note
  • rpcE统计接口, rpc接口增强版, 支持统计各code的比例
  • @param string $metric 指标名
  • @param string $caller 主调服务标识
  • @param string $callee 被掉服务标识
  • @param duration $latency 调用耗时
  • @param string $code 调用结果, 取值 "ok" "0" "200" "201" "203"为成功、其他均为失败
  • @param map $tags 可选的tag, 最多只能有4个 *
  • @return error

func SetDefaultNs

func SetDefaultNs(ns string)

* * @note * 设置default nid, 只能在初始化时调用(如非必要,请勿调用!) * @param string $nid * * @return void

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL