Documentation
¶
Overview ¶
Package receiver implements the receiver service.
Index ¶
- Constants
- Variables
- type BatchingStorage
- type HitValidatingRule
- func HitValidatingRuleSet(maxHitSizeBytes uint32, settings properties.SettingsRegistry) HitValidatingRule
- func NewMultipleHitValidatingRule(rules ...HitValidatingRule) HitValidatingRule
- func NewSimpleHitValidatingRule(rule func(protocol.Protocol, *hits.Hit) error) HitValidatingRule
- func PropertyProtocolMatchesTheEndpointProtocol(settings properties.SettingsRegistry) HitValidatingRule
- func TotalHitSizeDoesNotExceed(maxHitSizeBytes uint32) HitValidatingRule
- type NoopRawLogStorage
- type RawLogStorage
- type Server
- type ServerOption
- type Storage
Constants ¶
const ( // HitProtocolMetadataKey is the key used to store the protocol ID in the hit metadata HitProtocolMetadataKey string = "protocol" )
Variables ¶
var ClientIDNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.ClientID == "" || hit.AuthoritativeClientID == "" { return fmt.Errorf("hit.ClientID and hit.AuthoritativeClientID can not be empty") } return nil })
ClientIDNotEmpty validates that both ClientID and AuthoritativeClientID are not empty.
var EventNameNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.EventName == "" { return fmt.Errorf("hit.EventName can not be empty") } return nil })
EventNameNotEmpty validates that EventName is not empty.
var HitBodyNotNil = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.MustParsedRequest().Body == nil { return fmt.Errorf("hit.Body can not be nil") } return nil })
HitBodyNotNil validates that Body is not nil.
var HitHeadersNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if len(hit.MustParsedRequest().Headers) == 0 { return fmt.Errorf("hit.Headers can not be empty") } return nil })
HitHeadersNotEmpty validates that Headers are not empty.
var HitHostNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.MustParsedRequest().Host == "" { return fmt.Errorf("hit.Host can not be empty") } return nil })
HitHostNotEmpty validates that Host is not empty.
var HitMethodNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.MustParsedRequest().Method == "" { return fmt.Errorf("hit.Method can not be empty") } return nil })
HitMethodNotEmpty validates that Method is not empty.
var HitPathNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.MustParsedRequest().Path == "" { return fmt.Errorf("hit.Path can not be empty") } return nil })
HitPathNotEmpty validates that Path is not empty.
var HitQueryParamsNotNil = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.MustParsedRequest().QueryParams == nil { return fmt.Errorf("hit.QueryParams can not be nil") } return nil })
HitQueryParamsNotNil validates that QueryParams are not nil.
var PropertyIDNotEmpty = NewSimpleHitValidatingRule(func(_ protocol.Protocol, hit *hits.Hit) error { if hit.PropertyID == "" { return fmt.Errorf("hit.PropertyID can not be empty") } return nil })
PropertyIDNotEmpty validates that PropertyID is not empty.
Functions ¶
This section is empty.
Types ¶
type BatchingStorage ¶
type BatchingStorage struct {
// contains filtered or unexported fields
}
BatchingStorage is a storage that batches hits and flushes them to a child storage.
func NewBatchingStorage ¶
func NewBatchingStorage(child Storage, batchSize int, timeout time.Duration) *BatchingStorage
NewBatchingStorage creates a new BatchingStorage instance.
func (*BatchingStorage) Close ¶
func (bs *BatchingStorage) Close()
Close closes the BatchingStorage instance.
func (*BatchingStorage) Flush ¶
func (bs *BatchingStorage) Flush() error
Flush flushes the buffer to the child storage.
type HitValidatingRule ¶
HitValidatingRule defines the interface for validating hits.
func HitValidatingRuleSet ¶
func HitValidatingRuleSet( maxHitSizeBytes uint32, settings properties.SettingsRegistry, ) HitValidatingRule
HitValidatingRuleSet returns a complete set of validation rules for hits.
func NewMultipleHitValidatingRule ¶
func NewMultipleHitValidatingRule(rules ...HitValidatingRule) HitValidatingRule
NewMultipleHitValidatingRule creates a new validating rule that combines multiple rules.
func NewSimpleHitValidatingRule ¶
NewSimpleHitValidatingRule creates a new validating rule from a simple function.
func PropertyProtocolMatchesTheEndpointProtocol ¶ added in v0.19.4
func PropertyProtocolMatchesTheEndpointProtocol(settings properties.SettingsRegistry) HitValidatingRule
PropertyProtocolMatchesTheEndpointProtocol checks if the protocols of endpoint and property match.
func TotalHitSizeDoesNotExceed ¶ added in v0.17.0
func TotalHitSizeDoesNotExceed(maxHitSizeBytes uint32) HitValidatingRule
TotalHitSizeDoesNotExceed validates that the total size of the hit does not exceed the max allowed size.
type NoopRawLogStorage ¶ added in v0.13.0
type NoopRawLogStorage struct{}
NoopRawLogStorage discards all raw log data.
func (*NoopRawLogStorage) Store ¶ added in v0.13.0
func (n *NoopRawLogStorage) Store(_ *hits.ParsedRequest) error
Store implements RawLogStorage
type RawLogStorage ¶
type RawLogStorage interface {
Store(*hits.ParsedRequest) error
}
RawLogStorage defines the interface for storing raw log data
func NewDummyRawLogStorage ¶
func NewDummyRawLogStorage() RawLogStorage
NewDummyRawLogStorage creates a dummy raw log storage that discards all data.
func NewNoopRawLogStorage ¶ added in v0.13.0
func NewNoopRawLogStorage() RawLogStorage
NewNoopRawLogStorage creates a noop raw log storage that discards all data.
type Server ¶ added in v0.17.0
type Server struct {
// contains filtered or unexported fields
}
Server holds all server-related dependencies and configuration
func NewServer ¶ added in v0.17.0
func NewServer( storage Storage, rawLogStorage RawLogStorage, validationRules HitValidatingRule, protocols []protocol.Protocol, port int, opts ...ServerOption, ) *Server
NewServer creates a new Server instance with the provided dependencies
type ServerOption ¶ added in v0.38.0
type ServerOption func(*Server)
func WithHost ¶ added in v0.38.0
func WithHost(host string) ServerOption
type Storage ¶
Storage is a storage interface for storing hits
func NewDropToStdoutStorage ¶
func NewDropToStdoutStorage() Storage
NewDropToStdoutStorage creates a new storage instance that writes hits to stdout