metrics

package
v0.0.0-...-4e7898a Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2021 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ResponseTime reports the response time of handlers and rpc
	ResponseTime = "response_time_ns"
	// ConnectedClients represents the number of current connected clients in frontend servers
	ConnectedClients = "connected_clients"
	// CountServers counts the number of servers of different types
	CountServers = "count_servers"
	// ChannelCapacity represents the capacity of a channel (available slots)
	ChannelCapacity = "channel_capacity"
	// DroppedMessages reports the number of dropped messages in rpc server (messages that will not be handled)
	DroppedMessages = "dropped_messages"
	// ProcessDelay reports the message processing delay to handle the messages at the handler service
	ProcessDelay = "handler_delay_ns"
	// Goroutines reports the number of goroutines
	Goroutines = "goroutines"
	// HeapSize reports the size of heap
	HeapSize = "heapsize"
	// HeapObjects reports the number of allocated heap objects
	HeapObjects = "heapobjects"
	// WorkerJobsTotal reports the number of executed jobs
	WorkerJobsTotal = "worker_jobs_total"
	// WorkerJobsRetry reports the number of retried jobs
	WorkerJobsRetry = "worker_jobs_retry_total"
	// WorkerQueueSize reports the queue size on worker
	WorkerQueueSize = "worker_queue_size"
	// ExceededRateLimiting reports the number of requests made in a connection
	// after the rate limit was exceeded
	ExceededRateLimiting = "exceeded_rate_limiting"
)

Functions

func ReportExceededRateLimiting

func ReportExceededRateLimiting(reporters []Reporter)

ReportExceededRateLimiting reports the number of requests made after exceeded rate limiting in a connection

func ReportMessageProcessDelayFromCtx

func ReportMessageProcessDelayFromCtx(ctx context.Context, reporters []Reporter, typ string)

ReportMessageProcessDelayFromCtx reports the delay to process the messages

func ReportNumberOfConnectedClients

func ReportNumberOfConnectedClients(reporters []Reporter, number int64)

ReportNumberOfConnectedClients reports the number of connected clients

func ReportSysMetrics

func ReportSysMetrics(reporters []Reporter, period time.Duration)

ReportSysMetrics reports sys metrics

func ReportTimingFromCtx

func ReportTimingFromCtx(ctx context.Context, reporters []Reporter, typ string, err error)

ReportTimingFromCtx reports the latency from the context

Types

type Client

type Client interface {
	Count(name string, value int64, tags []string, rate float64) error
	Gauge(name string, value float64, tags []string, rate float64) error
	TimeInMilliseconds(name string, value float64, tags []string, rate float64) error
}

Client is the interface to required dogstatsd functions

type Counter

type Counter struct {
	Subsystem string
	Name      string
	Help      string
	Labels    []string
}

Counter defines a counter metric

type CustomMetricsSpec

type CustomMetricsSpec struct {
	Summaries []*Summary
	Gauges    []*Gauge
	Counters  []*Counter
}

CustomMetricsSpec has all metrics specs

func NewCustomMetricsSpec

func NewCustomMetricsSpec(config *config.Config) (*CustomMetricsSpec, error)

NewCustomMetricsSpec returns a *CustomMetricsSpec by reading config key

type Gauge

type Gauge struct {
	Subsystem string
	Name      string
	Help      string
	Labels    []string
}

Gauge defines a gauge metric

type PrometheusReporter

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

PrometheusReporter reports metrics to prometheus

func GetPrometheusReporter

func GetPrometheusReporter(
	serverType string,
	config *config.Config,
	constLabels map[string]string,
) (*PrometheusReporter, error)

GetPrometheusReporter gets the prometheus reporter singleton

func (*PrometheusReporter) ReportCount

func (p *PrometheusReporter) ReportCount(metric string, labels map[string]string, count float64) error

ReportCount reports a summary metric

func (*PrometheusReporter) ReportGauge

func (p *PrometheusReporter) ReportGauge(metric string, labels map[string]string, value float64) error

ReportGauge reports a gauge metric

func (*PrometheusReporter) ReportSummary

func (p *PrometheusReporter) ReportSummary(metric string, labels map[string]string, value float64) error

ReportSummary reports a summary metric

type Reporter

type Reporter interface {
	ReportCount(metric string, tags map[string]string, count float64) error
	ReportSummary(metric string, tags map[string]string, value float64) error
	ReportGauge(metric string, tags map[string]string, value float64) error
}

Reporter interface

type StatsdReporter

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

StatsdReporter sends application metrics to statsd

func NewStatsdReporter

func NewStatsdReporter(
	config *config.Config,
	serverType string,
	tagsMap map[string]string,
	clientOrNil ...Client,
) (*StatsdReporter, error)

NewStatsdReporter returns an instance of statsd reportar and an error if something fails

func (*StatsdReporter) ReportCount

func (s *StatsdReporter) ReportCount(metric string, tagsMap map[string]string, count float64) error

ReportCount sends count reports to statsd

func (*StatsdReporter) ReportGauge

func (s *StatsdReporter) ReportGauge(metric string, tagsMap map[string]string, value float64) error

ReportGauge sents the gauge value and reports to statsd

func (*StatsdReporter) ReportSummary

func (s *StatsdReporter) ReportSummary(metric string, tagsMap map[string]string, value float64) error

ReportSummary observes the summary value and reports to statsd

type Summary

type Summary struct {
	Subsystem  string
	Name       string
	Help       string
	Objectives map[float64]float64
	Labels     []string
}

Summary defines a summary metric

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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