metrics

package
v0.16.18 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2022 License: Apache-2.0 Imports: 21 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddLatencyProbe added in v0.15.10

func AddLatencyProbe(ch channel.Channel, interval time.Duration, handler LatencyHandler)

func AddLatencyProbeResponder added in v0.15.10

func AddLatencyProbeResponder(ch channel2.Channel)

func LoadInfluxConfig

func LoadInfluxConfig(src map[interface{}]interface{}) (*influxConfig, error)

func LoadOutputFileConfig added in v0.13.1

func LoadOutputFileConfig(src map[interface{}]interface{}) (*outputfileConfig, error)

func ProbeLatency

func ProbeLatency(ch channel2.Channel, histogram Histogram, interval time.Duration, timeout time.Duration)

send regular latency probes

func ProbeLatencyConfigurable added in v0.15.56

func ProbeLatencyConfigurable(config *LatencyProbeConfig)

Types

type Config

type Config struct {
	Handlers       []Handler
	Source         string
	Tags           map[string]string
	ReportInterval time.Duration
}

func LoadConfig

func LoadConfig(srcmap map[interface{}]interface{}) (*Config, error)

type Formatter added in v0.13.1

type Formatter interface {
	WriteTo(msg *metrics_pb.MetricsMessage, out io.Writer) error
}

type Gauge added in v0.14.23

type Gauge interface {
	metrics.Gauge
	Metric
}

Gauge represents a metric which is measuring a count and a rate

type Handler

type Handler interface {
	// AcceptMetrics is called when new metrics become available
	AcceptMetrics(message *metrics_pb.MetricsMessage)
}

Handler represents a sink for metric events

func NewInfluxDBMetricsHandler

func NewInfluxDBMetricsHandler(cfg *influxConfig) (Handler, error)

NewInfluxDBMetricsHandler creates a new HandlerTypeInfluxDB metrics ChannelReporter

func NewOutputFileMetricsHandler added in v0.13.1

func NewOutputFileMetricsHandler(cfg *outputfileConfig) (Handler, error)

Message handler that write node and link metrics to a file in json format

type HandlerType

type HandlerType string

HandlerType is used to define known handler types

const (
	HandlerTypeInfluxDB HandlerType = "influxdb"
	HandlerTypeJSONFile HandlerType = "jsonfile"
	HandlerTypeFile     HandlerType = "file"
)

type Histogram

type Histogram interface {
	Metric
	Clear()
	Update(int64)
}

Histogram represents a metric which is measuring the distribution of values for some measurement

type IntervalCounter

type IntervalCounter interface {
	Metric
	Update(intervalId string, time time.Time, value uint64)
}

IntervalCounter allows tracking counters which are bucketized by some interval

type JsonFormatter added in v0.13.1

type JsonFormatter struct{}

func (*JsonFormatter) WriteTo added in v0.13.1

func (formatter *JsonFormatter) WriteTo(msg *metrics_pb.MetricsMessage, out io.Writer) error

type LatencyHandler added in v0.15.10

type LatencyHandler interface {
	LatencyReported(latency time.Duration)
	ChannelClosed()
}

type LatencyProbeConfig added in v0.15.56

type LatencyProbeConfig struct {
	Channel        channel2.Channel
	Interval       time.Duration
	Timeout        time.Duration
	ResultHandler  func(resultNanos int64)
	TimeoutHandler func()
	ExitHandler    func()
}

type LatencyResponder added in v0.15.10

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

LatencyResponder responds to latency messages with LatencyResponse messages.

func (*LatencyResponder) ContentType added in v0.15.10

func (self *LatencyResponder) ContentType() int32

func (*LatencyResponder) HandleReceive added in v0.15.10

func (self *LatencyResponder) HandleReceive(msg *channel2.Message, _ channel2.Channel)

type Meter

type Meter interface {
	Metric
	Mark(int64)
}

Meter represents a metric which is measuring a count and a rate

type Metric

type Metric interface {
	Dispose()
}

Metric is the base functionality for all metrics types

type PlainTextFormatter added in v0.13.1

type PlainTextFormatter struct {
}

func (PlainTextFormatter) WriteTo added in v0.13.1

type Registry

type Registry interface {
	SourceId() string
	Gauge(name string) Gauge
	FuncGauge(name string, f func() int64) Gauge
	Meter(name string) Meter
	Histogram(name string) Histogram
	Timer(name string) Timer
	EachMetric(visitor func(name string, metric Metric))

	IsValidMetric(name string) bool
	Poll() *metrics_pb.MetricsMessage
	DisposeAll()
}

Registry allows for configuring and accessing metrics for a fabric application

func NewRegistry

func NewRegistry(sourceId string, tags map[string]string) Registry

type Timer

type Timer interface {
	Metric
	Time(func())
	Update(time.Duration)
	UpdateSince(time.Time)
}

type UsageRegistry added in v0.13.1

type UsageRegistry interface {
	Registry
	IntervalCounter(name string, intervalSize time.Duration) IntervalCounter
	FlushToHandler(handler Handler)
	Flush()
	StartReporting(eventSink Handler, reportInterval time.Duration, msgQueueSize int)
}

UsageRegistry extends registry to allow collecting usage metrics

func NewUsageRegistry added in v0.13.1

func NewUsageRegistry(sourceId string, tags map[string]string, closeNotify <-chan struct{}) UsageRegistry

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳