metrics

package
v1.5.5 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2024 License: MIT Imports: 14 Imported by: 1

Documentation

Index

Constants

View Source
const DefaultRotateInterval = 15

Variables

This section is empty.

Functions

This section is empty.

Types

type BasePrinter

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

BasePrinter simply logs stats as structured log

func NewBasePrinter

func NewBasePrinter(filterList []string, l *slog.Logger) *BasePrinter

NewBasePrinter returns new base printer struct

func NewCustomPrinter

func NewCustomPrinter(path string, l *slog.Logger) (*BasePrinter, error)

NewCustomPrinter generates log formatter from the provided (as path) Ruby script

func (*BasePrinter) Print

func (p *BasePrinter) Print(snapshot map[string]uint64)

Print logs stats data using global logger with info level

func (*BasePrinter) Run added in v1.1.0

func (p *BasePrinter) Run(interval int) error

Run prints a message to the log with metrics logging details

func (*BasePrinter) Stop added in v1.1.0

func (p *BasePrinter) Stop()

func (*BasePrinter) Write added in v1.1.0

func (p *BasePrinter) Write(m *Metrics) error

Write prints formatted snapshot to the log

type Config added in v1.0.1

type Config struct {
	Log            bool `toml:"log"`
	LogInterval    int  // Deprecated
	RotateInterval int  `toml:"rotate_interval"`
	LogFormatter   string
	// Print only specified metrics
	LogFilter []string          `toml:"log_filter"`
	HTTP      string            `toml:"http_path"`
	Host      string            `toml:"host"`
	Port      int               `toml:"port"`
	Tags      map[string]string `toml:"tags"`
	Statsd    StatsdConfig      `toml:"statsd"`
}

Config contains metrics configuration

func NewConfig added in v1.0.1

func NewConfig() Config

NewConfig creates an empty Config struct

func (*Config) HTTPEnabled added in v1.0.1

func (c *Config) HTTPEnabled() bool

HTTPEnabled returns true iff HTTP is not empty

func (*Config) LogEnabled added in v1.0.1

func (c *Config) LogEnabled() bool

LogEnabled returns true iff any log option is specified

func (*Config) LogFormatterEnabled added in v1.0.1

func (c *Config) LogFormatterEnabled() bool

LogFormatterEnabled returns true iff LogFormatter is not empty

func (Config) ToToml added in v1.5.4

func (c Config) ToToml() string

ToToml converts the Config to a TOML string representation

type Counter

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

Counter stores information about something "countable". Store

func NewCounter

func NewCounter(name string, desc string) *Counter

NewCounter creates new Counter.

func (*Counter) Add

func (c *Counter) Add(n uint64) uint64

Add adds the given number to the counter and returns the new value.

func (*Counter) Desc

func (c *Counter) Desc() string

Desc returns counter description

func (*Counter) Inc

func (c *Counter) Inc() uint64

Inc is equivalent to Add(name, 1)

func (*Counter) IntervalValue

func (c *Counter) IntervalValue() uint64

IntervalValue allows to get last interval value for counter.

func (*Counter) Name

func (c *Counter) Name() string

Name returns counter name

func (*Counter) UpdateDelta

func (c *Counter) UpdateDelta()

UpdateDelta updates the delta value for last interval based on current value and previous value.

func (*Counter) Value

func (c *Counter) Value() uint64

Value allows to get raw counter value.

type Gauge

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

Gauge stores an int value

func NewGauge

func NewGauge(name string, desc string) *Gauge

NewGauge initializes Gauge.

func (*Gauge) Dec added in v1.0.3

func (g *Gauge) Dec() uint64

Dec decrement the current value by 1

func (*Gauge) Desc

func (g *Gauge) Desc() string

Desc returns gauge description

func (*Gauge) Inc added in v1.0.3

func (g *Gauge) Inc() uint64

Inc increment the current value by 1

func (*Gauge) Name

func (g *Gauge) Name() string

Name returns gauge name

func (*Gauge) Set

func (g *Gauge) Set(value int)

Set gauge value

func (*Gauge) Set64 added in v1.0.1

func (g *Gauge) Set64(value uint64)

Set64 sets gauge value as uint64

func (*Gauge) Value

func (g *Gauge) Value() uint64

Value returns the current gauge value

type Instrumenter added in v1.2.2

type Instrumenter interface {
	CounterIncrement(name string)
	CounterAdd(name string, val uint64)
	GaugeIncrement(name string)
	GaugeDecrement(name string)
	GaugeSet(name string, val uint64)
	RegisterCounter(name string, desc string)
	RegisterGauge(name string, desc string)
}

type IntervalWriter added in v1.1.0

type IntervalWriter interface {
	Run(interval int) error
	Stop()
	Write(m *Metrics) error
}

IntervalHandler describe a periodical metrics writer interface

type Metrics

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

Metrics stores some useful stats about node

func NewFromConfig added in v1.2.3

func NewFromConfig(config *Config, l *slog.Logger) (*Metrics, error)

NewFromConfig creates a new metrics instance from the prodived configuration

func NewMetrics

func NewMetrics(writers []IntervalWriter, rotateIntervalSeconds int, l *slog.Logger) *Metrics

NewMetrics build new metrics struct

func (*Metrics) Counter

func (m *Metrics) Counter(name string) *Counter

Counter returns counter by name

func (*Metrics) CounterAdd added in v1.2.2

func (m *Metrics) CounterAdd(name string, val uint64)

CounterAdd adds a value to the given counter

func (*Metrics) CounterIncrement added in v1.2.2

func (m *Metrics) CounterIncrement(name string)

CounterIncrement increments the given counter

func (*Metrics) DefaultTags added in v1.3.0

func (m *Metrics) DefaultTags(tags map[string]string)

func (*Metrics) EachCounter

func (m *Metrics) EachCounter(f func(c *Counter))

EachCounter applies function f(*Gauge) to each gauge in a set

func (*Metrics) EachGauge

func (m *Metrics) EachGauge(f func(g *Gauge))

EachGauge applies function f(*Gauge) to each gauge in a set

func (*Metrics) Gauge

func (m *Metrics) Gauge(name string) *Gauge

Gauge returns gauge by name

func (*Metrics) GaugeDecrement added in v1.2.2

func (m *Metrics) GaugeDecrement(name string)

GaugeDecrement increments the given gauge

func (*Metrics) GaugeIncrement added in v1.2.2

func (m *Metrics) GaugeIncrement(name string)

GaugeIncrement increments the given gauge

func (*Metrics) GaugeSet added in v1.2.2

func (m *Metrics) GaugeSet(name string, val uint64)

GaugeSet sets the given gauge

func (*Metrics) IntervalSnapshot

func (m *Metrics) IntervalSnapshot() map[string]uint64

IntervalSnapshot returns recorded interval metrics snapshot

func (*Metrics) Prometheus

func (m *Metrics) Prometheus() string

Prometheus returns metrics info in Prometheus format

func (*Metrics) PrometheusHandler

func (m *Metrics) PrometheusHandler(w http.ResponseWriter, r *http.Request)

PrometheusHandler is provide metrics to the world

func (*Metrics) RegisterCounter

func (m *Metrics) RegisterCounter(name string, desc string)

RegisterCounter adds new counter to the registry

func (*Metrics) RegisterGauge

func (m *Metrics) RegisterGauge(name string, desc string)

RegisterGauge adds new gauge to the registry

func (*Metrics) RegisterWriter added in v1.1.0

func (m *Metrics) RegisterWriter(w IntervalWriter)

func (*Metrics) Run

func (m *Metrics) Run() error

Run periodically updates counters delta (and logs metrics if necessary)

func (*Metrics) Shutdown

func (m *Metrics) Shutdown(ctx context.Context) (err error)

Shutdown stops metrics updates

type NoopMetrics added in v1.2.2

type NoopMetrics struct {
}

func (NoopMetrics) CounterAdd added in v1.2.2

func (NoopMetrics) CounterAdd(name string, val uint64)

func (NoopMetrics) CounterIncrement added in v1.2.2

func (NoopMetrics) CounterIncrement(name string)

func (NoopMetrics) GaugeDecrement added in v1.2.2

func (NoopMetrics) GaugeDecrement(name string)

func (NoopMetrics) GaugeIncrement added in v1.2.2

func (NoopMetrics) GaugeIncrement(name string)

func (NoopMetrics) GaugeSet added in v1.2.2

func (NoopMetrics) GaugeSet(name string, val uint64)

func (NoopMetrics) RegisterCounter added in v1.2.2

func (NoopMetrics) RegisterCounter(name string, desc string)

func (NoopMetrics) RegisterGauge added in v1.2.2

func (NoopMetrics) RegisterGauge(name string, desc string)

type Printer

type Printer interface {
	Print(snapshot map[string]int64)
}

Printer describes metrics logging interface

type StatsdConfig added in v1.3.0

type StatsdConfig struct {
	Host          string `toml:"host"`
	Prefix        string `toml:"prefix"`
	TagFormat     string `toml:"tags_format"`
	MaxPacketSize int    `toml:"max_packet_size"`
}

func NewStatsdConfig added in v1.3.0

func NewStatsdConfig() StatsdConfig

func (StatsdConfig) Enabled added in v1.3.0

func (c StatsdConfig) Enabled() bool

type StatsdLogger added in v1.3.0

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

func (*StatsdLogger) Printf added in v1.3.0

func (lg *StatsdLogger) Printf(msg string, args ...interface{})

type StatsdWriter added in v1.3.0

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

func NewStatsdWriter added in v1.3.0

func NewStatsdWriter(c StatsdConfig, tags map[string]string, l *slog.Logger) *StatsdWriter

func (*StatsdWriter) Run added in v1.3.0

func (sw *StatsdWriter) Run(interval int) error

func (*StatsdWriter) Stop added in v1.3.0

func (sw *StatsdWriter) Stop()

func (*StatsdWriter) Write added in v1.3.0

func (sw *StatsdWriter) Write(m *Metrics) error

Jump to

Keyboard shortcuts

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