common

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	URISchemeUnknown = ""
	URISchemeHttp    = "http"
	URISchemeHttps   = "https"
)
View Source
const (
	URIPortUnknown = ""
	URIPortHttp    = "80"
	URIPortHttps   = "443"
)

Variables

This section is empty.

Functions

func Duration

func Duration(s string, def time.Duration) time.Duration

func Md5

func Md5(b []byte) []byte

func Md5ToString

func Md5ToString(b []byte) string

func NormalizeCountries

func NormalizeCountries(countries []string) []string

func NormalizeCountry

func NormalizeCountry(s string) string

func NormalizeURI

func NormalizeURI(s string) string

func URIScheme

func URIScheme(uri string) string

Types

type Detector

type Detector interface {
	Name() string
	Schedule() string
	Start(ctx context.Context)
	Detect() error
}

type DetectorOptions

type DetectorOptions struct {
	StartTimeout int
}

type Detectors

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

func NewDetectors

func NewDetectors(options *DetectorOptions, observability *Observability) *Detectors

func (*Detectors) Add

func (ds *Detectors) Add(d ...Detector)

func (*Detectors) Scheduled

func (ds *Detectors) Scheduled() bool

func (*Detectors) Start

func (ds *Detectors) Start(once, wait bool, ctx context.Context)

type Notifier

type Notifier interface {
	Name() string
	Notify(vr *VerifyResult) error
}

type NotifierConfiguration

type NotifierConfiguration struct {
	Notifier    Notifier
	Probability NotifierProbability
}

type NotifierProbability

type NotifierProbability = float64

type Notifiers

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

func NewNotifiers

func NewNotifiers(observability *Observability) *Notifiers

func (*Notifiers) Add

func (ns *Notifiers) Add(n Notifier)

func (*Notifiers) FindConfigurationByPattern

func (ns *Notifiers) FindConfigurationByPattern(pattern string) []*NotifierConfiguration

func (*Notifiers) GetDefaultConfigurations

func (ns *Notifiers) GetDefaultConfigurations() []*NotifierConfiguration

func (*Notifiers) Items

func (ns *Notifiers) Items() []Notifier

type Observability

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

func NewObservability

func NewObservability(logs *sre.Logs, metrics *sre.Metrics) *Observability

func (*Observability) Debug

func (o *Observability) Debug(obj interface{}, args ...interface{})

func (*Observability) Error

func (o *Observability) Error(obj interface{}, args ...interface{})

func (*Observability) Info

func (o *Observability) Info(obj interface{}, args ...interface{})

func (*Observability) Logs

func (o *Observability) Logs() *sre.Logs

func (*Observability) Metrics

func (o *Observability) Metrics() *sre.Metrics

func (*Observability) Panic added in v0.0.3

func (o *Observability) Panic(obj interface{}, args ...interface{})

Panic implements common.Logger.

func (*Observability) Warn

func (o *Observability) Warn(obj interface{}, args ...interface{})

type ObserveCountries

type ObserveCountries = map[string]*ObserveProbability

type ObserveEndpoint

type ObserveEndpoint struct {
	URI       string
	Countries ObserveCountries
	IPs       []string
	Response  *SourceEndpointResponse
}

type ObserveEndpoints

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

func (*ObserveEndpoints) Add

func (oes *ObserveEndpoints) Add(e ...*ObserveEndpoint)

func (*ObserveEndpoints) Clone

func (*ObserveEndpoints) IsEmpty

func (oes *ObserveEndpoints) IsEmpty() bool

func (*ObserveEndpoints) Items

func (oes *ObserveEndpoints) Items() []*ObserveEndpoint

func (*ObserveEndpoints) Reduce

func (oes *ObserveEndpoints) Reduce() ObserveEndpoints

type ObserveProbability

type ObserveProbability = float64

type ObserveResult

type ObserveResult struct {
	Configuration *ObserverConfiguration
	Endpoints     ObserveEndpoints
}

type Observer

type Observer interface {
	Name() string
	Observe(sr *SourceResult) (*ObserveResult, error)
}

type ObserverConfiguration

type ObserverConfiguration struct {
	Observer    Observer
	Probability ObserveProbability
}

type Observers

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

func NewObservers

func NewObservers(observability *Observability) *Observers

func (*Observers) Add

func (ob *Observers) Add(o Observer)

func (*Observers) FindConfigurationByPattern

func (ob *Observers) FindConfigurationByPattern(pattern string) []*ObserverConfiguration

func (*Observers) GetDefaultConfigurations

func (ob *Observers) GetDefaultConfigurations() []*ObserverConfiguration

func (*Observers) Items

func (ob *Observers) Items() []Observer

type Source

type Source interface {
	Name() string
	Start(ctx context.Context) error
	Load() (*SourceResult, error)
}

type SourceEndpoint

type SourceEndpoint struct {
	URI       string                  `json:"uri"`
	Disabled  bool                    `json:"disabled"`
	Countries []string                `json:"countries,omitempty"`
	IPs       []string                `json:"ips,omitempty"`
	Detectors []string                `json:"detectors,omitempty"`
	Response  *SourceEndpointResponse `json:"response,omitempty"`
}

func CheckSourceEndpoints

func CheckSourceEndpoints(es []*SourceEndpoint) []*SourceEndpoint

type SourceEndpointResponse

type SourceEndpointResponse struct {
	Code    string `json:"code,omitempty"`
	Content string `json:"content,omitempty"`
}

type SourceEndpoints

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

func (*SourceEndpoints) Add

func (ses *SourceEndpoints) Add(e ...*SourceEndpoint)

func (*SourceEndpoints) Clone

func (*SourceEndpoints) IsEmpty

func (ses *SourceEndpoints) IsEmpty() bool

func (*SourceEndpoints) Items

func (ses *SourceEndpoints) Items() []*SourceEndpoint

func (*SourceEndpoints) Reduce

func (ses *SourceEndpoints) Reduce() SourceEndpoints

type SourceResult

type SourceResult struct {
	Endpoints SourceEndpoints
}

type Sources

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

func NewSources

func NewSources(observability *Observability) *Sources

func (*Sources) Add

func (ss *Sources) Add(s Source)

func (*Sources) FindByName

func (ss *Sources) FindByName(name string) Source

func (*Sources) Items

func (ss *Sources) Items() []Source

type TriggerOptions

type TriggerOptions struct {
	TTL string
}

type Triggers

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

func NewTriggers

func NewTriggers(options *TriggerOptions, observability *Observability) *Triggers

func (*Triggers) Exists

func (t *Triggers) Exists(key string) bool

func (*Triggers) Update

func (t *Triggers) Update(key string, ep *VerifyEndpoint)

type URI

type URI struct {
	Scheme   string
	UserName string
	Password string
	Host     string
	Port     string
	Path     string
	Query    string
	Fragment string
}

type Verifier

type Verifier interface {
	Name() string
	Verify(or *ObserveResult) (*VerifyResult, error)
}

type VerifierConfiguration

type VerifierConfiguration struct {
	Verifier    Verifier
	Probability VerifyProbability
}

type Verifiers

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

func NewVerifiers

func NewVerifiers(observability *Observability) *Verifiers

func (*Verifiers) Add

func (vs *Verifiers) Add(v Verifier)

func (*Verifiers) FindConfigurationByPattern

func (vs *Verifiers) FindConfigurationByPattern(pattern string) []*VerifierConfiguration

func (*Verifiers) GetDefaultConfigurations

func (vs *Verifiers) GetDefaultConfigurations() []*VerifierConfiguration

func (*Verifiers) Items

func (vs *Verifiers) Items() []Verifier

type VerifyCountries

type VerifyCountries = map[string]*VerifyStatus

type VerifyEndpoint

type VerifyEndpoint struct {
	URI       string
	Countries VerifyCountries
}

func (*VerifyEndpoint) Ident

func (ve *VerifyEndpoint) Ident() string

type VerifyEndpoints

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

func (*VerifyEndpoints) Add

func (ves *VerifyEndpoints) Add(e ...*VerifyEndpoint)

func (*VerifyEndpoints) Clone

func (*VerifyEndpoints) IsEmpty

func (ves *VerifyEndpoints) IsEmpty() bool

func (*VerifyEndpoints) Items

func (ves *VerifyEndpoints) Items() []*VerifyEndpoint

func (*VerifyEndpoints) Reduce

func (ves *VerifyEndpoints) Reduce() VerifyEndpoints

type VerifyProbability

type VerifyProbability = float64

type VerifyResult

type VerifyResult struct {
	Configuration *VerifierConfiguration
	Endpoints     VerifyEndpoints
}

type VerifyStatus

type VerifyStatus struct {
	Probability *VerifyProbability
	Flags       VerifyStatusFlags
}

type VerifyStatusFlag

type VerifyStatusFlag = string
const (
	VerifyStatusFlagWrongIPAddress    VerifyStatusFlag = "wrong_ip_address"
	VerifyStatusFlagWrongResponseCode VerifyStatusFlag = "wrong_response_code"
)

type VerifyStatusFlags

type VerifyStatusFlags = map[VerifyStatusFlag]bool

Jump to

Keyboard shortcuts

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