Documentation
      ¶
    
    
  
    
  
    Index ¶
- type Auth
 - type Buffer
 - type BufferCommon
 - type BufferSection
 - type Client
 - type CommonFields
 - type FileBuffer
 - type FileServiceDiscovery
 - type FileSingleBuffer
 - type Format
 - type FormatCommon
 - type Grok
 - type Inject
 - type Parse
 - type ParseCommon
 - type SDCommon
 - type Security
 - type Server
 - type ServiceDiscovery
 - type SrvServiceDiscovery
 - type Time
 - type Transport
 - type User
 
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) 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) Params ¶
func (b *Buffer) Params(_ plugins.SecretLoader) (*params.PluginStore, error)
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"`
	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) Params ¶
func (c *Client) Params(_ plugins.SecretLoader) (*params.PluginStore, error)
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) Params ¶
func (f *Format) Params(_ plugins.SecretLoader) (*params.PluginStore, error)
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 Grok ¶ added in v2.5.0
type Grok struct {
	// The name of this grok section.
	Name *string `json:"name,omitempty"`
	// The pattern of grok. Required parameter.
	Pattern *string `json:"pattern,omitempty"`
	// If true, keep time field in the record.
	KeepTimeKey *bool `json:"keepTimeKey,omitempty"`
	// Specify time field for event time. If the event doesn't have this field, current time is used.
	TimeKey *string `json:"timeKey,omitempty"`
	// Process value using specified format. This is available only when time_type is string
	TimeFormat *string `json:"timeFormat,omitempty"`
	// Use specified timezone. one can parse/format the time value in the specified timezone.
	TimeZone *string `json:"timeZone,omitempty"`
}
    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) Params ¶
func (j *Inject) Params(_ plugins.SecretLoader) (*params.PluginStore, error)
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"`
	// The pattern of grok.
	GrokPattern *string `json:"grokPattern,omitempty"`
	// Path to the file that includes custom grok patterns.
	CustomPatternPath *string `json:"customPatternPath,omitempty"`
	// The key has grok failure reason.
	GrokFailureKey *string `json:"grokFailureKey,omitempty"`
	// The regexp to match beginning of multiline. This is only for "multiline_grok".
	MultiLineStartRegexp *string `json:"multiLineStartRegexp,omitempty"`
	// Specify grok pattern series set.
	GrokPatternSeries *string `json:"grokPatternSeries,omitempty"`
	// Grok Sections
	Grok []Grok `json:"grok,omitempty"`
}
    Parse defines various parameters for the parse plugin
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;grok;multiline_grok
	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"`
	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) 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 *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) 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 ¶
func (sd *ServiceDiscovery) Params(loader plugins.SecretLoader) (*params.PluginStore, error)
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) Params ¶
func (t *Transport) Params(_ plugins.SecretLoader) (*params.PluginStore, error)