general

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2024 License: Apache-2.0 Imports: 28 Imported by: 66

Documentation

Index

Constants

View Source
const (
	FlockCoolingInterval = 6 * time.Second
	FlockTryLockMaxTimes = 10
)
View Source
const (
	HealthzCheckStateReady    HealthzCheckState = "Ready"
	HealthzCheckStateNotReady HealthzCheckState = "NotReady"
	HealthzCheckStateUnknown  HealthzCheckState = "Unknown"
	HealthzCheckStateFailed   HealthzCheckState = "Failed"

	InitMessage = "Init"

	// HealthzCheckModeHeartBeat in this mode, caller should update the check status regularly like a heartbeat, once
	// the heartbeat stops for more than TimeoutPeriod or the state is not HealthzCheckStateReady for more than GracePeriod,
	// this rule will be considered as unhealthy.
	HealthzCheckModeHeartBeat HealthzCheckMode = "heartbeat"
	// HealthzCheckModeReport in this mode, caller only reports the failed state when the function does not work well.
	// when the LatestUnhealthyTime is not earlier than the GracePeriod ago, we consider this rule as unhealthy.
	// if caller doesn't report new failed state for more than GracePeriod, we consider the exception recovered.
	HealthzCheckModeReport HealthzCheckMode = "report"
)
View Source
const (
	SmoothWindowAggFuncAvg  = "average"
	SmoothWindowAggFuncPerc = "percentile"
)

Variables

View Source
var (
	ErrNotFound    = fmt.Errorf("not found")
	ErrKeyNotExist = errors.New("key does not exist")
)

common errors

View Source
var (
	// NativeEndian is the native endian
	NativeEndian binary.ByteOrder
)

Functions

func BytesToString added in v0.4.1

func BytesToString(b []byte) string

func CheckMapEqual

func CheckMapEqual(pre, cur map[string]string) bool

func Clamp added in v0.3.0

func Clamp(value, min, max float64) float64

Clamp returns value itself if min < value < max; min if value < min; max if value > max

func CmpBool

func CmpBool(a, b bool) int

CmpBool compares booleans, placing true before false

func CmpError

func CmpError(err1, err2 error) int

CmpError compares errors, placing not nil before nil

func CmpFloat64

func CmpFloat64(a, b float64) int

CmpFloat64 compares float64s, placing greater before smaller

func CmpInt32

func CmpInt32(a, b int32) int

CmpInt32 compares int32s, placing greater before smaller

func CmpString added in v0.4.0

func CmpString(a, b string) int

CmpString compares strings, placing greater before smaller

func CovertInt64ToInt added in v0.2.0

func CovertInt64ToInt(numInt64 int64) (int, error)

func CovertUInt64ToInt added in v0.2.0

func CovertUInt64ToInt(numUInt64 uint64) (int, error)

func DeepCopyFload64Map added in v0.4.0

func DeepCopyFload64Map(origin map[string]float64) map[string]float64

func DeepCopyMap

func DeepCopyMap(origin map[string]string) map[string]string

func EnsureDirectory

func EnsureDirectory(dir string) error

func ErrorS added in v0.2.0

func ErrorS(err error, message string, params ...interface{})

func ErrorSPath added in v0.3.0

func ErrorSPath(pkg LoggingPKG, err error, message string, params ...interface{})

func Errorf added in v0.2.0

func Errorf(message string, params ...interface{})

func ErrorfPath added in v0.3.0

func ErrorfPath(pkg LoggingPKG, message string, params ...interface{})

func Fatalf added in v0.2.0

func Fatalf(message string, params ...interface{})

func FatalfPath added in v0.3.0

func FatalfPath(pkg LoggingPKG, message string, params ...interface{})

func FormatMemoryQuantity added in v0.3.0

func FormatMemoryQuantity(q float64) string

FormatMemoryQuantity aligned to Gi Mi Ki

func GenerateHash

func GenerateHash(data []byte, length int) string

func GetInt64PointerFromUint64Pointer

func GetInt64PointerFromUint64Pointer(v *uint64) (*int64, error)

func GetOneExistPath

func GetOneExistPath(paths []string) string

GetOneExistPath is to get one of exist paths

func GetRegisterReadinessCheckResult added in v0.4.1

func GetRegisterReadinessCheckResult() map[HealthzCheckName]HealthzCheckResult

func GetSortedMapKeys added in v0.2.0

func GetSortedMapKeys(m map[string]int) []string

GetSortedMapKeys returns a slice containing sorted keys for the given map

func GetStringValueFromMap

func GetStringValueFromMap(m map[string]string, key string) string

func GetValueWithDefault

func GetValueWithDefault(m map[string]string, key, defaultV string) string

GetValueWithDefault gets value from the given map, and returns default if key not exist

func InfoS added in v0.2.0

func InfoS(message string, params ...interface{})

func InfoSPath added in v0.3.0

func InfoSPath(pkg LoggingPKG, message string, params ...interface{})

func Infof added in v0.2.0

func Infof(message string, params ...interface{})

func InfofPath added in v0.3.0

func InfofPath(pkg LoggingPKG, message string, params ...interface{})

func InfofV added in v0.2.0

func InfofV(level int, message string, params ...interface{})

func InfofVPath added in v0.3.0

func InfofVPath(pkg LoggingPKG, level int, message string, params ...interface{})

func IntSliceToStringSlice

func IntSliceToStringSlice(a []int) []string

func IsErrKeyNotExist added in v0.4.0

func IsErrKeyNotExist(err error) bool

func IsErrNotFound added in v0.3.0

func IsErrNotFound(err error) bool

func IsNameEnabled

func IsNameEnabled(name string, disabledByDefault sets.String, enableNames []string) bool

IsNameEnabled check if a specified name enabled or not.

func IsPathExists

func IsPathExists(path string) bool

IsPathExists is to check this path whether exists

func IsUnimplementedError added in v0.4.0

func IsUnimplementedError(err error) bool

func IsUnmarshalTypeError added in v0.2.0

func IsUnmarshalTypeError(err error) bool

IsUnmarshalTypeError check whether is json unmarshal type error

func JsonPathEmpty

func JsonPathEmpty(str []byte) bool

JsonPathEmpty is used to check whether the given str is empty for json-patch

func LoadJsonConfig added in v0.4.0

func LoadJsonConfig(configAbsPath string, configObject interface{}) error

func Max

func Max(a, b int) int

func MaxFloat64 added in v0.3.0

func MaxFloat64(a, b float64) float64

func MaxInt64

func MaxInt64(a, b int64) int64

func MaxTimePtr added in v0.3.0

func MaxTimePtr(a, b *time.Time) *time.Time

func MaxUInt64

func MaxUInt64(a, b uint64) uint64

func MergeMap

func MergeMap(src, override map[string]string) map[string]string

MergeMap merges the contents from override into the src

func MergeMapInt added in v0.2.0

func MergeMapInt(src, override map[string]int) map[string]int

MergeMapInt merges the contents from override into the src

func Min

func Min(a, b int) int

func MinFloat64 added in v0.4.0

func MinFloat64(a, b float64) float64

func MinInt64 added in v0.4.0

func MinInt64(a, b int64) int64

func MinUInt32 added in v0.3.0

func MinUInt32(a, b uint32) uint32

func MinUInt64

func MinUInt64(a, b uint64) uint64

func ParseMapWithPrefix

func ParseMapWithPrefix(prefix, selector string) (map[string]string, error)

ParseMapWithPrefix converts selector string to label map and validates keys and values

func ParseStringToUint64Pointer

func ParseStringToUint64Pointer(s string) (*uint64, error)

func ParseUint64PointerToString

func ParseUint64PointerToString(v *uint64) string

func ReadFileIntoInt added in v0.2.0

func ReadFileIntoInt(filepath string) (int, error)

ReadFileIntoInt read contents from the given file, and parse them into integer

func ReadFileIntoLines added in v0.2.0

func ReadFileIntoLines(filepath string) ([]string, error)

ReadFileIntoLines read contents from the given file, and parse them into string slice; each string indicates a line in the file

func RegisterFileEventWatcher

func RegisterFileEventWatcher(stop <-chan struct{}, fileWatcherInfo FileWatcherInfo) (<-chan struct{}, error)

RegisterFileEventWatcher inotify the given file and report the changed information to the caller through returned channel

func RegisterHeartbeatCheck added in v0.4.1

func RegisterHeartbeatCheck(name string, timeout time.Duration, initState HealthzCheckState, tolerationPeriod time.Duration)

func RegisterReportCheck added in v0.4.1

func RegisterReportCheck(name string, autoRecoverPeriod time.Duration)

func ReleaseUniqueLock

func ReleaseUniqueLock(lock *Flock)

ReleaseUniqueLock release the given file lock

func SetDefaultLoggingPackage added in v0.3.0

func SetDefaultLoggingPackage(l LoggingPKG)

SetDefaultLoggingPackage should only be called by flags, and should not be alerted dynamically.

func SliceContains added in v0.4.1

func SliceContains(list interface{}, elem interface{}) bool

SliceContains returns true if an element is present in a slice.

func StructToString added in v0.4.1

func StructToString(val interface{}) string

func SumUpMapValues added in v0.2.0

func SumUpMapValues(m map[string]int) int

SumUpMapValues accumulates total values for the given map

func SumUpMultipleMapValues added in v0.2.0

func SumUpMultipleMapValues(m map[string]map[string]int) int

SumUpMultipleMapValues accumulates total values for the given multi-level map

func ToString

func ToString(in interface{}) string

ToString transform to string for better display etc. in log

func UInt64PointerToFloat64

func UInt64PointerToFloat64(p *uint64) float64

func UIntPointerToFloat64

func UIntPointerToFloat64(p *uint) float64

func UpdateHealthzState added in v0.4.1

func UpdateHealthzState(name string, state HealthzCheckState, message string) error

func UpdateHealthzStateByError added in v0.4.1

func UpdateHealthzStateByError(name string, err error) error

func Warningf added in v0.2.0

func Warningf(message string, params ...interface{})

func WarningfPath added in v0.3.0

func WarningfPath(pkg LoggingPKG, message string, params ...interface{})

Types

type CappedSmoothWindow

type CappedSmoothWindow struct {
	sync.Mutex

	SmoothWindow
	// contains filtered or unexported fields
}

func NewCappedSmoothWindow

func NewCappedSmoothWindow(minStep resource.Quantity, maxStep resource.Quantity, smoothWindow SmoothWindow) *CappedSmoothWindow

NewCappedSmoothWindow creates a capped SmoothWindow, which

func (*CappedSmoothWindow) GetWindowedResources

func (m *CappedSmoothWindow) GetWindowedResources(value resource.Quantity) *resource.Quantity

GetWindowedResources cap the value return by smooth window min to max

type CmpFunc

type CmpFunc func(i1, i2 interface{}) int

func ReverseCmpFunc

func ReverseCmpFunc(cmpFunc CmpFunc) CmpFunc

type FileWatcherInfo

type FileWatcherInfo struct {
	// if Filename is empty, it means that we should watch all file events in all paths,
	// otherwise, watch this specific file in all paths
	Filename string
	Path     []string
	Op       fsnotify.Op
}

type Flock

type Flock struct {
	LockFile string
	// contains filtered or unexported fields
}

func GetUniqueLock

func GetUniqueLock(filename string) (*Flock, error)

GetUniqueLock is a wrapper function for getUniqueLockWithTimeout with default configurations

func (*Flock) Lock

func (f *Flock) Lock() (e error)

func (*Flock) Release

func (f *Flock) Release()

func (*Flock) Unlock

func (f *Flock) Unlock()

type HealthzCheckFunc added in v0.2.0

type HealthzCheckFunc func() (healthzCheckStatus, error)

HealthzCheckFunc defined as a common function to define whether the corresponding component is healthy.

type HealthzCheckMode added in v0.4.1

type HealthzCheckMode string

type HealthzCheckName added in v0.2.0

type HealthzCheckName string

HealthzCheckName describes which rule name for this check

type HealthzCheckResult added in v0.4.1

type HealthzCheckResult struct {
	Ready   bool   `json:"ready"`
	Message string `json:"message"`
}

type HealthzCheckState added in v0.2.0

type HealthzCheckState string

HealthzCheckState describes the checking results

type Logger added in v0.2.0

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

func LoggerWithPrefix added in v0.2.0

func LoggerWithPrefix(prefix string, pkg LoggingPKG) Logger

func (Logger) ErrorS added in v0.2.0

func (l Logger) ErrorS(err error, message string, params ...interface{})

func (Logger) Errorf added in v0.2.0

func (l Logger) Errorf(message string, params ...interface{})

func (Logger) Fatalf added in v0.2.0

func (l Logger) Fatalf(message string, params ...interface{})

func (Logger) InfoS added in v0.2.0

func (l Logger) InfoS(message string, params ...interface{})

func (Logger) Infof added in v0.2.0

func (l Logger) Infof(message string, params ...interface{})

func (Logger) InfofV added in v0.2.0

func (l Logger) InfofV(level int, message string, params ...interface{})

func (Logger) Warningf added in v0.2.0

func (l Logger) Warningf(message string, params ...interface{})

type LoggingPKG added in v0.2.0

type LoggingPKG int
const (
	LoggingPKGNone LoggingPKG = iota
	LoggingPKGShort
	LoggingPKGFull
)

func (*LoggingPKG) Set added in v0.3.0

func (l *LoggingPKG) Set(value string) error

func (*LoggingPKG) String added in v0.3.0

func (l *LoggingPKG) String() string

func (*LoggingPKG) Type added in v0.3.0

func (l *LoggingPKG) Type() string

type MultiSorter

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

MultiSorter implements the Sort interface, sorting changes within.

func NewMultiSorter

func NewMultiSorter(cmp ...CmpFunc) *MultiSorter

NewMultiSorter returns a Sorter that sorts using the cmp functions, in order. Call its Sort method to sort the data.

func (*MultiSorter) Sort

func (ms *MultiSorter) Sort(sources SourceList)

Sort sorts the argument slice according to the Less functions passed to NewMultiSorter.

type ResourceList

type ResourceList v1.ResourceList

func (*ResourceList) Set

func (r *ResourceList) Set(value string) error

func (*ResourceList) String

func (r *ResourceList) String() string

func (*ResourceList) Type

func (r *ResourceList) Type() string

type SmoothWindow

type SmoothWindow interface {
	// GetWindowedResources receives a sample and returns the result after smoothing,
	// it can return nil if there are not enough samples in this window
	GetWindowedResources(value resource.Quantity) *resource.Quantity

	Empty() bool
}

SmoothWindow is used to smooth the resource

func NewAggregatorSmoothWindow added in v0.3.0

func NewAggregatorSmoothWindow(opts SmoothWindowOpts) SmoothWindow

func NewAverageWithTTLSmoothWindow

func NewAverageWithTTLSmoothWindow(windowSize int, ttl time.Duration, usedMillValue bool) SmoothWindow

NewAverageWithTTLSmoothWindow create a smooth window with ttl and window size, and the window size is the sample count while the ttl is the valid lifetime of each sample, and the usedMillValue means whether calculate the result with milli-value.

func NewPercentileWithTTLSmoothWindow added in v0.3.0

func NewPercentileWithTTLSmoothWindow(windowSize int, ttl time.Duration, percentile float64, usedMillValue bool) SmoothWindow

NewPercentileWithTTLSmoothWindow create a smooth window with ttl and window size, and the window size is the sample count while the ttl is the valid lifetime of each sample, and the usedMillValue means whether calculate the result with milli-value.

type SmoothWindowOpts added in v0.3.0

type SmoothWindowOpts struct {
	WindowSize    int
	TTL           time.Duration
	UsedMillValue bool
	AggregateFunc string
	AggregateArgs string
}

type SourceList

type SourceList interface {
	Len() int
	GetSource(index int) interface{}
	SetSource(index int, s interface{})
}

type TTLSmoothWindow added in v0.4.0

type TTLSmoothWindow struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewTTLSmoothWindow added in v0.4.0

func NewTTLSmoothWindow(windowSize int, ttl time.Duration, usedMillValue bool) *TTLSmoothWindow

func (*TTLSmoothWindow) Empty added in v0.4.0

func (w *TTLSmoothWindow) Empty() bool

Jump to

Keyboard shortcuts

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