metrics

package
v0.0.12 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	RedisBackend  *redis.Client
	Telemetry     statsd.Statter
	ShutdownCtx   context.Context
	PrometheusURL string
	InstallID     string
}

type IMetrics

type IMetrics interface {
	FetchCounters(ctx context.Context) ([]*protos.Metric, error)

	GetAllRateCounters(_ context.Context) map[string]*RateCounter

	HandleMetricsRequest(ctx context.Context, req *protos.MetricsRequest) error
}

type Metrics

type Metrics struct {
	*Config
	VecCounters    map[string]*prometheus.CounterVec
	VecCountersMtx *sync.RWMutex
	// contains filtered or unexported fields
}

func New

func New(cfg *Config) (*Metrics, error)

func (*Metrics) FetchCounters

func (m *Metrics) FetchCounters(ctx context.Context) ([]*protos.Metric, error)

func (*Metrics) GetAllRateCounters

func (m *Metrics) GetAllRateCounters(_ context.Context) map[string]*RateCounter

func (*Metrics) GetRateCounter

func (m *Metrics) GetRateCounter(_ context.Context, aud *protos.Audience) *RateCounter

func (*Metrics) HandleMetricsRequest

func (m *Metrics) HandleMetricsRequest(ctx context.Context, req *protos.MetricsRequest) error

type RateCounter

type RateCounter struct {
	Bytes     *ratecounter.RateCounter `json:"bytes"`
	Processed *ratecounter.RateCounter `json:"processed"`
}

Jump to

Keyboard shortcuts

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