metricservice

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SeparatorByte byte = 255
)

Inspired by Prometheus(prometheus/client_golang), adding labels data is more efficient and saves memory

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseMetric

type BaseMetric struct {
	Metric

	Name         string
	LabelKeys    []string
	NewSubMetric func(labelValues ...string) SubMetric
	// contains filtered or unexported fields
}

func NewBaseMetric

func NewBaseMetric(name string, labels []string, newSubMetric func(labelValues ...string) SubMetric) *BaseMetric

func (*BaseMetric) GetMetricWithLabelValues

func (b *BaseMetric) GetMetricWithLabelValues(lvs ...string) (SubMetric, error)

func (*BaseMetric) WriteMetric

func (b *BaseMetric) WriteMetric(appender *MetricsAppender)

type Counter

type Counter struct {
	BaseMetric
}

func (*Counter) Add

func (c *Counter) Add(val float64, labelValues ...string)

func (*Counter) Inc

func (c *Counter) Inc(labelValues ...string)

type DynamicGauge

type DynamicGauge struct {
	BaseMetric
}

func (*DynamicGauge) Dec

func (d *DynamicGauge) Dec(labels ...string)

func (*DynamicGauge) Inc

func (d *DynamicGauge) Inc(labels ...string)

type Gauge

type Gauge struct {
	BaseMetric
	// contains filtered or unexported fields
}

func (*Gauge) WriteMetric

func (g *Gauge) WriteMetric(appender *MetricsAppender)

type Metric

type Metric interface {
	telemetry.Metric
	WriteMetric(appender *MetricsAppender)
}

type MetricsAppender

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

type Server

type Server struct {
	telemetry.MetricsServiceConfig
	// contains filtered or unexported fields
}

func (*Server) AfterSharingStart

func (s *Server) AfterSharingStart() error

func (*Server) Close

func (s *Server) Close() error

func (*Server) NewCounter

func (s *Server) NewCounter(name, _ string, labels ...string) telemetry.Counter

NewCounter create a new counter if no metric with the same name exists.

func (*Server) NewDynamicGauge

func (s *Server) NewDynamicGauge(name, _ string, labels ...string) telemetry.DynamicGauge

func (*Server) NewGauge

func (s *Server) NewGauge(name, _ string, getter func() float64, labels ...string) telemetry.Gauge

func (*Server) NewTimer

func (s *Server) NewTimer(name, help string, labels ...string) telemetry.Timer

func (*Server) Register

func (s *Server) Register(name string, metric Metric)

func (*Server) Start

func (s *Server) Start(config *telemetry.Config) error

type SubMetric

type SubMetric interface {
	WriteMetric(base *BaseMetric, labels []*v3.Label, appender *MetricsAppender)
}

type TimeRecorder

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

func (*TimeRecorder) Stop

func (t *TimeRecorder) Stop()

Stop the time and record the time

type Timer

type Timer struct {
	BaseMetric

	SumCounter   *Counter
	CountCounter *Counter
}

func (*Timer) AddTime

func (t *Timer) AddTime(d time.Duration, labelValues ...string)

func (*Timer) Start

func (t *Timer) Start(labelValues ...string) telemetry.TimeRecorder

func (*Timer) WriteMetric

func (t *Timer) WriteMetric(appender *MetricsAppender)

Jump to

Keyboard shortcuts

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