Documentation
¶
Index ¶
- Constants
- type EventStorageConsumer
- type EventStorageProducer
- type EventsStorage
- type ImpressionStorage
- type ImpressionStorageConsumer
- type ImpressionStorageProducer
- type MetricWrapper
- type MetricsStorage
- type MetricsStorageConsumer
- type MetricsStorageProducer
- type SegmentStorage
- type SegmentStorageConsumer
- type SegmentStorageProducer
- type SplitStorage
- type SplitStorageConsumer
- type SplitStorageProducer
Constants ¶
const ( // SplitChangesCounter counters SplitChangesCounter = iota // SplitChangesLatency latencies SplitChangesLatency // SegmentChangesCounter counters SegmentChangesCounter // SegmentChangesLatency latencies SegmentChangesLatency // TestImpressionsCounter counter TestImpressionsCounter // TestImpressionsLatency latencies TestImpressionsLatency // PostEventsCounter counter PostEventsCounter //PostEventsLatency latencies PostEventsLatency // MySegmentsCounter counters MySegmentsCounter // MySegmentsLatency latencies MySegmentsLatency )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EventStorageConsumer ¶
type EventStorageConsumer interface {
Count() int64
Drop(size *int64) error
Empty() bool
PopN(n int64) ([]dtos.EventDTO, error)
PopNWithMetadata(n int64) ([]dtos.QueueStoredEventDTO, error)
}
EventStorageConsumer interface should be implemented by structs that offer popping impressions
type EventStorageProducer ¶
EventStorageProducer interface should be implemented by structs that accept incoming events
type EventsStorage ¶
type EventsStorage interface {
EventStorageConsumer
EventStorageProducer
}
EventsStorage wraps consumer and producer interfaces
type ImpressionStorage ¶
type ImpressionStorage interface {
ImpressionStorageConsumer
ImpressionStorageProducer
}
ImpressionStorage wraps consumer & producer interfaces
type ImpressionStorageConsumer ¶
type ImpressionStorageConsumer interface {
PopNRaw(int64) ([]string, error)
Count() int64
Drop(size *int64) error
Empty() bool
PopN(n int64) ([]dtos.Impression, error)
PopNWithMetadata(n int64) ([]dtos.ImpressionQueueObject, error)
}
ImpressionStorageConsumer interface should be implemented by structs that offer popping impressions
type ImpressionStorageProducer ¶
type ImpressionStorageProducer interface {
LogImpressions(impressions []dtos.Impression) error
}
ImpressionStorageProducer interface should be impemented by structs that accept incoming impressions
type MetricWrapper ¶
type MetricWrapper struct {
Telemetry MetricsStorage
LocalTelemetry MetricsStorage
// contains filtered or unexported fields
}
MetricWrapper struct
func NewMetricWrapper ¶
func NewMetricWrapper(telemetry MetricsStorage, localTelemetry MetricsStorage, logger logging.LoggerInterface) *MetricWrapper
NewMetricWrapper builds new wrapper
func (*MetricWrapper) StoreCounters ¶
func (m *MetricWrapper) StoreCounters(key int, value string)
StoreCounters stores counters
func (*MetricWrapper) StoreLatencies ¶
func (m *MetricWrapper) StoreLatencies(key int, bucket int)
StoreLatencies stores counters
type MetricsStorage ¶
type MetricsStorage interface {
MetricsStorageConsumer
MetricsStorageProducer
}
MetricsStorage wraps consumer and producer interfaces
type MetricsStorageConsumer ¶
type MetricsStorageConsumer interface {
PeekCounters() map[string]int64
PeekLatencies() map[string][]int64
PopGauges() []dtos.GaugeDTO
PopLatencies() []dtos.LatenciesDTO
PopCounters() []dtos.CounterDTO
PopGaugesWithMetadata() (*dtos.GaugeDataBulk, error)
PopLatenciesWithMetadata() (*dtos.LatencyDataBulk, error)
PopCountersWithMetadata() (*dtos.CounterDataBulk, error)
}
MetricsStorageConsumer interface should be implemented by structs that offer popping metrics
type MetricsStorageProducer ¶
type MetricsStorageProducer interface {
PutGauge(key string, gauge float64)
IncLatency(metricName string, index int)
IncCounter(key string)
}
MetricsStorageProducer interface should be impemented by structs that accept incoming metrics
type SegmentStorage ¶
type SegmentStorage interface {
SegmentStorageProducer
SegmentStorageConsumer
}
SegmentStorage wraps consumer and producer interfaces
type SegmentStorageConsumer ¶
type SegmentStorageConsumer interface {
ChangeNumber(segmentName string) (int64, error)
CountRemovedKeys(segmentName string) int64
Keys(segmentName string) *set.ThreadUnsafeSet
SegmentContainsKey(segmentName string, key string) (bool, error)
}
SegmentStorageConsumer interface should be implemented by all structs that ofer reading segments
type SegmentStorageProducer ¶
type SegmentStorageProducer interface {
Update(name string, toAdd *set.ThreadUnsafeSet, toRemove *set.ThreadUnsafeSet, changeNumber int64) error
SetChangeNumber(segmentName string, till int64) error
}
SegmentStorageProducer interface should be implemented by all structs that offer writing segments
type SplitStorage ¶
type SplitStorage interface {
SplitStorageProducer
SplitStorageConsumer
}
SplitStorage wraps consumer & producer interfaces
type SplitStorageConsumer ¶
type SplitStorageConsumer interface {
All() []dtos.SplitDTO
ChangeNumber() (int64, error)
FetchMany(splitNames []string) map[string]*dtos.SplitDTO
SegmentNames() *set.ThreadUnsafeSet // Not in Spec
Split(splitName string) *dtos.SplitDTO
SplitNames() []string
TrafficTypeExists(trafficType string) bool
}
SplitStorageConsumer should be implemented by structs that offer reading splits from storage
type SplitStorageProducer ¶
type SplitStorageProducer interface {
KillLocally(splitName string, defaultTreatment string, changeNumber int64)
PutMany(splits []dtos.SplitDTO, changeNumber int64)
Remove(splitName string)
SetChangeNumber(changeNumber int64) error
}
SplitStorageProducer should be implemented by structs that offer writing splits in storage