metrics

package
v0.0.0-...-8d8ec1c Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package metrics - Metrics 연계 관련 TLS 정보

Index

Constants

View Source
const (
	// MWNamespace - Middleware 식별자
	MWNamespace = "mw-metrics"
)

Variables

This section is empty.

Functions

func NewDummyRegistry

func NewDummyRegistry() metrics.Registry

NewDummyRegistry - 설정이 없는 경우의 빈 Registry 생성

func NewProxyCallChain

func NewProxyCallChain(layer, name string, pm *ProxyMetrics) proxy.CallChain

NewProxyCallChain - Metrics 처리를 수행하는 Proxy 호출 체인 생성

Types

type Config

type Config struct {
	// Router Metrics 활성화 여부 (기본값: true)
	RouterEnabled bool `yaml:"router_enabled"`
	// Proxy Metrics 활성화 여부 (기본값: true)
	ProxyEnabled bool `yaml:"proxy_enabled"`
	// Backend Metrics 활성화 여부 (기본값: true)
	BackendEnabled bool `yaml:"backend_enabled"`
	// Metrics 수집 시간 (기본값: 0, Metrics 수집하지 않음)
	CollectionPeriod time.Duration `yaml:"collection_period"`
	// Metrics Expose를 위한 HTTP/Gin Server 구동 비활성화 여부 (기본값: false)
	ExposeMetrics bool `yaml:"expose_metrics"`
	// Metrics Expose 처리를 위한 URL (기본값: )
	ListenAddress string `yaml:"listen_address"`
	InfluxDB      struct {
		// InfluxDB Address
		Address string `yaml:"address"`
		// 수집된 Metrics를 InfluxDB로 전송하는 주기 (기본값: 0, 전송하지 않음)
		ReportingPeriod time.Duration `yaml:"reporting_period"`
		// 데이터 전송에 사용할 Buffer 크기 (기본값: 0, 크기 제한 없음)
		BufferSize int `yaml:"buffer_size"`
		// 접속에 사용할 사용자 명
		UserName string `yaml:"user_name"`
		// 접속에 사용할 비밀번호
		Password string `yaml:"password"`
		// 접속할 데이터베이스 명
		Database string `yaml:"database"`
	} `yaml:"influxdb"`
}

Config - Metrics 운영에 필요한 설정 구조 정의

type DummyRegistry

type DummyRegistry struct{}

DummyRegistry - 설정이 없는 경우에 활용할 Registry 구조 정의

func (DummyRegistry) Each

func (dr DummyRegistry) Each(_ func(string, interface{}))

Each - Dummy Each

func (DummyRegistry) Get

func (dr DummyRegistry) Get(_ string) interface{}

Get - Dummy Get

func (DummyRegistry) GetAll

func (dr DummyRegistry) GetAll() map[string]map[string]interface{}

GetAll - Dummy GetAll

func (DummyRegistry) GetOrRegister

func (dr DummyRegistry) GetOrRegister(_ string, i interface{}) interface{}

GetOrRegister - Dummy GetOrRegister

func (DummyRegistry) Register

func (dr DummyRegistry) Register(_ string, _ interface{}) error

Register - Dummy Register

func (DummyRegistry) RunHealthchecks

func (dr DummyRegistry) RunHealthchecks()

RunHealthchecks - Dummy RunHealthchecks

func (DummyRegistry) Unregister

func (dr DummyRegistry) Unregister(_ string)

Unregister - Dummy Unregister

func (DummyRegistry) UnregisterAll

func (dr DummyRegistry) UnregisterAll()

UnregisterAll - Dummy UnregisterAll

type HistogramData

type HistogramData struct {
	Max         int64
	Min         int64
	Mean        float64
	Stddev      float64
	Variance    float64
	Percentiles []float64
}

HistogramData - Histogram에 대한 snapshot 구조 정의

type Producer

type Producer struct {
	Logger   *logging.Logger
	Config   *Config
	Proxy    *ProxyMetrics
	Router   *RouterMetrics
	Registry *metrics.Registry
	// contains filtered or unexported fields
}

Producer - Metrics 정보 관리 구조

func New

func New(ctx context.Context, mConf config.MWConfig, log logging.Logger) *Producer

New - Metrics Collector에서 사용할 Metrics 정보 관리 Producer 인스턴스 생성

func (*Producer) BackendFactory

func (p *Producer) BackendFactory(segmentName string, next proxy.BackendFactory) proxy.BackendFactory

BackendFactory - Metrics 처리를 수행하는 BackendFactory 생성

func (*Producer) NewProxyCallChain

func (p *Producer) NewProxyCallChain(layer, name string) proxy.CallChain

NewProxyCallChain - 지정한 레이어에 대한 Proxy 호출 체인 구성

func (*Producer) ProxyFactory

func (p *Producer) ProxyFactory(segmentName string, next proxy.Factory) proxy.FactoryFunc

ProxyFactory - Metrics 처리를 수행하는 ProxyFactory 생성

func (*Producer) Snapshot

func (mp *Producer) Snapshot() Stats

Snapshot - 최종 처리된 Snapshot 반환 (InfluxDB 쪽에서 호출)

func (*Producer) TakeSnapshot

func (mp *Producer) TakeSnapshot() Stats

TakeSnapshot - 현재 상태에 대한 Snapshot 처리

type ProxyMetrics

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

ProxyMetrics - Proxy 에 대한 Metrics Collector 구조 정의

func NewProxyMetrics

func NewProxyMetrics(parent *metrics.Registry) *ProxyMetrics

NewProxyMetrics - 지정된 Register를 Parent로 사용하는 Proxy metrics 생성

func (*ProxyMetrics) Counter

func (pm *ProxyMetrics) Counter(labels ...string) metrics.Counter

Counter - Metric Counter가 없는 경우는 등록하고 대상 Counter 반환

func (*ProxyMetrics) Histogram

func (pm *ProxyMetrics) Histogram(labels ...string) metrics.Histogram

Histogram - Metric Histogram이 없는 경우는 등록하고 대상 Histogram 반환

type RouterMetrics

type RouterMetrics struct {
	ProxyMetrics
	// contains filtered or unexported fields
}

RouterMetrics - Router에 대한 Metrics Collector 구조 정의

func NewRouterMetrics

func NewRouterMetrics(parentRegistry *gometrics.Registry) *RouterMetrics

NewRouterMetrics - 지정된 Registry를 Parent로 사용하는 Router metrics 생성

func (*RouterMetrics) Aggregate

func (rm *RouterMetrics) Aggregate()

Aggregate - Router Metrics에 정보 취합 처리

func (*RouterMetrics) Connection

func (rm *RouterMetrics) Connection(TLS *tls.ConnectionState)

Connection - Router에 연결이 발생한 경우에 Connection counter 증가 처리

func (*RouterMetrics) Disconnection

func (rm *RouterMetrics) Disconnection()

Disconnection - Router 연결이 종료된 경우에 Disconnection counter 증가 처리

func (*RouterMetrics) RegisterResponseWriterMetrics

func (rm *RouterMetrics) RegisterResponseWriterMetrics(name string)

RegisterResponseWriterMetrics - gin.ResponseWriter에 연동되는 Metric 설정

type Stats

type Stats struct {
	Time       int64
	Counters   map[string]int64
	Gauges     map[string]int64
	Histograms map[string]HistogramData
}

Stats - 수집된 Metrics에 대한 snapshot 구조 정의

func NewStats

func NewStats() Stats

NewStats - Stats 인스턴스 생성

Directories

Path Synopsis
Package influxdb - Metrics 처리를 위한 InfluxDB Client 기능 제공
Package influxdb - Metrics 처리를 위한 InfluxDB Client 기능 제공

Jump to

Keyboard shortcuts

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