common

package
v2.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Auth

type Auth struct {
	// The method for HTTP authentication. Now only basic.
	// +kubebuilder:validation:Enum:basic
	Method *string `json:"auth,omitempty"`
	// The username for basic authentication.
	Username *plugins.Secret `json:"username,omitempty"`
	// The password for basic authentication.
	Password *plugins.Secret `json:"password,omitempty"`
}

Auth defines the common parameters for the auth plugin

func (*Auth) Name

func (a *Auth) Name() string

func (*Auth) Params

func (a *Auth) Params(loader plugins.SecretLoader) (*params.PluginStore, error)

type Buffer

type Buffer struct {
	BufferCommon `json:",inline,omitempty"`
	// The file buffer plugin
	*FileBuffer `json:",inline,omitempty"`
	// The file_single buffer plugin
	*FileSingleBuffer `json:",inline,omitempty"`
	// The time section of buffer plugin
	Time *Time `json:",inline,omitempty"`
	// Output plugin will flush chunks per specified time (enabled when time is specified in chunk keys)
	TimeKey *string `json:"timekey,omitempty"`
	// Output plugin will write chunks after timekey_wait seconds later after timekey expiration
	TimeKeyWait *string `json:"timekeyWait,omitempty"`

	// The path where buffer chunks are stored. This field would make no effect in memory buffer plugin.
	Path *string `json:"path,omitempty"`
	// The output plugins group events into chunks.
	// Chunk keys, specified as the argument of <buffer> section, control how to group events into chunks.
	// If tag is empty, which means blank Chunk Keys.
	// Tag also supports Nested Field, combination of Chunk Keys, placeholders, etc.
	// See https://docs.fluentd.org/configuration/buffer-section.
	Tag string `json:"tag,omitempty"`
	// Buffer parameters
	// The max size of each chunks: events will be written into chunks until the size of chunks become this size
	// Default: 8MB (memory) / 256MB (file)
	// +kubebuilder:validation:Pattern:="^\\d+(KB|MB|GB|TB)$"
	ChunkLimitSize *string `json:"chunkLimitSize,omitempty"`
	// The max number of events that each chunks can store in it.
	// +kubebuilder:validation:Pattern:="^\\d+(KB|MB|GB|TB)$"
	ChunkLimitRecords *string `json:"chunkLimitRecords,omitempty"`
	// The size limitation of this buffer plugin instance
	// Default: 512MB (memory) / 64GB (file)
	// +kubebuilder:validation:Pattern:="^\\d+(KB|MB|GB|TB)$"
	TotalLimitSize *string `json:"totalLimitSize,omitempty"`
	// The queue length limitation of this buffer plugin instance. Default: 0.95
	// +kubebuilder:validation:Pattern:="^\\d+.?\\d+$"
	QueueLimitLength *string `json:"queueLimitLength,omitempty"`
	// Limit the number of queued chunks. Default: 1
	// If a smaller flush_interval is set, e.g. 1s,
	// there are lots of small queued chunks in the buffer.
	// With file buffer, it may consume a lot of fd resources when output destination has a problem.
	// This parameter mitigates such situations.
	// +kubebuilder:validation:Minimum:=1
	QueuedChunksLimitSize *int16 `json:"queuedChunksLimitSize,omitempty"`
	// Fluentd will decompress these compressed chunks automatically before passing them to the output plugin
	// If gzip is set, Fluentd compresses data records before writing to buffer chunks.
	// Default:text.
	// +kubebuilder:validation:Enum:=text;gzip
	Compress *string `json:"compress,omitempty"`
	// Flush parameters
	// This specifies whether to flush/write all buffer chunks on shutdown or not.
	FlushAtShutdown *bool `json:"flushAtShutdown,omitempty"`
	// FlushMode defines the flush mode:
	// lazy: flushes/writes chunks once per timekey
	// interval: flushes/writes chunks per specified time via flush_interval
	// immediate: flushes/writes chunks immediately after events are appended into chunks
	// default: equals to lazy if time is specified as chunk key, interval otherwise
	// +kubebuilder:validation:Enum:=default;lazy;interval;immediate
	FlushMode *string `json:"flushMode,omitempty"`
	// FlushInterval defines the flush interval
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$"
	FlushInterval *string `json:"flushInterval,omitempty"`
	// The number of threads to flush/write chunks in parallel
	// +kubebuilder:validation:Pattern:="^\\d+$"
	FlushThreadCount *string `json:"flushThreadCount,omitempty"`
	// The timeout (seconds) until output plugin decides if the async write operation has failed. Default is 60s
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$"
	DelayedCommitTimeout *string `json:"delayedCommitTimeout,omitempty"`
	// OverflowAtction defines the output plugin behave when its buffer queue is full.
	// +kubebuilder:validation:Enum:throw_exception,block,drop_oldest_chunk
	// Default: throw_exception
	OverflowAction *string `json:"overflowAction,omitempty"`
	// Retry parameters
	// The maximum time (seconds) to retry to flush again the failed chunks, until the plugin discards the buffer chunks
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$"
	RetryTimeout *string `json:"retryTimeout,omitempty"`
	// If true, plugin will ignore retry_timeout and retry_max_times options and retry flushing forever.
	RetryForever *bool `json:"retryForever,omitempty"`
	// The maximum number of times to retry to flush the failed chunks. Default: none
	RetryMaxTimes *int16 `json:"retryMaxTimes,omitempty"`
	// The ratio of retry_timeout to switch to use the secondary while failing.
	// +kubebuilder:validation:Pattern:="^\\d+.?\\d+$"
	RetrySecondaryThreshold *string `json:"retrySecondaryThreshold,omitempty"`
	// Output plugin will retry periodically with fixed intervals.
	// +kubebuilder:validation:Enum:exponential_backoff,periodic
	RetryType *string `json:"retryType,omitempty"`
	// Wait in seconds before the next retry to flush or constant factor of exponential backoff
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$"
	RetryWait *string `json:"retryWait,omitempty"`
	// The base number of exponential backoff for retries.
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?$"
	RetryExponentialBackoffBase *string `json:"retryExponentialBackoffBase,omitempty"`
	// The maximum interval (seconds) for exponential backoff between retries while failing
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$"
	RetryMaxInterval *string `json:"retryMaxInterval,omitempty"`
	// If true, the output plugin will retry after randomized interval not to do burst retries
	RetryRandomize *bool `json:"retryRandomize,omitempty"`
	// Instead of storing unrecoverable chunks in the backup directory, just discard them. This option is new in Fluentd v1.2.6.
	DisableChunkBackup *bool `json:"disableChunkBackup,omitempty"`
}

Buffer defines various parameters for the buffer Plugin

func (*Buffer) Name

func (b *Buffer) Name() string

func (*Buffer) Params

type BufferCommon

type BufferCommon struct {
	// The @id parameter specifies a unique name for the configuration.
	Id *string `json:"id,omitempty"`
	// The @type parameter specifies the type of the plugin.
	// +kubebuilder:validation:Enum:=file;memory;file_single
	// +kubebuilder:validation:Required
	Type *string `json:"type"`
	// The @log_level parameter specifies the plugin-specific logging level
	LogLevel *string `json:"logLevel,omitempty"`
}

+kubebuilder:object:generate:=true BufferCommon defines common parameters for the buffer plugin

func (*BufferCommon) DeepCopy

func (in *BufferCommon) DeepCopy() *BufferCommon

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

func (*BufferCommon) DeepCopyInto

func (in *BufferCommon) DeepCopyInto(out *BufferCommon)

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

type BufferSection

type BufferSection struct {
	// buffer section
	Buffer *Buffer `json:"buffer,omitempty"`
	// format section
	Format *Format `json:"format,omitempty"`
	// inject section
	Inject *Inject `json:"inject,omitempty"`
}

BufferSection defines the common parameters for buffer sections

type Client

type Client struct {
	// The IP address or hostname of the client. This is exclusive with Network.
	Host *string `json:"host,omitempty"`
	// The network address specification. This is exclusive with Host.
	Network *string `json:"network,omitempty"`
	// The shared key per client.
	SharedKey *string `json:"sharedKey,omitempty"`
	// The array of usernames.
	Users *string `json:"users,omitempty"`
}

Client defines the commont parameters for the client plugin

func (*Client) Name

func (c *Client) Name() string

func (*Client) Params

type CommonFields

type CommonFields struct {
	// The @id parameter specifies a unique name for the configuration.
	Id *string `json:"id,omitempty"`
	// The @type parameter specifies the type of the plugin.
	Type *string `json:"type,omitempty"`
	// The @log_level parameter specifies the plugin-specific logging level
	LogLevel *string `json:"logLevel,omitempty"`
}

+kubebuilder:object:generate:=true CommonFields defines the common parameters for all plugins

func (*CommonFields) DeepCopy

func (in *CommonFields) DeepCopy() *CommonFields

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

func (*CommonFields) DeepCopyInto

func (in *CommonFields) DeepCopyInto(out *CommonFields)

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

type FileBuffer

type FileBuffer struct {
	// Changes the suffix of the buffer file.
	PathSuffix *string `json:"pathSuffix,omitempty"`
}

The file buffer plugin provides a persistent buffer implementation. It uses files to store buffer chunks on disk.

type FileServiceDiscovery

type FileServiceDiscovery struct {
	// The path of the target list. Default is '/etc/fluent/sd.yaml'
	Path *string `json:"path,omitempty"`
	// The encoding of the configuration file.
	ConfEncoding *string `json:"confEncoding,omitempty"`
}

FileServiceDiscovery defines the file type for the ServiceDiscovery plugin

type FileSingleBuffer

type FileSingleBuffer struct {
	// Calculates the number of records, chunk size, during chunk resume.
	CalcNumRecords *string `json:"calcNumRecords,omitempty"`
	// ChunkFormat specifies the chunk format for calc_num_records.
	// +kubebuilder:validation:Enum:=msgpack;text;auto
	ChunkFormat *string `json:"chunkFormat,omitempty"`
}

The file_single buffer plugin is similar to file_file but it does not have the metadata file. See https://docs.fluentd.org/buffer/file_single#limitation

type Format

type Format struct {
	FormatCommon `json:",inline,omitempty"`
	// Time defines time parameters for Format Plugins
	Time `json:",inline,omitempty"`
	// Delimiter for each field.
	Delimiter *string `json:"delimiter,omitempty"`
	// Output tag field if true.
	OutputTag *bool `json:"outputTag,omitempty"`
	// Output time field if true.
	OutputTime *bool `json:"outputTime,omitempty"`
	// Overwrites the default value in this plugin.
	TimeType *string `json:"timeType,omitempty"`
	// Overwrites the default value in this plugin.
	TimeFormat *string `json:"timeFormat,omitempty"`
	// Specify newline characters.
	// +kubebuilder:validation:Enum:=lf;crlf
	Newline *string `json:"newline,omitempty"`
}

Format defines various parameters of the format plugin

func (*Format) Name

func (f *Format) Name() string

func (*Format) Params

type FormatCommon

type FormatCommon struct {
	// The @id parameter specifies a unique name for the configuration.
	Id *string `json:"id,omitempty"`
	// The @type parameter specifies the type of the plugin.
	// +kubebuilder:validation:Enum:=out_file;json;ltsv;csv;msgpack;hash;single_value
	Type *string `json:"type,omitempty"`
	// The @log_level parameter specifies the plugin-specific logging level
	LogLevel *string `json:"logLevel,omitempty"`
}

FormatCommon defines common parameters of the format plugin

type Inject

type Inject struct {
	// Time section
	Time `json:"inline,omitempty"`

	// The field name to inject hostname
	HostnameKey *string `json:"hostnameKey,omitempty"`
	// Hostname value
	Hostname *string `json:"hostname,omitempty"`
	// The field name to inject worker_id
	WorkerIdKey *string `json:"workerIdKey,omitempty"`
	// The field name to inject tag
	TagKey *string `json:"tagKey,omitempty"`
	// The field name to inject time
	TimeKey *string `json:"timeKey,omitempty"`
}

Inject defines the common parameters for the inject plugin The inject section can be under <match> or <filter> section.

func (*Inject) Name

func (j *Inject) Name() string

func (*Inject) Params

type Parse

type Parse struct {
	ParseCommon `json:",inline"`
	Time        `json:",inline,omitempty"`
	// Specifies the regular expression for matching logs. Regular expression also supports i and m suffix.
	Expression *string `json:"expression,omitempty"`
	// Specify types for converting field into another, i.e: types user_id:integer,paid:bool,paid_usd_amount:float
	Types *string `json:"types,omitempty"`
	// Specify time field for event time. If the event doesn't have this field, current time is used.
	TimeKey *string `json:"timeKey,omitempty"`
	// If true, use Fluent::Eventnow(current time) as a timestamp when time_key is specified.
	EstimateCurrentEvent *bool `json:"estimateCurrentEvent,omitempty"`
	// If true, keep time field in th record.
	KeepTimeKey *bool `json:"keepTimeKey,omitempty"`
	// Specify timeout for parse processing.
	// +kubebuilder:validation:Pattern:="^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$"
	Timeout *string `json:"timeout,omitempty"`
}

Parse defines various parameters for the parse plugin

func (*Parse) Name

func (p *Parse) Name() string

func (*Parse) Params

func (p *Parse) Params(_ plugins.SecretLoader) (*params.PluginStore, error)

type ParseCommon

type ParseCommon struct {
	// The @id parameter specifies a unique name for the configuration.
	Id *string `json:"id,omitempty"`
	// The @type parameter specifies the type of the plugin.
	// +kubebuilder:validation:Enum:=regexp;apache2;apache_error;nginx;syslog;csv;tsv;ltsv;json;multiline;none
	Type *string `json:"type"`
	// The @log_level parameter specifies the plugin-specific logging level
	LogLevel *string `json:"logLevel,omitempty"`
}

ParseCommon defines the common parameters for the parse plugin

type SDCommon

type SDCommon struct {
	// The @id parameter specifies a unique name for the configuration.
	Id *string `json:"id,omitempty"`
	// The @type parameter specifies the type of the plugin.
	// +kubebuilder:validation:Enum:=static;file;srv
	Type *string `json:"type"`
	// The @log_level parameter specifies the plugin-specific logging level
	LogLevel *string `json:"logLevel,omitempty"`
}

SDCommon defines the common parameters for the ServiceDiscovery plugin

type Security

type Security struct {
	// The hostname.
	SelfHostname *string `json:"selfHostname,omitempty"`
	// The shared key for authentication.
	SharedKey *string `json:"sharedKey,omitempty"`
	// If true, user-based authentication is used.
	UserAuth *string `json:"userAuth,omitempty"`
	// Allows the anonymous source. <client> sections are required, if disabled.
	AllowAnonymousSource *string `json:"allowAnonymousSource,omitempty"`
	// Defines user section directly.
	*User `json:"user,omitempty"`
}

Security defines the common parameters for the security plugin

func (*Security) Name

func (s *Security) Name() string

func (*Security) Params

func (s *Security) Params(loader plugins.SecretLoader) (*params.PluginStore, error)

type Server

type Server struct {
	CommonFields `json:",inline"`

	// Host defines the IP address or host name of the server.
	Host *string `json:"host,omitempty"`
	// Name defines the name of the server. Used for logging and certificate verification in TLS transport (when the host is the address).
	ServerName *string `json:"name,omitempty"`
	// Port defines the port number of the host. Note that both TCP packets (event stream) and UDP packets (heartbeat messages) are sent to this port.
	Port *string `json:"port,omitempty"`
	// SharedKey defines the shared key per server.
	SharedKey *string `json:"sharedKey,omitempty"`
	// Username defines the username for authentication.
	Username *plugins.Secret `json:"username,omitempty"`
	// Password defines the password for authentication.
	Password *plugins.Secret `json:"password,omitempty"`
	// Standby marks a node as the standby node for an Active-Standby model between Fluentd nodes.
	Standby *string `json:"standby,omitempty"`
	// Weight defines the load balancing weight
	Weight *string `json:"weight,omitempty"`
}

Server defines the common parameters for the server plugin

func (*Server) Name

func (s *Server) Name() string

func (*Server) Params

func (s *Server) Params(loader plugins.SecretLoader) (*params.PluginStore, error)

type ServiceDiscovery

type ServiceDiscovery struct {
	SDCommon `json:",inline,omitempty"`
	// The server section of this plugin
	Server                *Server `json:"server,omitempty"`
	*FileServiceDiscovery `json:",inline,omitempty"`
	*SrvServiceDiscovery  `json:",inline,omitempty"`
}

ServiceDiscovery defines various parameters for the ServiceDiscovery plugin. Fluentd has a pluggable system called Service Discovery that lets the user extend and reuse custom output service discovery.

func (*ServiceDiscovery) Name

func (sd *ServiceDiscovery) Name() string

func (*ServiceDiscovery) Params

type SrvServiceDiscovery

type SrvServiceDiscovery struct {
	// Service without the underscore in RFC2782.
	Service *string `json:"service,omitempty"`
	// Proto without the underscore in RFC2782.
	Proto *string `json:"proto,omitempty"`
	// The name in RFC2782.
	Hostname *string `json:"hostname,omitempty"`
	// DnsServerHost defines the hostname of the DNS server to request the SRV record.
	DnsServerHost *string `json:"dnsServerHost,omitempty"`
	// Interval defines the interval of sending requests to DNS server.
	Interval *string `json:"interval,omitempty"`
	// DnsLookup resolves the hostname to IP address of the SRV's Target.
	DnsLookup *string `json:"dnsLookup,omitempty"`
}

SrvServiceDiscovery defines the srv type for the ServiceDiscovery plugin

type Time

type Time struct {
	// parses/formats value according to this type, default is string
	// +kubebuilder:validation:Enum:=float;unixtime;string;mixed
	TimeType *string `json:"timeType,omitempty"`
	// Process value according to the specified format. This is available only when time_type is string
	TimeFormat *string `json:"timeFormat,omitempty"`
	// If true, uses local time.
	Localtime *bool `json:"localtime,omitempty"`
	// If true, uses UTC.
	UTC *bool `json:"utc,omitempty"`
	// Uses the specified timezone.
	Timezone *string `json:"timezone,omitempty"`
	// Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed.
	TimeFormatFallbacks *string `json:"timeFormatFallbacks,omitempty"`
}

Time defines the common parameters for the time plugin

type Transport

type Transport struct {
	// The protocal name of this plugin, i.e: tls
	Protocol *string `json:"protocol,omitempty"`

	Version  *string `json:"version,omitempty"`
	Ciphers  *string `json:"ciphers,omitempty"`
	Insecure *bool   `json:"insecure,omitempty"`

	// for Cert signed by public CA
	CaPath               *string `json:"caPath,omitempty"`
	CertPath             *string `json:"certPath,omitempty"`
	PrivateKeyPath       *string `json:"privateKeyPath,omitempty"`
	PrivateKeyPassphrase *string `json:"privateKeyPassphrase,omitempty"`
	ClientCertAuth       *bool   `json:"clientCertAuth,omitempty"`

	// for Cert generated
	CaCertPath             *string `json:"caCertPath,omitempty"`
	CaPrivateKeyPath       *string `json:"caPrivateKeyPath,omitempty"`
	CaPrivateKeyPassphrase *string `json:"caPrivateKeyPassphrase,omitempty"`

	// other parameters
	CertVerifier *string `json:"certVerifier,omitempty"`
}

Transport defines the commont parameters for the transport plugin

func (*Transport) Name

func (t *Transport) Name() string

func (*Transport) Params

type User

type User struct {
	Username *plugins.Secret `json:"username,omitempty"`
	Password *plugins.Secret `json:"password,omitempty"`
}

User defines the common parameters for the user plugin

func (*User) Name

func (u *User) Name() string

func (*User) Params

func (u *User) Params(loader plugins.SecretLoader) (*params.PluginStore, error)

Jump to

Keyboard shortcuts

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