filter

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2023 License: Apache-2.0 Imports: 4 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AndSection

type AndSection struct {
	// +docLink:"Regexp Directive,#Regexp-Directive"
	Regexp []RegexpSection `json:"regexp,omitempty"`
	// +docLink:"Exclude Directive,#Exclude-Directive"
	Exclude []ExcludeSection `json:"exclude,omitempty"`
}

+kubebuilder:object:generate=true +docName:"And Directive" Specify filtering rule (as described in the [Fluentd documentation](https://docs.fluentd.org/filter/grep#less-than-and-greater-than-directive). This directive contains either `regexp` or `exclude` directive.

func (*AndSection) DeepCopy

func (in *AndSection) DeepCopy() *AndSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AndSection.

func (*AndSection) DeepCopyInto

func (in *AndSection) DeepCopyInto(out *AndSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AndSection) ToDirective

func (r *AndSection) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type Concat

type Concat struct {
	// Specify field name in the record to parse. If you leave empty the Container Runtime default will be used.
	Key string `json:"key,omitempty"`
	//The separator of lines. (default: "\n")
	// +kubebuilder:validation:Optional
	Separator *string `json:"separator,omitempty" plugin:"default:\"\\n\""`
	//The number of lines. This is exclusive with multiline_start_regex.
	NLines int `json:"n_lines,omitempty"`
	//The regexp to match beginning of multiline. This is exclusive with n_lines.
	MultilineStartRegexp string `json:"multiline_start_regexp,omitempty"`
	//The regexp to match ending of multiline. This is exclusive with n_lines.
	MultilineEndRegexp string `json:"multiline_end_regexp,omitempty"`
	//The regexp to match continuous lines. This is exclusive with n_lines.
	ContinuousLineRegexp string `json:"continuous_line_regexp,omitempty"`
	//The key to determine which stream an event belongs to.
	StreamIdentityKey string `json:"stream_identity_key,omitempty"`
	//The number of seconds after which the last received event log will be flushed. If specified 0, wait for next line forever.
	FlushInterval int `json:"flush_interval,omitempty"`
	//The label name to handle events caused by timeout.
	TimeoutLabel string `json:"timeout_label,omitempty"`
	//Use timestamp of first record when buffer is flushed. (default: False)
	UseFirstTimestamp bool `json:"use_first_timestamp,omitempty"`
	//The field name that is the reference to concatenate records
	PartialKey string `json:"partial_key,omitempty"`
	//The value stored in the field specified by partial_key that represent partial log
	PartialValue string `json:"partial_value,omitempty"`
	//If true, keep partial_key in concatenated records (default:False)
	KeepPartialKey bool `json:"keep_partial_key,omitempty"`
	//Use partial metadata to concatenate multiple records
	UsePartialMetadata string `json:"use_partial_metadata,omitempty"`
	//If true, keep partial metadata
	KeepPartialMetadata string `json:"keep_partial_metadata,omitempty"`
	//Input format of the partial metadata (fluentd or journald docker log driver)( docker-fluentd, docker-journald, docker-journald-lowercase)
	PartialMetadataFormat string `json:"partial_metadata_format,omitempty"`
	//Use cri log tag to concatenate multiple records
	UsePartialCriLogtag bool `json:"use_partial_cri_logtag,omitempty"`
	//The key name that is referred to concatenate records on cri log
	PartialCriLogtagKey string `json:"partial_cri_logtag_key,omitempty"`
	//The key name that is referred to detect stream name on cri log
	PartialCriStreamKey string `json:"partial_cri_stream_key,omitempty"`
}

+kubebuilder:object:generate=true

func (*Concat) DeepCopy

func (in *Concat) DeepCopy() *Concat

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Concat.

func (*Concat) DeepCopyInto

func (in *Concat) DeepCopyInto(out *Concat)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Concat) ToDirective

func (c *Concat) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type DedotFilterConfig

type DedotFilterConfig struct {
	// Will cause the plugin to recurse through nested structures (hashes and arrays), and remove dots in those key-names too.(default: false)
	Nested bool `json:"de_dot_nested,omitempty"`
	// Separator (default:_)
	Separator string `json:"de_dot_separator,omitempty"`
}

+kubebuilder:object:generate=true

func NewDedotFilterConfig

func NewDedotFilterConfig() *DedotFilterConfig

func (*DedotFilterConfig) DeepCopy

func (in *DedotFilterConfig) DeepCopy() *DedotFilterConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedotFilterConfig.

func (*DedotFilterConfig) DeepCopyInto

func (in *DedotFilterConfig) DeepCopyInto(out *DedotFilterConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DedotFilterConfig) ToDirective

func (c *DedotFilterConfig) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type DetectExceptions

type DetectExceptions struct {
	// The field which contains the raw message text in the input JSON data. (default: "")
	Message string `json:"message,omitempty"`
	// The prefix to be removed from the input tag when outputting a record. (default: kubernetes)
	RemoveTagPrefix string `json:"remove_tag_prefix,omitempty"`
	// The interval of flushing the buffer for multiline format. (default: nil)
	MultilineFlushInterval string `json:"multiline_flush_interval,omitempty"`
	// Programming languages for which to detect exceptions. (default: [])
	Languages []string `json:"languages,omitempty"`
	// Maximum number of lines to flush (0 means no limit) (default: 1000)
	MaxLines int `json:"max_lines,omitempty"`
	// Maximum number of bytes to flush (0 means no limit) (default: 0)
	MaxBytes int `json:"max_bytes,omitempty"`
	// Separate log streams by this field in the input JSON data. (default: "")
	Stream string `json:"stream,omitempty"`
	// Force line breaks between each lines when comibining exception stacks. (default: false)
	ForceLineBreaks bool `json:"force_line_breaks,omitempty"`
	// Tag used in match directive. (default: kubernetes.**)
	MatchTag string `json:"match_tag,omitempty" plugin:"hidden"`
}

+kubebuilder:object:generate=true

func (*DetectExceptions) DeepCopy

func (in *DetectExceptions) DeepCopy() *DetectExceptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DetectExceptions.

func (*DetectExceptions) DeepCopyInto

func (in *DetectExceptions) DeepCopyInto(out *DetectExceptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DetectExceptions) ToDirective

func (d *DetectExceptions) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type ElasticsearchGenId

type ElasticsearchGenId struct {
	// You can specify generated hash storing key.
	HashIdKey string `json:"hash_id_key,omitempty"`
	// You can specify to use tag for hash generation seed.
	IncludeTagInSeed bool `json:"include_tag_in_seed,omitempty"`
	// You can specify to use time for hash generation seed.
	IncludeTimeInSeed bool `json:"include_time_in_seed,omitempty"`
	// You can specify to use record in events for hash generation seed. This parameter should be used with record_keys parameter in practice.
	UseRecordAsSeed bool `json:"use_record_as_seed,omitempty"`
	// You can specify keys which are record in events for hash generation seed. This parameter should be used with use_record_as_seed parameter in practice.
	RecordKeys string `json:"record_keys,omitempty"`
	// You can specify to use entire record in events for hash generation seed.
	UseEntireRecord bool `json:"use_entire_record,omitempty"`
	// You can specify separator charactor to creating seed for hash generation.
	Separator string `json:"separator,omitempty"`
	// You can specify hash algorithm. Support algorithms md5, sha1, sha256, sha512. Default: sha1
	HashType string `json:"hash_type,omitempty"`
}

+kubebuilder:object:generate=true

func NewElasticsearchGenId

func NewElasticsearchGenId() *ElasticsearchGenId

func (*ElasticsearchGenId) DeepCopy

func (in *ElasticsearchGenId) DeepCopy() *ElasticsearchGenId

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchGenId.

func (*ElasticsearchGenId) DeepCopyInto

func (in *ElasticsearchGenId) DeepCopyInto(out *ElasticsearchGenId)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ElasticsearchGenId) ToDirective

func (c *ElasticsearchGenId) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type EnhanceK8s

type EnhanceK8s struct {
	// parameters for read/write record (default: ['$.namespace'])
	InNamespacePath []string `json:"in_namespace_path,omitempty"`
	// (default: ['$.pod','$.pod_name'])
	InPodPath []string `json:"in_pod_path,omitempty"`
	// Sumologic data type (default: metrics)
	DataType string `json:"data_type,omitempty"`
	// Kubernetes API URL (default: nil)
	KubernetesUrl string `json:"kubernetes_url,omitempty"`
	// Kubernetes API Client certificate (default: nil)
	ClientCert secret.Secret `json:"client_cert,omitempty"`
	// // Kubernetes API Client certificate key (default: nil)
	ClientKey secret.Secret `json:"client_key,omitempty"`
	// Kubernetes API CA file (default: nil)
	CaFile secret.Secret `json:"ca_file,omitempty"`
	// Service account directory (default: /var/run/secrets/kubernetes.io/serviceaccount)
	SecretDir string `json:"secret_dir,omitempty"`
	// Bearer token path (default: nil)
	BearerTokenFile string `json:"bearer_token_file,omitempty"`
	// Verify SSL (default: true)
	VerifySSL *bool `json:"verify_ssl,omitempty"`
	// Kubernetes core API version (for different Kubernetes versions) (default: ['v1'])
	CoreAPIVersions []string `json:"core_api_versions,omitempty"`
	// Kubernetes resources api groups (default: ["apps/v1", "extensions/v1beta1"])
	APIGroups []string `json:"api_groups,omitempty"`
	// if `ca_file` is for an intermediate CA, or otherwise we do not have the
	// root CA and want to trust the intermediate CA certs we do have, set this
	// to `true` - this corresponds to the openssl s_client -partial_chain flag
	// and X509_V_FLAG_PARTIAL_CHAIN (default: false)
	SSLPartialChain *bool `json:"ssl_partial_chain,omitempty"`
	// Cache size  (default: 1000)
	CacheSize int `json:"cache_size,omitempty"`
	// Cache TTL (default: 60*60*2)
	CacheTTL int `json:"cache_ttl,omitempty"`
	// Cache refresh (default: 60*60)
	CacheRefresh int `json:"cache_refresh,omitempty"`
	// Cache refresh variation (default: 60*15)
	CacheRefreshVariation int `json:"cache_refresh_variation,omitempty"`
}

+kubebuilder:object:generate=true

func (*EnhanceK8s) DeepCopy

func (in *EnhanceK8s) DeepCopy() *EnhanceK8s

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnhanceK8s.

func (*EnhanceK8s) DeepCopyInto

func (in *EnhanceK8s) DeepCopyInto(out *EnhanceK8s)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnhanceK8s) ToDirective

func (c *EnhanceK8s) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type ExcludeSection

type ExcludeSection struct {
	// Specify field name in the record to parse.
	Key string `json:"key"`
	// Pattern expression to evaluate
	Pattern string `json:"pattern"`
}

+kubebuilder:object:generate=true +docName:"Exclude Directive" Specify filtering rule to reject events (as described in the [Fluentd documentation](https://docs.fluentd.org/filter/grep#less-than-exclude-greater-than-directive)). This directive contains two parameters.

func (*ExcludeSection) DeepCopy

func (in *ExcludeSection) DeepCopy() *ExcludeSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExcludeSection.

func (*ExcludeSection) DeepCopyInto

func (in *ExcludeSection) DeepCopyInto(out *ExcludeSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExcludeSection) ToDirective

func (r *ExcludeSection) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type GeoIP

type GeoIP struct {
	//Specify one or more geoip lookup field which has ip address (default: host)
	GeoipLookupKeys string `json:"geoip_lookup_keys,omitempty"`
	//Specify optional geoip database (using bundled GeoLiteCity databse by default)
	GeoipDatabase string `json:"geoip_database,omitempty"`
	//Specify optional geoip2 database (using bundled GeoLite2-City.mmdb by default)
	Geoip2Database string `json:"geoip2_database,omitempty"`
	//Specify backend library (geoip2_c, geoip, geoip2_compat)
	BackendLibrary string `json:"backend_library,omitempty"`
	// To avoid get stacktrace error with `[null, null]` array for elasticsearch.
	SkipAddingNullRecord *bool `json:"skip_adding_null_record,omitempty" plugin:"default:true"`
	// Records are represented as maps: `key: value`
	Records []Record `json:"records,omitempty"`
}

+kubebuilder:object:generate=true

func (*GeoIP) DeepCopy

func (in *GeoIP) DeepCopy() *GeoIP

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoIP.

func (*GeoIP) DeepCopyInto

func (in *GeoIP) DeepCopyInto(out *GeoIP)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GeoIP) ToDirective

func (g *GeoIP) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type GrepConfig

type GrepConfig struct {
	// +docLink:"Regexp Directive,#Regexp-Directive"
	Regexp []RegexpSection `json:"regexp,omitempty"`
	// +docLink:"Exclude Directive,#Exclude-Directive"
	Exclude []ExcludeSection `json:"exclude,omitempty"`
	// +docLink:"Or Directive,#Or-Directive"
	Or []OrSection `json:"or,omitempty"`
	// +docLink:"And Directive,#And-Directive"
	And []AndSection `json:"and,omitempty"`
}

+kubebuilder:object:generate=true

func (*GrepConfig) DeepCopy

func (in *GrepConfig) DeepCopy() *GrepConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrepConfig.

func (*GrepConfig) DeepCopyInto

func (in *GrepConfig) DeepCopyInto(out *GrepConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GrepConfig) ToDirective

func (g *GrepConfig) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type GrokSection

type GrokSection struct {
	// The name of grok section.
	Name string `json:"name,omitempty"`
	// The pattern of grok.
	Pattern string `json:"pattern" plugin:"required"`
	// If true, keep time field in the record.
	KeepTimeKey bool `json:"keep_time_key,omitempty"`
	// Specify time field for event time. If the event doesn't have this field, current time is used.
	TimeKey string `json:"time_key,omitempty" plugin:"default:time"`
	// Process value using specified format. This is available only when time_type is string.
	TimeFormat string `json:"time_format,omitempty"`
	// Use specified timezone. one can parse/format the time value in the specified timezone.
	Timezone string `json:"timezone,omitempty"`
}

+kubebuilder:object:generate=true +docName:"Grok Section"

func (*GrokSection) DeepCopy

func (in *GrokSection) DeepCopy() *GrokSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrokSection.

func (*GrokSection) DeepCopyInto

func (in *GrokSection) DeepCopyInto(out *GrokSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GrokSection) ToGrokDirective

func (p *GrokSection) ToGrokDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type KubeEventsTimestampConfig

type KubeEventsTimestampConfig struct {
	// Time field names in order of relevance (default: event.eventTime, event.lastTimestamp, event.firstTimestamp)
	TimestampFields []string `json:"timestamp_fields,omitempty"`
	// Added time field name (default: triggerts)
	MappedTimeKey string `json:"mapped_time_key,omitempty"`
}

+kubebuilder:object:generate=true

func NewKubeEventsTimestampConfig

func NewKubeEventsTimestampConfig() *KubeEventsTimestampConfig

func (*KubeEventsTimestampConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeEventsTimestampConfig.

func (*KubeEventsTimestampConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubeEventsTimestampConfig) ToDirective

func (c *KubeEventsTimestampConfig) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type Label

type Label map[string]string

func (Label) ToDirective

func (r Label) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type MetricSection

type MetricSection struct {
	// Metrics name
	Name string `json:"name"`
	//Metrics type [counter](https://github.com/fluent/fluent-plugin-prometheus#counter-type), [gauge](https://github.com/fluent/fluent-plugin-prometheus#gauge-type), [summary](https://github.com/fluent/fluent-plugin-prometheus#summary-type), [histogram](https://github.com/fluent/fluent-plugin-prometheus#histogram-type)
	Type string `json:"type"`
	//Description of metric
	Desc string `json:"desc"`
	//Key name of record for instrumentation.
	Key string `json:"key,omitempty"`
	//Buckets of record for instrumentation
	Buckets string `json:"buckets,omitempty"`
	//Additional labels for this metric
	Labels Label `json:"labels,omitempty"`
}

+kubebuilder:object:generate=true +docName:"Metrics Section"

func (*MetricSection) DeepCopy

func (in *MetricSection) DeepCopy() *MetricSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSection.

func (*MetricSection) DeepCopyInto

func (in *MetricSection) DeepCopyInto(out *MetricSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MetricSection) ToDirective

func (m *MetricSection) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type OrSection

type OrSection struct {
	// +docLink:"Regexp Directive,#Regexp-Directive"
	Regexp []RegexpSection `json:"regexp,omitempty"`
	// +docLink:"Exclude Directive,#Exclude-Directive"
	Exclude []ExcludeSection `json:"exclude,omitempty"`
}

+kubebuilder:object:generate=true +docName:"Or Directive" Specify filtering rule (as described in the [Fluentd documentation](https://docs.fluentd.org/filter/grep#less-than-or-greater-than-directive). This directive contains either `regexp` or `exclude` directive.

func (*OrSection) DeepCopy

func (in *OrSection) DeepCopy() *OrSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrSection.

func (*OrSection) DeepCopyInto

func (in *OrSection) DeepCopyInto(out *OrSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OrSection) ToDirective

func (r *OrSection) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type ParseSection

type ParseSection struct {
	// Parse type: apache2, apache_error, nginx, syslog, csv, tsv, ltsv, json, multiline, none, logfmt, grok, multiline_grok
	Type string `json:"type,omitempty"`
	// Regexp expression to evaluate
	Expression string `json:"expression,omitempty"`
	// Specify time field for event time. If the event doesn't have this field, current time is used.
	TimeKey string `json:"time_key,omitempty"`
	// Names for fields on each line. (seperated by coma)
	Keys string `json:"keys,omitempty"`
	//  Specify null value pattern.
	NullValuePattern string `json:"null_value_pattern,omitempty"`
	// If true, empty string field is replaced with nil
	NullEmptyString bool `json:"null_empty_string,omitempty"`
	// If true, use Fluent::EventTime.now(current time) as a timestamp when time_key is specified.
	EstimateCurrentEvent bool `json:"estimate_current_event,omitempty"`
	// If true, keep time field in the record.
	KeepTimeKey bool `json:"keep_time_key,omitempty"`
	// Types casting the fields to proper types example: field1:type, field2:type
	Types string `json:"types,omitempty"`
	// Process value using specified format. This is available only when time_type is string
	TimeFormat string `json:"time_format,omitempty"`
	// Parse/format value according to this type available values: float, unixtime, string (default: string)
	TimeType string `json:"time_type,omitempty"`
	// Ff true, use local time. Otherwise, UTC is used. This is exclusive with utc. (default: true)
	LocalTime bool `json:"local_time,omitempty"`
	// If true, use UTC. Otherwise, local time is used. This is exclusive with localtime (default: false)
	UTC bool `json:"utc,omitempty"`
	// Use specified timezone. one can parse/format the time value in the specified timezone. (default: nil)
	Timezone string `json:"timezone,omitempty"`
	// Only available when using type: multi_format
	Format string `json:"format,omitempty"`
	// Only available when using type: multi_format
	FormatFirstline string `json:"format_firstline,omitempty"`
	// Only available when using type: ltsv (default: "\t")
	Delimiter string `json:"delimiter,omitempty"`
	// Only available when using type: ltsv
	DelimiterPattern string `json:"delimiter_pattern,omitempty"`
	// Only available when using type: ltsv (default: ":")
	LabelDelimiter string `json:"label_delimiter,omitempty"`
	// The multiline parser plugin parses multiline logs.
	Multiline []string `json:"multiline,omitempty"`
	// Only available when using type: multi_format
	// +docLink:"Parse Section,#parse-section"
	Patterns []SingleParseSection `json:"patterns,omitempty"`
	// Only available when using type: grok, multiline_grok.
	// The pattern of grok. You cannot specify multiple grok pattern with this.
	GrokPattern string `json:"grok_pattern,omitempty"`
	// Only available when using type: grok, multiline_grok.
	// File that includes custom grok patterns.
	CustomPatternPath *secret.Secret `json:"custom_pattern_path,omitempty"`
	// Only available when using type: grok, multiline_grok.
	// The key has grok failure reason.
	GrokFailureKey string `json:"grok_failure_key,omitempty"`
	// Only available when using type: grok, multiline_grok.
	// The key name to store grok section's name.
	GrokNameKey string `json:"grok_name_key,omitempty"`
	// Only available when using type: multiline_grok
	// The regexp to match beginning of multiline.
	MultilineStartRegexp string `json:"multiline_start_regexp,omitempty"`
	// Only available when using type: grok, multiline_grok.
	// +docLink:"Grok Section,#grok-section"
	// Specify grok pattern series set.
	GrokPatterns []GrokSection `json:"grok_patterns,omitempty"`
}

+kubebuilder:object:generate=true +docName:"Parse Section"

func (*ParseSection) DeepCopy

func (in *ParseSection) DeepCopy() *ParseSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParseSection.

func (*ParseSection) DeepCopyInto

func (in *ParseSection) DeepCopyInto(out *ParseSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParseSection) ToDirective

func (p *ParseSection) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type ParserConfig

type ParserConfig struct {
	// Specify field name in the record to parse. If you leave empty the Container Runtime default will be used.
	KeyName string `json:"key_name,omitempty"`
	// Keep original event time in parsed result.
	ReserveTime bool `json:"reserve_time,omitempty"`
	// Keep original key-value pair in parsed result.
	ReserveData bool `json:"reserve_data,omitempty"`
	// Remove key_name field when parsing is succeeded
	RemoveKeyNameField bool `json:"remove_key_name_field,omitempty"`
	// If true, invalid string is replaced with safe characters and re-parse it.
	ReplaceInvalidSequence bool `json:"replace_invalid_sequence,omitempty"`
	// Store parsed values with specified key name prefix.
	InjectKeyPrefix string `json:"inject_key_prefix,omitempty"`
	// Store parsed values as a hash value in a field.
	HashValueField string `json:"hash_value_field,omitempty"`
	// Emit invalid record to @ERROR label. Invalid cases are: key not exist, format is not matched, unexpected error
	EmitInvalidRecordToError *bool `json:"emit_invalid_record_to_error,omitempty"`
	// +docLink:"Parse Section,#parse-section"
	Parse ParseSection `json:"parse,omitempty"`
	// Deprecated, use `parse` instead
	Parsers []ParseSection `json:"parsers,omitempty"`
}

+kubebuilder:object:generate=true

func (*ParserConfig) DeepCopy

func (in *ParserConfig) DeepCopy() *ParserConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParserConfig.

func (*ParserConfig) DeepCopyInto

func (in *ParserConfig) DeepCopyInto(out *ParserConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParserConfig) ToDirective

func (p *ParserConfig) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type PrometheusConfig

type PrometheusConfig struct {
	// +docLink:"Metrics Section,#metrics-section"
	Metrics []MetricSection `json:"metrics,omitempty"`
	Labels  Label           `json:"labels,omitempty"`
}

+kubebuilder:object:generate=true

func (*PrometheusConfig) DeepCopy

func (in *PrometheusConfig) DeepCopy() *PrometheusConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusConfig.

func (*PrometheusConfig) DeepCopyInto

func (in *PrometheusConfig) DeepCopyInto(out *PrometheusConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PrometheusConfig) ToDirective

func (p *PrometheusConfig) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type Record

type Record map[string]string

Parameters inside record directives are considered to be new key-value pairs

func (*Record) ToDirective

func (r *Record) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type RecordModifier

type RecordModifier struct {
	// Prepare values for filtering in configure phase. Prepared values can be used in <record>. You can write any ruby code.
	PrepareValues string `json:"prepare_value,omitempty"`
	// Fluentd including some plugins treats logs as a BINARY by default to forward. To overide that, use a target encoding or a from:to encoding here.
	CharEncoding string `json:"char_encoding,omitempty"`
	// A comma-delimited list of keys to delete
	RemoveKeys string `json:"remove_keys,omitempty"`
	// This is exclusive with remove_keys
	WhitelistKeys string `json:"whitelist_keys,omitempty"`
	// Replace specific value for keys
	Replaces []Replace `json:"replaces,omitempty"`
	// Add records docs at: https://github.com/repeatedly/fluent-plugin-record-modifier
	// Records are represented as maps: `key: value`
	Records []Record `json:"records,omitempty"`
}

+kubebuilder:object:generate=true

func (*RecordModifier) DeepCopy

func (in *RecordModifier) DeepCopy() *RecordModifier

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordModifier.

func (*RecordModifier) DeepCopyInto

func (in *RecordModifier) DeepCopyInto(out *RecordModifier)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RecordModifier) ToDirective

func (r *RecordModifier) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type RecordTransformer

type RecordTransformer struct {
	// A comma-delimited list of keys to delete
	RemoveKeys string `json:"remove_keys,omitempty"`
	// A comma-delimited list of keys to keep.
	KeepKeys string `json:"keep_keys,omitempty"`
	// Create new Hash to transform incoming data (default: false)
	RenewRecord bool `json:"renew_record,omitempty"`
	// Specify field name of the record to overwrite the time of events. Its value must be unix time.
	RenewTimeKey string `json:"renew_time_key,omitempty"`
	// When set to true, the full Ruby syntax is enabled in the ${...} expression. (default: false)
	EnableRuby bool `json:"enable_ruby,omitempty"`
	// Use original value type. (default: true)
	AutoTypecast bool `json:"auto_typecast,omitempty"`
	// Add records docs at: https://docs.fluentd.org/filter/record_transformer
	// Records are represented as maps: `key: value`
	Records []Record `json:"records,omitempty"`
}

+kubebuilder:object:generate=true

func (*RecordTransformer) DeepCopy

func (in *RecordTransformer) DeepCopy() *RecordTransformer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordTransformer.

func (*RecordTransformer) DeepCopyInto

func (in *RecordTransformer) DeepCopyInto(out *RecordTransformer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RecordTransformer) ToDirective

func (r *RecordTransformer) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type RegexpSection

type RegexpSection struct {
	// Specify field name in the record to parse.
	Key string `json:"key"`
	// Pattern expression to evaluate
	Pattern string `json:"pattern"`
}

+kubebuilder:object:generate=true +docName:"Regexp Directive" Specify filtering rule (as described in the [Fluentd documentation](https://docs.fluentd.org/filter/grep#less-than-regexp-greater-than-directive)). This directive contains two parameters.

func (*RegexpSection) DeepCopy

func (in *RegexpSection) DeepCopy() *RegexpSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegexpSection.

func (*RegexpSection) DeepCopyInto

func (in *RegexpSection) DeepCopyInto(out *RegexpSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RegexpSection) ToDirective

func (r *RegexpSection) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type Replace

type Replace struct {
	// Key to search for
	Key string `json:"key"`
	// Regular expression
	Expression string `json:"expression"`
	// Value to replace with
	Replace string `json:"replace"`
}

+kubebuilder:object:generate=true +docName:"[Replace Directive](https://github.com/repeatedly/fluent-plugin-record-modifier#replace_keys_value)" Specify replace rule. This directive contains three parameters.

func (*Replace) DeepCopy

func (in *Replace) DeepCopy() *Replace

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Replace.

func (*Replace) DeepCopyInto

func (in *Replace) DeepCopyInto(out *Replace)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Replace) ToDirective

func (r *Replace) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type SingleParseSection

type SingleParseSection struct {
	// Parse type: apache2, apache_error, nginx, syslog, csv, tsv, ltsv, json, multiline, none, logfmt, grok, multiline_grok
	Type string `json:"type,omitempty"`
	// Regexp expression to evaluate
	Expression string `json:"expression,omitempty"`
	// Specify time field for event time. If the event doesn't have this field, current time is used.
	TimeKey string `json:"time_key,omitempty"`
	//  Specify null value pattern.
	NullValuePattern string `json:"null_value_pattern,omitempty"`
	// If true, empty string field is replaced with nil
	NullEmptyString bool `json:"null_empty_string,omitempty"`
	// If true, use Fluent::EventTime.now(current time) as a timestamp when time_key is specified.
	EstimateCurrentEvent bool `json:"estimate_current_event,omitempty"`
	// If true, keep time field in the record.
	KeepTimeKey bool `json:"keep_time_key,omitempty"`
	// Types casting the fields to proper types example: field1:type, field2:type
	Types string `json:"types,omitempty"`
	// Process value using specified format. This is available only when time_type is string
	TimeFormat string `json:"time_format,omitempty"`
	// Parse/format value according to this type available values: float, unixtime, string (default: string)
	TimeType string `json:"time_type,omitempty"`
	// Ff true, use local time. Otherwise, UTC is used. This is exclusive with utc. (default: true)
	LocalTime bool `json:"local_time,omitempty"`
	// If true, use UTC. Otherwise, local time is used. This is exclusive with localtime (default: false)
	UTC bool `json:"utc,omitempty"`
	// Use specified timezone. one can parse/format the time value in the specified timezone. (default: nil)
	Timezone string `json:"timezone,omitempty"`
	// Only available when using type: multi_format
	Format string `json:"format,omitempty"`
	// Only available when using format: grok, multiline_grok.
	// The pattern of grok. You cannot specify multiple grok pattern with this.
	GrokPattern string `json:"grok_pattern,omitempty"`
	// Only available when using format: grok, multiline_grok.
	// File that includes custom grok patterns.
	CustomPatternPath *secret.Secret `json:"custom_pattern_path,omitempty"`
	// Only available when using format: grok, multiline_grok.
	// The key has grok failure reason.
	GrokFailureKey string `json:"grok_failure_key,omitempty"`
	// Only available when using format: grok, multiline_grok.
	// The key name to store grok section's name.
	GrokNameKey string `json:"grok_name_key,omitempty"`
	// Only available when using format: multiline_grok
	// The regexp to match beginning of multiline.
	MultilineStartRegexp string `json:"multiline_start_regexp,omitempty"`
	// Only available when using format: grok, multiline_grok.
	// +docLink:"Grok Section,#grok-section"
	// Specify grok pattern series set.
	GrokPatterns []GrokSection `json:"grok_patterns,omitempty"`
}

+kubebuilder:object:generate=true +docName:"Parse Section (single)"

func (*SingleParseSection) DeepCopy

func (in *SingleParseSection) DeepCopy() *SingleParseSection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SingleParseSection.

func (*SingleParseSection) DeepCopyInto

func (in *SingleParseSection) DeepCopyInto(out *SingleParseSection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SingleParseSection) ToPatternDirective

func (p *SingleParseSection) ToPatternDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type StdOutFilterConfig

type StdOutFilterConfig struct {
	// This is the option of stdout format.
	OutputType string `json:"output_type,omitempty"`
}

+kubebuilder:object:generate=true

func NewStdOutFilterConfig

func NewStdOutFilterConfig() *StdOutFilterConfig

func (*StdOutFilterConfig) DeepCopy

func (in *StdOutFilterConfig) DeepCopy() *StdOutFilterConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StdOutFilterConfig.

func (*StdOutFilterConfig) DeepCopyInto

func (in *StdOutFilterConfig) DeepCopyInto(out *StdOutFilterConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StdOutFilterConfig) ToDirective

func (c *StdOutFilterConfig) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type SumoLogic

type SumoLogic struct {
	// Source Category (default: "%{namespace}/%{pod_name}")
	SourceCategory string `json:"source_category,omitempty"`
	// Source Category Replace Dash (default: "/")
	SourceCategoryReplaceDash string `json:"source_category_replace_dash,omitempty"`
	// Source Category Prefix (default: kubernetes/)
	SourceCategoryPrefix string `json:"source_category_prefix,omitempty"`
	// Source Name (default: "%{namespace}.%{pod}.%{container}")
	SourceName string `json:"source_name,omitempty"`
	// Log Format (default: json)
	LogFormat string `json:"log_format,omitempty"`
	// Source Host (default: "")
	SourceHost string `json:"source_host,omitempty"`
	// Exclude Container Regex (default: "")
	ExcludeContainerRegex string `json:"exclude_container_regex,omitempty"`
	// Exclude Facility Regex (default: "")
	ExcludeFacilityRegex string `json:"exclude_facility_regex,omitempty"`
	// Exclude Host Regex (default: "")
	ExcludeHostRegex string `json:"exclude_host_regex,omitempty"`
	// Exclude Namespace Regex (default: "")
	ExcludeNamespaceRegex string `json:"exclude_namespace_regex,omitempty"`
	// Exclude Pod Regex (default: "")
	ExcludePodRegex string `json:"exclude_pod_regex,omitempty"`
	// Exclude Priority Regex (default: "")
	ExcludePriorityRegex string `json:"exclude_priority_regex,omitempty"`
	// Exclude Unit Regex (default: "")
	ExcludeUnitRegex string `json:"exclude_unit_regex,omitempty"`
	// Tracing Format (default: false)
	TracingFormat *bool `json:"tracing_format,omitempty"`
	// Tracing Namespace (default: "namespace")
	TracingNamespace string `json:"tracing_namespace,omitempty"`
	// Tracing Pod (default: "pod")
	TracingPod string `json:"tracing_pod,omitempty"`
	// Tracing Pod ID (default: "pod_id")
	TracingPodId string `json:"tracing_pod_id,omitempty"`
	// Tracing Container Name (default: "container_name")
	TracingContainerName string `json:"tracing_container_name,omitempty"`
	// Tracing Host (default: "hostname")
	TracingHost string `json:"tracing_host,omitempty"`
	// Tracing Label Prefix (default: "pod_label_")
	TracingLabelPrefix string `json:"tracing_label_prefix,omitempty"`
	// Tracing Annotation Prefix (default: "pod_annotation_")
	TracingAnnotationPrefix string `json:"tracing_annotation_prefix,omitempty"`
	// Source HostKey Name (default: "_sourceHost")
	SourceHostKeyName string `json:"source_host_key_name,omitempty"`
	// Source CategoryKey Name (default: "_sourceCategory")
	SourceCategoryKeyName string `json:"source_category_key_name,omitempty"`
	// Source NameKey Name (default: "_sourceName")
	SourceNameKeyName string `json:"source_name_key_name,omitempty"`
	// CollectorKey Name (default: "_collector")
	CollectorKeyName string `json:"collector_key_name,omitempty"`
	// Collector Value (default: "undefined")
	CollectorValue string `json:"collector_value,omitempty"`
}

+kubebuilder:object:generate=true

func (*SumoLogic) DeepCopy

func (in *SumoLogic) DeepCopy() *SumoLogic

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SumoLogic.

func (*SumoLogic) DeepCopyInto

func (in *SumoLogic) DeepCopyInto(out *SumoLogic)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SumoLogic) ToDirective

func (s *SumoLogic) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type TagNormaliser

type TagNormaliser struct {
	// Re-Tag log messages info at [github](https://github.com/kube-logging/fluent-plugin-tag-normaliser)
	Format string `json:"format,omitempty" plugin:"default:${namespace_name}.${pod_name}.${container_name}"`
	// Tag used in match directive. (default: kubernetes.**)
	MatchTag string `json:"match_tag,omitempty" plugin:"hidden"`
}

+docName:"Tag Normaliser parameters"

func (*TagNormaliser) ToDirective

func (t *TagNormaliser) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

type Throttle

type Throttle struct {
	// Used to group logs. Groups are rate limited independently (default: kubernetes.container_name)
	GroupKey string `json:"group_key,omitempty"`
	// This is the period of of time over which group_bucket_limit applies (default: 60)
	GroupBucketPeriodSeconds int `json:"group_bucket_period_s,omitempty"`
	// Maximum number logs allowed per groups over the period of group_bucket_period_s (default: 6000)
	GroupBucketLimit int `json:"group_bucket_limit,omitempty"`
	// When a group reaches its limit, logs will be dropped from further processing if this value is true (default: true)
	GroupDropLogs bool `json:"group_drop_logs,omitempty"`
	// After a group has exceeded its bucket limit, logs are dropped until the rate per second falls below or equal to group_reset_rate_s. (default: group_bucket_limit/group_bucket_period_s)
	GroupResetRateSeconds int `json:"group_reset_rate_s,omitempty"`
	// When a group reaches its limit and as long as it is not reset, a warning message with the current log rate of the group is emitted repeatedly. This is the delay between every repetition. (default: 10 seconds)
	GroupWarningDelaySeconds int `json:"group_warning_delay_s,omitempty"`
}

+kubebuilder:object:generate=true

func (*Throttle) DeepCopy

func (in *Throttle) DeepCopy() *Throttle

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Throttle.

func (*Throttle) DeepCopyInto

func (in *Throttle) DeepCopyInto(out *Throttle)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Throttle) ToDirective

func (t *Throttle) ToDirective(secretLoader secret.SecretLoader, id string) (types.Directive, error)

Jump to

Keyboard shortcuts

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