Documentation ¶
Overview ¶
Package metrics - Metrics 연계 관련 TLS 정보
Index ¶
- Constants
- func NewDummyRegistry() metrics.Registry
- func NewProxyCallChain(layer, name string, pm *ProxyMetrics) proxy.CallChain
- type Config
- type DummyRegistry
- func (dr DummyRegistry) Each(_ func(string, interface{}))
- func (dr DummyRegistry) Get(_ string) interface{}
- func (dr DummyRegistry) GetAll() map[string]map[string]interface{}
- func (dr DummyRegistry) GetOrRegister(_ string, i interface{}) interface{}
- func (dr DummyRegistry) Register(_ string, _ interface{}) error
- func (dr DummyRegistry) RunHealthchecks()
- func (dr DummyRegistry) Unregister(_ string)
- func (dr DummyRegistry) UnregisterAll()
- type HistogramData
- type Producer
- func (p *Producer) BackendFactory(segmentName string, next proxy.BackendFactory) proxy.BackendFactory
- func (p *Producer) NewProxyCallChain(layer, name string) proxy.CallChain
- func (p *Producer) ProxyFactory(segmentName string, next proxy.Factory) proxy.FactoryFunc
- func (mp *Producer) Snapshot() Stats
- func (mp *Producer) TakeSnapshot() Stats
- type ProxyMetrics
- type RouterMetrics
- type Stats
Constants ¶
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) 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 (*Producer) BackendFactory ¶
func (p *Producer) BackendFactory(segmentName string, next proxy.BackendFactory) proxy.BackendFactory
BackendFactory - Metrics 처리를 수행하는 BackendFactory 생성
func (*Producer) NewProxyCallChain ¶
NewProxyCallChain - 지정한 레이어에 대한 Proxy 호출 체인 구성
func (*Producer) ProxyFactory ¶
ProxyFactory - Metrics 처리를 수행하는 ProxyFactory 생성
func (*Producer) TakeSnapshot ¶
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 설정