Documentation
¶
Index ¶
Constants ¶
View Source
const ( ErrorParamEmpty liberr.CodeError = iota + liberr.MinPkgMonitorCfg ErrorValidatorError )
Variables ¶
This section is empty.
Functions ¶
func DefaultConfig ¶
func SetDefaultConfig ¶
func SetDefaultConfig(cfg []byte)
Types ¶
type Config ¶
type Config struct {
// Name define the name of the monitor
Name string `json:"name" yaml:"name" toml:"name" mapstructure:"name"`
// CheckTimeout define the timeout use for healthcheck. Default is 5 second.
CheckTimeout time.Duration `json:"check-timeout" yaml:"check-timeout" toml:"check-timeout" mapstructure:"check-timeout"`
// IntervalCheck define the time waiting between 2 healthcheck. Default is 5 second.
IntervalCheck time.Duration `json:"interval-check" yaml:"interval-check" toml:"interval-check" mapstructure:"interval-check"`
// IntervalFall define the time waiting between 2 healthcheck when last check is KO. Default is 5 second.
IntervalFall time.Duration `json:"interval-fall" yaml:"interval-fall" toml:"interval-fall" mapstructure:"interval-down"`
// IntervalRise define the time waiting between 2 healthcheck when status is KO or Warn but last check is OK. Default is 5 second.
IntervalRise time.Duration `json:"interval-rise" yaml:"interval-rise" toml:"interval-rise" mapstructure:"interval-rise"`
// FallCountKO define the number of KO before considerate the component as down.
FallCountKO uint8 `json:"fall-count-ko" yaml:"fall-count-ko" toml:"fall-count-ko" mapstructure:"fall-count-ko"`
// FallCountWarn define the number of KO before considerate the component as warn.
FallCountWarn uint8 `json:"fall-count-warn" yaml:"fall-count-warn" toml:"fall-count-warn" mapstructure:"fall-count-warn"`
// RiseCountKO define the number of OK when status is KO before considerate the component as up.
RiseCountKO uint8 `json:"rise-count-ko" yaml:"rise-count-ko" toml:"rise-count-ko" mapstructure:"rise-count-ko"`
// RiseCountWarn define the number of OK when status is Warn before considerate the component as up.
RiseCountWarn uint8 `json:"rise-count-warn" yaml:"rise-count-warn" toml:"rise-count-warn" mapstructure:"rise-count-warn"`
// Logger define the logger options for current monitor log
Logger liblog.Options `json:"logger" yaml:"logger" toml:"logger" mapstructure:"logger"`
}
type HealthCheck ¶
type Monitor ¶
type Monitor interface {
MonitorInfo
MonitorStatus
MonitorMetrics
libsrv.Server
// SetConfig is used to set or update config of the monitor
SetConfig(ctx libctx.FuncContext, cfg Config) liberr.Error
// RegisterLoggerDefault is used to define the default logger.
// Default logger can be used to extend options logger from it
RegisterLoggerDefault(fct liblog.FuncLog)
// GetConfig is used to retrieve config of the monitor
GetConfig() Config
// SetHealthCheck is used to set or update the healthcheck func
SetHealthCheck(fct HealthCheck)
// GetHealthCheck is used to retrieve the healthcheck func
GetHealthCheck() HealthCheck
// Clone is used to clone monitor to another standalone instance
Clone(ctx context.Context) (Monitor, liberr.Error)
}
type MonitorInfo ¶
type MonitorMetrics ¶
type MonitorMetrics interface {
RegisterMetricsName(names ...string)
RegisterMetricsAddName(names ...string)
RegisterCollectMetrics(fct libprm.FuncCollectMetrics)
CollectLatency() time.Duration
CollectUpTime() time.Duration
CollectDownTime() time.Duration
CollectRiseTime() time.Duration
CollectFallTime() time.Duration
CollectStatus() (sts monsts.Status, rise bool, fall bool)
}
type MonitorStatus ¶
type MonitorStatus interface {
encoding.TextMarshaler
json.Marshaler
// Name return the name of the monitor.
Name() string
// Status return the last status (OK / Warn / KO).
Status() monsts.Status
// Message return the last error, warning, message of the last status
Message() string
// IsRise return true if rising status from KO or Warn
IsRise() bool
// IsFall return true if falling status to KO or Warn
IsFall() bool
// Latency return the last check's latency
Latency() time.Duration
// Uptime return the total duration of uptime (OK status)
Uptime() time.Duration
// Downtime return the total duration of downtime (KO status)
Downtime() time.Duration
}
type PoolStatus ¶
type PoolStatus interface {
encoding.TextMarshaler
json.Marshaler
}
Click to show internal directories.
Click to hide internal directories.