models

package
v1.32.0 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2024 License: MIT Imports: 22 Imported by: 8

Documentation

Index

Constants

View Source
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

View Source
var (
	AgentMetricsWritten = selfstat.Register("agent", "metrics_written", map[string]string{})
	AgentMetricsDropped = selfstat.Register("agent", "metrics_dropped", map[string]string{})
)
View Source
var (
	GlobalMetricsGathered = selfstat.Register("agent", "metrics_gathered", map[string]string{})
	GlobalGatherErrors    = selfstat.Register("agent", "gather_errors", map[string]string{})
	GlobalGatherTimeouts  = selfstat.Register("agent", "gather_timeouts", map[string]string{})
)

Functions

func SetLoggerOnPlugin added in v1.15.4

func SetLoggerOnPlugin(i interface{}, logger telegraf.Logger)

func ShouldPassFilters added in v1.27.0

func ShouldPassFilters(include filter.Filter, exclude filter.Filter, key string) bool

func ShouldTagsPass added in v1.26.0

func ShouldTagsPass(passFilters []TagFilter, dropFilters []TagFilter, tags []*telegraf.Tag) bool

Types

type AggregatorConfig

type AggregatorConfig struct {
	Name         string
	Alias        string
	ID           string
	DropOriginal bool
	Period       time.Duration
	Delay        time.Duration
	Grace        time.Duration
	LogLevel     string

	NameOverride      string
	MeasurementPrefix string
	MeasurementSuffix string
	Tags              map[string]string
	Filter            Filter
}

AggregatorConfig is the common config for all aggregators.

type Buffer

type Buffer interface {
	// Len returns the number of metrics currently in the buffer.
	Len() int

	// Add adds metrics to the buffer and returns number of dropped metrics.
	Add(metrics ...telegraf.Metric) int

	// 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.
	Batch(batchSize int) []telegraf.Metric

	// Accept marks the batch, acquired from Batch(), as successfully written.
	Accept(metrics []telegraf.Metric)

	// Reject returns the batch, acquired from Batch(), to the buffer and marks it
	// as unsent.
	Reject([]telegraf.Metric)

	Stats() BufferStats
}

func NewBuffer

func NewBuffer(name string, alias string, capacity int, strategy string, path string) (Buffer, error)

NewBuffer returns a new empty Buffer with the given capacity.

type BufferStats added in v1.32.0

type BufferStats struct {
	MetricsAdded   selfstat.Stat
	MetricsWritten selfstat.Stat
	MetricsDropped selfstat.Stat
	BufferSize     selfstat.Stat
	BufferLimit    selfstat.Stat
}

BufferStats holds common metrics used for buffer implementations. Implementations of Buffer should embed this struct in them.

func NewBufferStats added in v1.32.0

func NewBufferStats(name string, alias string, capacity int) BufferStats

type DiskBuffer added in v1.32.0

type DiskBuffer struct {
	BufferStats
	sync.Mutex
	// contains filtered or unexported fields
}

func NewDiskBuffer added in v1.32.0

func NewDiskBuffer(name string, path string, stats BufferStats) (*DiskBuffer, error)

func (*DiskBuffer) Accept added in v1.32.0

func (b *DiskBuffer) Accept(batch []telegraf.Metric)

func (*DiskBuffer) Add added in v1.32.0

func (b *DiskBuffer) Add(metrics ...telegraf.Metric) int

func (*DiskBuffer) Batch added in v1.32.0

func (b *DiskBuffer) Batch(batchSize int) []telegraf.Metric

func (*DiskBuffer) Len added in v1.32.0

func (b *DiskBuffer) Len() int

func (*DiskBuffer) Reject added in v1.32.0

func (b *DiskBuffer) Reject(_ []telegraf.Metric)

func (*DiskBuffer) Stats added in v1.32.0

func (b *DiskBuffer) Stats() BufferStats

type Filter

type Filter struct {
	NameDrop           []string
	NameDropSeparators string

	NamePass           []string
	NamePassSeparators string

	FieldExclude []string

	FieldInclude []string

	TagDropFilters []TagFilter
	TagPassFilters []TagFilter

	TagExclude []string

	TagInclude []string

	// New metric-filtering interface
	MetricPass string
	// contains filtered or unexported fields
}

Filter containing drop/pass and include/exclude rules

func (*Filter) Compile

func (f *Filter) Compile() error

Compile all Filter lists into filter.Filter objects.

func (*Filter) IsActive

func (f *Filter) IsActive() bool

IsActive checking if filter is active

func (*Filter) Modify

func (f *Filter) Modify(metric telegraf.Metric)

Modify removes any tags and fields from the metric according to the fieldinclude/fieldexclude and taginclude/tagexclude filters.

func (*Filter) Select

func (f *Filter) Select(metric telegraf.Metric) (bool, error)

Select returns true if the metric matches according to the namepass/namedrop, tagpass/tagdrop and metric filters. The metric is not modified.

type InputConfig

type InputConfig struct {
	Name                 string
	Alias                string
	ID                   string
	Interval             time.Duration
	CollectionJitter     time.Duration
	CollectionOffset     time.Duration
	Precision            time.Duration
	StartupErrorBehavior string
	LogLevel             string

	NameOverride            string
	MeasurementPrefix       string
	MeasurementSuffix       string
	Tags                    map[string]string
	Filter                  Filter
	AlwaysIncludeLocalTags  bool
	AlwaysIncludeGlobalTags bool
}

InputConfig is the common config for all inputs.

type MemoryBuffer added in v1.32.0

type MemoryBuffer struct {
	sync.Mutex
	BufferStats
	// contains filtered or unexported fields
}

MemoryBuffer stores metrics in a circular buffer.

func NewMemoryBuffer added in v1.32.0

func NewMemoryBuffer(capacity int, stats BufferStats) (*MemoryBuffer, error)

func (*MemoryBuffer) Accept added in v1.32.0

func (b *MemoryBuffer) Accept(batch []telegraf.Metric)

func (*MemoryBuffer) Add added in v1.32.0

func (b *MemoryBuffer) Add(metrics ...telegraf.Metric) int

func (*MemoryBuffer) Batch added in v1.32.0

func (b *MemoryBuffer) Batch(batchSize int) []telegraf.Metric

func (*MemoryBuffer) Len added in v1.32.0

func (b *MemoryBuffer) Len() int

func (*MemoryBuffer) Reject added in v1.32.0

func (b *MemoryBuffer) Reject(batch []telegraf.Metric)

func (*MemoryBuffer) Stats added in v1.32.0

func (b *MemoryBuffer) Stats() BufferStats

type OutputConfig

type OutputConfig struct {
	Name                 string
	Alias                string
	ID                   string
	StartupErrorBehavior string
	Filter               Filter

	FlushInterval     time.Duration
	FlushJitter       time.Duration
	MetricBufferLimit int
	MetricBatchSize   int

	NameOverride string
	NamePrefix   string
	NameSuffix   string

	BufferStrategy  string
	BufferDirectory string

	LogLevel string
}

OutputConfig containing name and filter

type ParserConfig added in v1.22.0

type ParserConfig struct {
	Parent      string
	Alias       string
	DataFormat  string
	DefaultTags map[string]string
	LogLevel    string
}

ParserConfig is the common config for all parsers.

type ProcessorConfig

type ProcessorConfig struct {
	Name     string
	Alias    string
	ID       string
	Order    int64
	Filter   Filter
	LogLevel string
}

ProcessorConfig containing a name and filter

type RunningAggregator

type RunningAggregator struct {
	sync.Mutex
	Aggregator telegraf.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 telegraf.Aggregator, config *AggregatorConfig) *RunningAggregator

func (*RunningAggregator) Add

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) ID added in v1.26.0

func (r *RunningAggregator) ID() string

func (*RunningAggregator) Init

func (r *RunningAggregator) Init() error

func (*RunningAggregator) Log

func (*RunningAggregator) LogName

func (r *RunningAggregator) LogName() string

func (*RunningAggregator) MakeMetric

func (r *RunningAggregator) MakeMetric(telegrafMetric telegraf.Metric) telegraf.Metric

func (*RunningAggregator) Period

func (r *RunningAggregator) Period() time.Duration

func (*RunningAggregator) Push

func (r *RunningAggregator) Push(acc telegraf.Accumulator)

func (*RunningAggregator) UpdateWindow

func (r *RunningAggregator) UpdateWindow(start, until time.Time)

type RunningInput

type RunningInput struct {
	Input  telegraf.Input
	Config *InputConfig

	MetricsGathered selfstat.Stat
	GatherTime      selfstat.Stat
	GatherTimeouts  selfstat.Stat
	StartupErrors   selfstat.Stat
	// contains filtered or unexported fields
}

func NewRunningInput

func NewRunningInput(input telegraf.Input, config *InputConfig) *RunningInput

func (*RunningInput) Gather

func (r *RunningInput) Gather(acc telegraf.Accumulator) error

func (*RunningInput) ID added in v1.26.0

func (r *RunningInput) ID() string

func (*RunningInput) IncrGatherTimeouts added in v1.28.0

func (r *RunningInput) IncrGatherTimeouts()

func (*RunningInput) Init

func (r *RunningInput) Init() error

func (*RunningInput) Log

func (r *RunningInput) Log() telegraf.Logger

func (*RunningInput) LogName

func (r *RunningInput) LogName() string

func (*RunningInput) MakeMetric

func (r *RunningInput) MakeMetric(metric telegraf.Metric) telegraf.Metric

func (*RunningInput) SetDefaultTags

func (r *RunningInput) SetDefaultTags(tags map[string]string)

func (*RunningInput) Start added in v1.31.0

func (r *RunningInput) Start(acc telegraf.Accumulator) error

func (*RunningInput) Stop added in v1.31.0

func (r *RunningInput) Stop()

type RunningOutput

type RunningOutput struct {
	Output            telegraf.Output
	Config            *OutputConfig
	MetricBufferLimit int
	MetricBatchSize   int

	MetricsFiltered selfstat.Stat
	WriteTime       selfstat.Stat
	StartupErrors   selfstat.Stat

	BatchReady chan time.Time
	// contains filtered or unexported fields
}

RunningOutput contains the output configuration

func NewRunningOutput

func NewRunningOutput(
	output telegraf.Output,
	config *OutputConfig,
	batchSize int,
	bufferLimit int,
) *RunningOutput

func (*RunningOutput) AddMetric

func (r *RunningOutput) AddMetric(metric telegraf.Metric)

AddMetric adds a metric to the output. Takes ownership of metric

func (*RunningOutput) BufferLength

func (r *RunningOutput) BufferLength() int

func (*RunningOutput) Close

func (r *RunningOutput) Close()

Close closes the output

func (*RunningOutput) Connect added in v1.31.0

func (r *RunningOutput) Connect() error

func (*RunningOutput) ID added in v1.26.0

func (r *RunningOutput) ID() string

func (*RunningOutput) Init

func (r *RunningOutput) Init() error

func (*RunningOutput) Log

func (r *RunningOutput) Log() telegraf.Logger

func (*RunningOutput) LogBufferStatus

func (r *RunningOutput) LogBufferStatus()

func (*RunningOutput) LogName

func (r *RunningOutput) LogName() string

func (*RunningOutput) Write

func (r *RunningOutput) Write() error

Write writes all metrics to the output, stopping when all have been sent on or error.

func (*RunningOutput) WriteBatch

func (r *RunningOutput) WriteBatch() error

WriteBatch writes a single batch of metrics to the output.

type RunningParser added in v1.22.0

type RunningParser struct {
	Parser telegraf.Parser
	Config *ParserConfig

	MetricsParsed selfstat.Stat
	ParseTime     selfstat.Stat
	// contains filtered or unexported fields
}

func NewRunningParser added in v1.22.0

func NewRunningParser(parser telegraf.Parser, config *ParserConfig) *RunningParser

func (*RunningParser) Init added in v1.22.0

func (r *RunningParser) Init() error

func (*RunningParser) Log added in v1.22.0

func (r *RunningParser) Log() telegraf.Logger

func (*RunningParser) LogName added in v1.22.0

func (r *RunningParser) LogName() string

func (*RunningParser) Parse added in v1.22.0

func (r *RunningParser) Parse(buf []byte) ([]telegraf.Metric, error)

func (*RunningParser) ParseLine added in v1.22.0

func (r *RunningParser) ParseLine(line string) (telegraf.Metric, error)

func (*RunningParser) SetDefaultTags added in v1.22.0

func (r *RunningParser) SetDefaultTags(tags map[string]string)

type RunningProcessor

type RunningProcessor struct {
	sync.Mutex

	Processor telegraf.StreamingProcessor
	Config    *ProcessorConfig
	// contains filtered or unexported fields
}

func NewRunningProcessor

func NewRunningProcessor(processor telegraf.StreamingProcessor, config *ProcessorConfig) *RunningProcessor

func (*RunningProcessor) Add

func (*RunningProcessor) ID added in v1.26.0

func (rp *RunningProcessor) ID() string

func (*RunningProcessor) Init

func (rp *RunningProcessor) Init() error

func (*RunningProcessor) Log

func (rp *RunningProcessor) Log() telegraf.Logger

func (*RunningProcessor) LogName

func (rp *RunningProcessor) LogName() string

func (*RunningProcessor) MakeMetric

func (rp *RunningProcessor) MakeMetric(metric telegraf.Metric) telegraf.Metric

func (*RunningProcessor) Start

func (rp *RunningProcessor) Start(acc telegraf.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)

type RunningSerializer added in v1.27.0

type RunningSerializer struct {
	Serializer serializers.Serializer
	Config     *SerializerConfig

	MetricsSerialized selfstat.Stat
	BytesSerialized   selfstat.Stat
	SerializationTime selfstat.Stat
	// contains filtered or unexported fields
}

func NewRunningSerializer added in v1.27.0

func NewRunningSerializer(serializer serializers.Serializer, config *SerializerConfig) *RunningSerializer

func (*RunningSerializer) Init added in v1.27.0

func (r *RunningSerializer) Init() error

func (*RunningSerializer) Log added in v1.27.0

func (*RunningSerializer) LogName added in v1.27.0

func (r *RunningSerializer) LogName() string

func (*RunningSerializer) Serialize added in v1.27.0

func (r *RunningSerializer) Serialize(metric telegraf.Metric) ([]byte, error)

func (*RunningSerializer) SerializeBatch added in v1.27.0

func (r *RunningSerializer) SerializeBatch(metrics []telegraf.Metric) ([]byte, error)

type SerializerConfig added in v1.27.0

type SerializerConfig struct {
	Parent      string
	Alias       string
	DataFormat  string
	DefaultTags map[string]string
	LogLevel    string
}

SerializerConfig is the common config for all serializers.

type TagFilter

type TagFilter struct {
	Name   string
	Values []string
	// contains filtered or unexported fields
}

TagFilter is the name of a tag, and the values on which to filter

func (*TagFilter) Compile added in v1.26.0

func (tf *TagFilter) Compile() error

Jump to

Keyboard shortcuts

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