Documentation ¶
Index ¶
- Constants
- Variables
- func SetLoggerOnPlugin(i interface{}, log cua.Logger)
- type AggregatorConfig
- type Buffer
- type Filter
- type InputConfig
- type Logger
- func (l *Logger) Debug(args ...interface{})
- func (l *Logger) Debugf(format string, args ...interface{})
- func (l *Logger) Error(args ...interface{})
- func (l *Logger) Errorf(format string, args ...interface{})
- func (l *Logger) Info(args ...interface{})
- func (l *Logger) Infof(format string, args ...interface{})
- func (l *Logger) OnErr(f func())
- func (l *Logger) Warn(args ...interface{})
- func (l *Logger) Warnf(format string, args ...interface{})
- type OutputConfig
- type ProcessorConfig
- type RunningAggregator
- func (r *RunningAggregator) Add(m cua.Metric) bool
- func (r *RunningAggregator) EndPeriod() time.Time
- func (r *RunningAggregator) Init() error
- func (r *RunningAggregator) Log() cua.Logger
- func (r *RunningAggregator) LogName() string
- func (r *RunningAggregator) MakeMetric(metric cua.Metric) cua.Metric
- func (r *RunningAggregator) Period() time.Duration
- func (r *RunningAggregator) Push(acc cua.Accumulator)
- func (r *RunningAggregator) UpdateWindow(start, until time.Time)
- type RunningInput
- func (r *RunningInput) Gather(ctx context.Context, acc cua.Accumulator) error
- func (r *RunningInput) Init() error
- func (r *RunningInput) Log() cua.Logger
- func (r *RunningInput) LogName() string
- func (r *RunningInput) MakeMetric(metric cua.Metric) cua.Metric
- func (r *RunningInput) SetDefaultTags(tags map[string]string)
- type RunningOutput
- func (ro *RunningOutput) AddMetric(metric cua.Metric)
- func (ro *RunningOutput) BufferLength() int
- func (ro *RunningOutput) Close()
- func (ro *RunningOutput) Init() error
- func (ro *RunningOutput) Log() cua.Logger
- func (ro *RunningOutput) LogBufferStatus()
- func (ro *RunningOutput) LogName() string
- func (ro *RunningOutput) Write() error
- func (ro *RunningOutput) WriteBatch() error
- type RunningProcessor
- func (rp *RunningProcessor) Add(m cua.Metric, acc cua.Accumulator) error
- func (rp *RunningProcessor) Init() error
- func (rp *RunningProcessor) Log() cua.Logger
- func (rp *RunningProcessor) LogName() string
- func (rp *RunningProcessor) MakeMetric(metric cua.Metric) cua.Metric
- func (rp *RunningProcessor) Start(acc cua.Accumulator) error
- func (rp *RunningProcessor) Stop()
- type RunningProcessors
- type TagFilter
Constants ¶
const ( // Default size of metrics batch size. DefaultMetricBatchSize = 1000 // Default number of metrics kept. It should be a multiple of batch size. DefaultMetricBufferLimit = 10000 )
Variables ¶
Functions ¶
func SetLoggerOnPlugin ¶
Types ¶
type AggregatorConfig ¶
type AggregatorConfig struct { Tags map[string]string Name string Alias string MeasurementSuffix string NameOverride string MeasurementPrefix string Filter Filter Grace time.Duration Period time.Duration Delay time.Duration DropOriginal bool }
AggregatorConfig is the common config for all aggregators.
type Buffer ¶
type Buffer struct { sync.Mutex BufferSize selfstat.Stat MetricsDropped selfstat.Stat MetricsWritten selfstat.Stat MetricsAdded selfstat.Stat BufferLimit selfstat.Stat // contains filtered or unexported fields }
Buffer stores metrics in a circular buffer.
func (*Buffer) Batch ¶
Batch returns a slice containing up to batchSize of the oldest metrics not yet dropped. Metrics are ordered from oldest to newest in the batch. The batch must not be modified by the client.
type Filter ¶
type Filter struct { NameDrop []string FieldPass []string TagDrop []TagFilter TagPass []TagFilter TagExclude []string FieldDrop []string TagInclude []string NamePass []string // contains filtered or unexported fields }
Filter containing drop/pass and tagdrop/tagpass rules
type InputConfig ¶
type InputConfig struct { Tags map[string]string Name string InstanceID string Alias string NameOverride string MeasurementPrefix string MeasurementSuffix string Filter Filter Precision time.Duration Interval time.Duration CollectionJitter time.Duration }
InputConfig is the common config for all inputs.
type Logger ¶
type Logger struct { Name string // Name is the plugin name, will be printed in the `[]`. OnErrs []func() }
Logger defines a logging structure for plugins.
func (*Logger) Debug ¶
func (l *Logger) Debug(args ...interface{})
Debug logs a debug message, patterned after log.Print.
func (*Logger) Error ¶
func (l *Logger) Error(args ...interface{})
Error logs an error message, patterned after log.Print.
func (*Logger) Info ¶
func (l *Logger) Info(args ...interface{})
Info logs an information message, patterned after log.Print.
func (*Logger) OnErr ¶
func (l *Logger) OnErr(f func())
OnErr defines a callback that triggers only when errors are about to be written to the log
type OutputConfig ¶
type OutputConfig struct { Name string Alias string NamePrefix string NameSuffix string NameOverride string Filter Filter FlushJitter time.Duration MetricBufferLimit int MetricBatchSize int FlushInterval time.Duration }
OutputConfig containing name and filter
type ProcessorConfig ¶
FilterConfig containing a name and filter
type RunningAggregator ¶
type RunningAggregator struct { sync.Mutex Aggregator cua.Aggregator Config *AggregatorConfig MetricsPushed selfstat.Stat MetricsFiltered selfstat.Stat MetricsDropped selfstat.Stat PushTime selfstat.Stat // contains filtered or unexported fields }
func NewRunningAggregator ¶
func NewRunningAggregator(aggregator cua.Aggregator, config *AggregatorConfig) *RunningAggregator
func (*RunningAggregator) Add ¶
func (r *RunningAggregator) Add(m cua.Metric) bool
Add a metric to the aggregator and return true if the original metric should be dropped.
func (*RunningAggregator) EndPeriod ¶
func (r *RunningAggregator) EndPeriod() time.Time
func (*RunningAggregator) Init ¶
func (r *RunningAggregator) Init() error
func (*RunningAggregator) Log ¶
func (r *RunningAggregator) Log() cua.Logger
func (*RunningAggregator) LogName ¶
func (r *RunningAggregator) LogName() string
func (*RunningAggregator) MakeMetric ¶
func (r *RunningAggregator) MakeMetric(metric cua.Metric) cua.Metric
func (*RunningAggregator) Period ¶
func (r *RunningAggregator) Period() time.Duration
func (*RunningAggregator) Push ¶
func (r *RunningAggregator) Push(acc cua.Accumulator)
func (*RunningAggregator) UpdateWindow ¶
func (r *RunningAggregator) UpdateWindow(start, until time.Time)
type RunningInput ¶
type RunningInput struct { Input cua.Input Config *InputConfig MetricsGathered selfstat.Stat GatherTime selfstat.Stat // contains filtered or unexported fields }
func NewRunningInput ¶
func NewRunningInput(input cua.Input, config *InputConfig) *RunningInput
func (*RunningInput) Gather ¶
func (r *RunningInput) Gather(ctx context.Context, acc cua.Accumulator) error
func (*RunningInput) Init ¶
func (r *RunningInput) Init() error
func (*RunningInput) Log ¶
func (r *RunningInput) Log() cua.Logger
func (*RunningInput) LogName ¶
func (r *RunningInput) LogName() string
func (*RunningInput) MakeMetric ¶
func (r *RunningInput) MakeMetric(metric cua.Metric) cua.Metric
func (*RunningInput) SetDefaultTags ¶
func (r *RunningInput) SetDefaultTags(tags map[string]string)
type RunningOutput ¶
type RunningOutput struct { MetricsFiltered selfstat.Stat WriteTime selfstat.Stat Output cua.Output Config *OutputConfig BatchReady chan time.Time MetricBufferLimit int MetricBatchSize int // contains filtered or unexported fields }
RunningOutput contains the output configuration
func NewRunningOutput ¶
func NewRunningOutput( name string, output cua.Output, config *OutputConfig, batchSize int, bufferLimit int, ) *RunningOutput
func (*RunningOutput) AddMetric ¶
func (ro *RunningOutput) AddMetric(metric cua.Metric)
AddMetric adds a metric to the output.
Takes ownership of metric
func (*RunningOutput) BufferLength ¶
func (ro *RunningOutput) BufferLength() int
func (*RunningOutput) Init ¶
func (ro *RunningOutput) Init() error
func (*RunningOutput) Log ¶
func (ro *RunningOutput) Log() cua.Logger
func (*RunningOutput) LogBufferStatus ¶
func (ro *RunningOutput) LogBufferStatus()
func (*RunningOutput) LogName ¶
func (ro *RunningOutput) LogName() string
func (*RunningOutput) Write ¶
func (ro *RunningOutput) Write() error
Write writes all metrics to the output, stopping when all have been sent on or error.
func (*RunningOutput) WriteBatch ¶
func (ro *RunningOutput) WriteBatch() error
WriteBatch writes a single batch of metrics to the output.
type RunningProcessor ¶
type RunningProcessor struct { sync.Mutex Processor cua.StreamingProcessor Config *ProcessorConfig // contains filtered or unexported fields }
func NewRunningProcessor ¶
func NewRunningProcessor(processor cua.StreamingProcessor, config *ProcessorConfig) *RunningProcessor
func (*RunningProcessor) Add ¶
func (rp *RunningProcessor) Add(m cua.Metric, acc cua.Accumulator) error
func (*RunningProcessor) Init ¶
func (rp *RunningProcessor) Init() error
func (*RunningProcessor) Log ¶
func (rp *RunningProcessor) Log() cua.Logger
func (*RunningProcessor) LogName ¶
func (rp *RunningProcessor) LogName() string
func (*RunningProcessor) MakeMetric ¶
func (rp *RunningProcessor) MakeMetric(metric cua.Metric) cua.Metric
func (*RunningProcessor) Start ¶
func (rp *RunningProcessor) Start(acc cua.Accumulator) error
func (*RunningProcessor) Stop ¶
func (rp *RunningProcessor) Stop()
type RunningProcessors ¶
type RunningProcessors []*RunningProcessor
func (RunningProcessors) Len ¶
func (rp RunningProcessors) Len() int
func (RunningProcessors) Less ¶
func (rp RunningProcessors) Less(i, j int) bool
func (RunningProcessors) Swap ¶
func (rp RunningProcessors) Swap(i, j int)