config

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2025 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDefaultConfig added in v0.6.0

func CreateDefaultConfig() component.Config

Types

type Attribute

type Attribute struct {
	Key   string `mapstructure:"key"`
	Value any    `mapstructure:"value"`
}

Attribute represent an OTel attribute.

type Config

type Config struct {
	// Directory is the data directory used by the database to store files.
	// If the directory is empty in-memory storage is used.
	Directory string `mapstructure:"directory"`

	// PassThrough is a configuration that determines whether summary
	// metrics should be passed through as they are or aggregated. This
	// is because they lead to lossy aggregations.
	PassThrough PassThrough `mapstructure:"pass_through"`

	// Intervals is a list of interval configuration that the processor
	// will aggregate over. The interval duration must be in increasing
	// order and must be a factor of the smallest interval duration.
	// TODO (lahsivjar): Make specifying interval easier. We can just
	// optimize the timer to run on differnt times and remove any
	// restriction on different interval configuration.
	Intervals []IntervalConfig `mapstructure:"intervals"`

	// MetadataKeys is a list of client.Metadata keys that will be
	// propagated through the metrics aggregated by the processor.
	//
	// Only the listed metadata keys will be propagated to the
	// resulting metrics.
	//
	// Entries are case-insensitive. Duplicated entries will
	// trigger a validation error.
	MetadataKeys []string `mapstructure:"metadata_keys"`

	ResourceLimit  LimitConfig `mapstructure:"resource_limit"`
	ScopeLimit     LimitConfig `mapstructure:"scope_limit"`
	MetricLimit    LimitConfig `mapstructure:"metric_limit"`
	DatapointLimit LimitConfig `mapstructure:"datapoint_limit"`

	// ExponentialHistogramMaxBuckets sets the maximum number of buckets
	// to use for resulting exponential histograms from merge operations.
	// This allows to bound the maximum number of buckets used by the
	// exponential histograms which could be huge if histograms with
	// precisions ranging in, say, minutes and milliseconds are merged
	// together. Defaults to 160.
	ExponentialHistogramMaxBuckets int `mapstructure:"exponential_histogram_max_buckets"`
}

func (*Config) Validate

func (cfg *Config) Validate() error

type IntervalConfig

type IntervalConfig struct {
	Duration time.Duration `mapstructure:"duration"`
	// Statements are a list of OTTL statements to be executed on the
	// metrics produced for a given interval. The list of available
	// OTTL paths for datapoints can be checked at:
	// https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/ottldatapoint#section-readme
	// The list of available OTTL editors can be checked at:
	// https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/ottlfuncs#section-readme
	Statements []string `mapstructure:"statements"`
}

IntervalConfig defines the configuration for the intervals that the component will aggregate over. OTTL statements are also defined to be applied to the metric harvested for each interval after they are mature for the interval duration.

type LimitConfig

type LimitConfig struct {
	MaxCardinality int64          `mapstructure:"max_cardinality"`
	Overflow       OverflowConfig `mapstructure:"overflow"`
}

LimitConfig defines the limits applied over the aggregated metrics. After the max cardinality is breached the overflow behaviour kicks in.

type OverflowConfig

type OverflowConfig struct {
	// Attributes are added to the overflow bucket for the respective
	// limit. For example, attributes defined for an overflow config
	// representing a scope will be added to the overflow scope attributes.
	Attributes []Attribute `mapstructure:"attributes"`
}

OverflowConfig defines the configuration for tweaking the events produced after overflow kicks in.

type PassThrough

type PassThrough struct {
	// Summary is a flag that determines whether summary metrics should
	// be passed through as they are or aggregated. Since summaries don't
	// have an associated temporality, we assume that summaries are
	// always cumulative.
	Summary bool `mapstructure:"summary"`
}

PassThrough determines whether metrics should be passed through as they are or aggregated.

Jump to

Keyboard shortcuts

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