metrics

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2024 License: Apache-2.0 Imports: 2 Imported by: 5

Documentation

Overview

Package metrics reports the statistics of the framework.

Index

Constants

View Source
const (
	PolicyNONE  = 0 // Undefined
	PolicySET   = 1 // instantaneous value
	PolicySUM   = 2 // summary
	PolicyAVG   = 3 // average
	PolicyMAX   = 4 // maximum
	PolicyMIN   = 5 // minimum
	PolicyMID   = 6 // median
	PolicyTimer = 7 // timer
)

All available Policy(s).

Variables

View Source
var (
	ServiceHandleFail           = Counter("ServiceHandleFail")
	ServiceCodecDecodeFail      = Counter("ServiceCodecDecodeFail")
	ServiceCodecEncodeFail      = Counter("ServiceCodecEncodeFail")
	ServiceHandleRPCNameInvalid = Counter("ServiceHandleRpcNameInvalid")
	ServiceCodecMarshalFail     = Counter("ServiceCodecMarshalFail")

	TCPServerTransportHandleFail = Counter("TcpServerTransportHandleFail")
	TCPServerTransportWriteFail  = Counter("TcpServerTransportWriteFail")

	SelectNodeFail   = Counter("SelectNodeFail")
	ClientCodecEmpty = Counter("ClientCodecEmpty")

	ConnectionPoolGetNewConnection = Counter("ConnectionPoolGetNewConnection")
	ConnectionPoolGetConnectionErr = Counter("ConnectionPoolGetConnectionErr")
	ConnectionPoolRemoteErr        = Counter("ConnectionPoolRemoteErr")
	ConnectionPoolRemoteEOF        = Counter("ConnectionPoolRemoteEOF")
	ConnectionPoolIdleTimeout      = Counter("ConnectionPoolIdleTimeout")
	ConnectionPoolLifetimeExceed   = Counter("ConnectionPoolLifetimeExceed")
	ConnectionPoolOverLimit        = Counter("ConnectionPoolOverLimit")
)

Functions

func Counter

func Counter(name string) *counter

Counter creates a named counter.

func IncrCounter

func IncrCounter(key string, value float64)

IncrCounter increases counter key by value. Counters should accumulate values.

func RegisterMetricsSink

func RegisterMetricsSink(sink Sink)

RegisterMetricsSink registers a Sink.

func Report

func Report(rec Record) (err error)

Report reports a multi-dimension record.

func ReportMultiDimensionMetrics

func ReportMultiDimensionMetrics(dimensions []*Dimension, metrics []*Metrics) error

ReportMultiDimensionMetrics creates and reports a Record with multiple dimensions and metrics. Deprecated use ReportMultiDimensionMetricsX instead.

func ReportMultiDimensionMetricsX

func ReportMultiDimensionMetricsX(name string, dimensions []*Dimension, metrics []*Metrics) error

ReportMultiDimensionMetricsX creates and reports a named Record with multiple dimensions and metrics.

func ReportSingleDimensionMetrics

func ReportSingleDimensionMetrics(name string, value float64, policy Policy) error

ReportSingleDimensionMetrics creates and reports a Record with no dimension and only one metric.

Types

type Dimension

type Dimension struct {
	Name  string
	Value string
}

Dimension defines the dimension.

type Metrics

type Metrics struct {
	// contains filtered or unexported fields
}

Metrics defines the metric.

func NewMetrics

func NewMetrics(name string, value float64, policy Policy) *Metrics

NewMetrics creates a new Metrics.

func (*Metrics) Name

func (m *Metrics) Name() string

Name returns the metrics name.

func (*Metrics) Policy

func (m *Metrics) Policy() Policy

Policy returns the metrics policy.

func (*Metrics) Value

func (m *Metrics) Value() float64

Value returns the metrics value.

type Policy

type Policy int

Policy is the metrics aggregation policy.

type Record

type Record struct {
	Name string // the name of the record
	// contains filtered or unexported fields
}

Record is the single record.

terminologies:

  • dimension name is an attribute of a body, often used to filter body, such as a photo album business model includes region and server room.
  • dimension value refines the dimension. For example, the regions of the album business model include Shenzhen, Shanghai, etc., the region is the dimension, and Shenzhen and Shanghai are the dimension values.
  • metric is a measurement, used to aggregate and calculate. For example, request count of album business model in ShenZhen Telecom is a metric.

func NewMultiDimensionMetrics

func NewMultiDimensionMetrics(dimensions []*Dimension, metrics []*Metrics) Record

NewMultiDimensionMetrics creates a Record with multiple dimensions and metrics. Deprecated use NewMultiDimensionMetricsX instead.

func NewMultiDimensionMetricsX

func NewMultiDimensionMetricsX(name string, dimensions []*Dimension, metrics []*Metrics) Record

NewMultiDimensionMetricsX creates a named Record with multiple dimensions and metrics.

func NewSingleDimensionMetrics

func NewSingleDimensionMetrics(name string, value float64, policy Policy) Record

NewSingleDimensionMetrics creates a Record with no dimension and only one metric.

func (*Record) GetDimensions

func (r *Record) GetDimensions() []*Dimension

GetDimensions returns dimensions.

func (*Record) GetMetrics

func (r *Record) GetMetrics() []*Metrics

GetMetrics returns metrics.

func (*Record) GetName

func (r *Record) GetName() string

GetName returns the record name.

type Sink

type Sink struct{}

Sink defines the interface an external monitor system should provide.

func (*Sink) Name

func (n *Sink) Name() string

Name returns noop.

func (*Sink) Report

func (n *Sink) Report(rec Record) error

Report does nothing.

Jump to

Keyboard shortcuts

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