g

package
v0.0.0-...-a9119a5 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const SEP = "|||"
View Source
const TIMEOUT = 60 * 20
View Source
const (
	VERSION = "2.0.2"
)

change log 2.0.1: bugfix HistoryData limit 2.0.2: clean stale data

Variables

View Source
var (
	GlobalCacheTtl = 60 * 2 * time.Second
	HostSSCache    = cache.New(GlobalCacheTtl, GlobalCacheTtl)
)
View Source
var (
	HbsClient           *SingleConnRpcClient
	JudgeNodeRing       *rings.ConsistentHashNodeRing
	StrategyMap         = &SafeStrategyMap{M: make(map[string][]model.Strategy)}
	UnionStrategyMap    = &SafeUnionStrategies{M: make(map[int][]*model.Strategy)}
	ExpressionMap       = &SafeExpressionMap{M: make(map[string][]*model.Expression)}
	LastEvents          = &SafeEventMap{M: make(map[string]*model.Event)}
	FilterMap           = &SafeFilterMap{M: make(map[string]string)}
	UnionJudgeConnPools *backend.SafeRpcConnPools
	UnionLastEvents     = &SafeEventMap{M: make(map[string]*model.Event)}
)
View Source
var (
	ConfigFile string
)
View Source
var Logger = utils.InitLogger()
View Source
var RedisCluster *redisc.Cluster
View Source
var RedisConnPool *redis.Pool

Functions

func CheckNeedJudge

func CheckNeedJudge(hostname, metric string) (filterSS []*model.Strategy)

func GetOneStrategy

func GetOneStrategy(hostname string) []*model.Strategy

func GetOneUnionStrategy

func GetOneUnionStrategy(id int) []*model.Strategy

func InitHbsClient

func InitHbsClient()

func InitRedisCluster

func InitRedisCluster()

初始化redis集群

func InitRedisConnPool

func InitRedisConnPool()

func InitUnionJudgeClientAndRing

func InitUnionJudgeClientAndRing()

func JudgeHostStrategies

func JudgeHostStrategies(hostname string) []*model.Strategy

func ParseConfig

func ParseConfig(cfg string)

func PingRedis

func PingRedis(c redis.Conn, t time.Time) error

Types

type AlarmConfig

type AlarmConfig struct {
	Enabled      bool         `json:"enabled"`
	MinInterval  int64        `json:"minInterval"`
	QueuePattern string       `json:"queuePattern"`
	Redis        *RedisConfig `json:"redis"`
}

type GlobalConfig

type GlobalConfig struct {
	Debug       bool         `json:"debug"`
	LogLevel    string       `json:"log_level"`
	DebugHost   string       `json:"debugHost"`
	Remain      int          `json:"remain"`
	Http        *HttpConfig  `json:"http"`
	Rpc         *RpcConfig   `json:"rpc"`
	Hbs         *HbsConfig   `json:"hbs"`
	UnionJudgeS *UnionJudge  `json:"union_judge_s"`
	Alarm       *AlarmConfig `json:"alarm"`
	// 这个字段代表这个实例是否是组合策略judge
	// 组合策略judge不需要同步单个策略
	IsUnion bool `json:"is_union"`
}

func Config

func Config() *GlobalConfig

type HbsConfig

type HbsConfig struct {
	Servers  []string `json:"servers"`
	Timeout  int64    `json:"timeout"`
	Interval int64    `json:"interval"`
}

type HttpConfig

type HttpConfig struct {
	Enabled bool   `json:"enabled"`
	Listen  string `json:"listen"`
}

type RedisConfig

type RedisConfig struct {
	RedisClusterNodes []string `json:"redis_cluster_nodes"`
	Dsn               string   `json:"dsn"`
	MaxIdle           int      `json:"maxIdle"`
	ConnTimeout       int      `json:"connTimeout"`
	ReadTimeout       int      `json:"readTimeout"`
	WriteTimeout      int      `json:"writeTimeout"`
}

type RpcConfig

type RpcConfig struct {
	Enabled bool   `json:"enabled"`
	Listen  string `json:"listen"`
}

type SafeEventMap

type SafeEventMap struct {
	sync.RWMutex
	M map[string]*model.Event
}

func (*SafeEventMap) Get

func (this *SafeEventMap) Get(key string) (*model.Event, bool)

func (*SafeEventMap) Set

func (this *SafeEventMap) Set(key string, event *model.Event)

type SafeExpressionMap

type SafeExpressionMap struct {
	sync.RWMutex
	// metric:tag1 => [exp1, exp2 ...]
	// metric:tag2 => [exp1, exp2 ...]
	M map[string][]*model.Expression
}

func (*SafeExpressionMap) Get

func (this *SafeExpressionMap) Get() map[string][]*model.Expression

func (*SafeExpressionMap) ReInit

func (this *SafeExpressionMap) ReInit(m map[string][]*model.Expression)

type SafeFilterMap

type SafeFilterMap struct {
	sync.RWMutex
	M map[string]string
}

func (*SafeFilterMap) Exists

func (this *SafeFilterMap) Exists(key string) bool

func (*SafeFilterMap) ReInit

func (this *SafeFilterMap) ReInit(m map[string]string)

type SafeStrategyMap

type SafeStrategyMap struct {
	sync.RWMutex
	// endpoint:metric => [strategy1, strategy2 ...]
	M map[string][]model.Strategy
}

func (*SafeStrategyMap) Get

func (this *SafeStrategyMap) Get() map[string][]model.Strategy

func (*SafeStrategyMap) ReInit

func (this *SafeStrategyMap) ReInit(m map[string][]model.Strategy)

type SafeUnionStrategies

type SafeUnionStrategies struct {
	sync.RWMutex
	M map[int][]*model.Strategy
}

func (*SafeUnionStrategies) GetById

func (this *SafeUnionStrategies) GetById(UnionId int) []*model.Strategy

func (*SafeUnionStrategies) GetMap

func (this *SafeUnionStrategies) GetMap() map[int][]*model.Strategy

func (*SafeUnionStrategies) ReInit

func (this *SafeUnionStrategies) ReInit(m map[int][]*model.Strategy)

type SingleConnRpcClient

type SingleConnRpcClient struct {
	sync.Mutex

	RpcServers []string
	Timeout    time.Duration
	// contains filtered or unexported fields
}

func (*SingleConnRpcClient) Call

func (this *SingleConnRpcClient) Call(method string, args interface{}, reply interface{}) error

type UnionJudge

type UnionJudge struct {
	Enabled     bool              `json:"enabled"`
	Batch       int               `json:"batch"`
	ConnTimeout int               `json:"connTimeout"`
	CallTimeout int               `json:"callTimeout"`
	MaxConns    int               `json:"maxConns"`
	MaxIdle     int               `json:"maxIdle"`
	Replicas    int32             `json:"replicas"`
	Cluster     map[string]string `json:"cluster"`
}

Jump to

Keyboard shortcuts

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