telemetry

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: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AfterShardingStart added in v0.5.0

func AfterShardingStart() error

func Close added in v0.5.0

func Close() error

func Init

func Init(c *Config) error

Init create the global telemetry center according to the config.

func Register

func Register(name string, server Server, isDefault bool)

Types

type Config

type Config struct {
	Cluster  string `mapstructure:"cluster"`  // The cluster name.
	Service  string `mapstructure:"service"`  // The service name.
	Instance string `mapstructure:"instance"` // The instance name.

	// Telemetry export type, support "prometheus", "metrics_service" or "none", multiple split by ","
	ExportType string `mapstructure:"export_type"`
	// Export telemetry data through Prometheus server, only works on "export_type=prometheus".
	Prometheus PrometheusConfig `mapstructure:"prometheus"`
	// Export telemetry data through native meter format to OAP backend, only works on "export_type=metrics_service".
	MetricsService MetricsServiceConfig `mapstructure:"metrics_service"`
	// Export pprof service for detect performance issue
	PProfService PProfServiceConfig `mapstructure:"pprof"`
}

Config defines the common telemetry labels.

type Counter

type Counter interface {
	Metric
	Inc(labelValues ...string)
	Add(val float64, labelValues ...string)
}

func NewCounter

func NewCounter(name, help string, labels ...string) Counter

type DynamicGauge added in v0.4.0

type DynamicGauge interface {
	Metric
	Inc(labelValues ...string)
	Dec(labelValues ...string)
}

func NewDynamicGauge added in v0.4.0

func NewDynamicGauge(name, help string, labels ...string) DynamicGauge

type Gauge added in v0.4.0

type Gauge interface {
	Metric
}

func NewGauge added in v0.4.0

func NewGauge(name, help string, getter func() float64, labels ...string) Gauge

type Metric added in v0.5.0

type Metric interface {
}

type MetricsServiceConfig added in v0.5.0

type MetricsServiceConfig struct {
	ClientName   string `mapstructure:"client_name"`   // The grpc-client plugin name, using the SkyWalking native batch meter protocol
	Interval     int    `mapstructure:"interval"`      // The interval second for sending metrics
	MetricPrefix string `mapstructure:"metric_prefix"` // The prefix of telemetry metric name
}

type MultipleCounter added in v1.2.0

type MultipleCounter struct {
	Counters []Counter
}

func (*MultipleCounter) Add added in v1.2.0

func (m *MultipleCounter) Add(val float64, labelValues ...string)

func (*MultipleCounter) Inc added in v1.2.0

func (m *MultipleCounter) Inc(labelValues ...string)

type MultipleDynamicGauge added in v1.2.0

type MultipleDynamicGauge struct {
	Gauges []DynamicGauge
}

func (*MultipleDynamicGauge) Dec added in v1.2.0

func (g *MultipleDynamicGauge) Dec(labelValues ...string)

func (*MultipleDynamicGauge) Inc added in v1.2.0

func (g *MultipleDynamicGauge) Inc(labelValues ...string)

type MultipleGauge added in v1.2.0

type MultipleGauge struct {
	Gauges []Gauge
}

type MultipleServer added in v1.2.0

type MultipleServer struct {
	Servers []Server
}

func (*MultipleServer) AfterSharingStart added in v1.2.0

func (s *MultipleServer) AfterSharingStart() error

func (*MultipleServer) Close added in v1.2.0

func (s *MultipleServer) Close() error

func (*MultipleServer) NewCounter added in v1.2.0

func (s *MultipleServer) NewCounter(name, help string, labels ...string) Counter

func (*MultipleServer) NewDynamicGauge added in v1.2.0

func (s *MultipleServer) NewDynamicGauge(name, help string, labels ...string) DynamicGauge

func (*MultipleServer) NewGauge added in v1.2.0

func (s *MultipleServer) NewGauge(name, help string, getter func() float64, labels ...string) Gauge

func (*MultipleServer) NewTimer added in v1.2.0

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

func (*MultipleServer) Start added in v1.2.0

func (s *MultipleServer) Start(config *Config) error

type MultipleTimeRecorder added in v1.2.0

type MultipleTimeRecorder struct {
	Recorders []TimeRecorder
}

func (*MultipleTimeRecorder) Stop added in v1.2.0

func (m *MultipleTimeRecorder) Stop()

type MultipleTimer added in v1.2.0

type MultipleTimer struct {
	Timers []Timer
}

func (*MultipleTimer) AddTime added in v1.2.0

func (m *MultipleTimer) AddTime(t time.Duration, labelValues ...string)

func (*MultipleTimer) Start added in v1.2.0

func (m *MultipleTimer) Start(labelValues ...string) TimeRecorder

type PProfServiceConfig added in v1.2.0

type PProfServiceConfig struct {
	Address string `mapstructure:"address"` // The pprof server address.
}

type PrometheusConfig added in v0.5.0

type PrometheusConfig struct {
	Address  string `mapstructure:"address"`  // The prometheus server address.
	Endpoint string `mapstructure:"endpoint"` // The prometheus server metrics endpoint.
}

type Server added in v0.5.0

type Server interface {
	Start(config *Config) error
	AfterSharingStart() error
	Close() error

	NewCounter(name, help string, labels ...string) Counter
	NewGauge(name, help string, getter func() float64, labels ...string) Gauge
	NewDynamicGauge(name, help string, labels ...string) DynamicGauge
	NewTimer(name, help string, labels ...string) Timer
}

type TimeRecorder added in v0.4.0

type TimeRecorder interface {
	Stop()
}

type Timer added in v0.4.0

type Timer interface {
	Metric
	Start(labelValues ...string) TimeRecorder
	AddTime(t time.Duration, labelValues ...string)
}

func NewTimer added in v0.4.0

func NewTimer(name, help string, labels ...string) Timer

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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