Documentation
¶
Overview ¶
Package types provides data structures and types for the logs system.
Index ¶
Constants ¶
const ( InvalidFingerprintValue = 0 // DefaultLinesCount is the default number of lines to use for fingerprinting when fingerprint_strategy is line_checksum DefaultLinesCount = 1 // DefaultBytesCount is the default number of bytes to use for fingerprinting when fingerprint_strategy is byte_checksum DefaultBytesCount = 1024 )
InvalidFingerprintValue is the value that is returned when a fingerprint cannot be produced
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Fingerprint ¶
type Fingerprint struct {
Value uint64
Config *FingerprintConfig
}
Fingerprint struct that stores both the value and config used to derive that value
func (*Fingerprint) Equals ¶
func (f *Fingerprint) Equals(other *Fingerprint) bool
Equals compares two fingerprints and returns true if they are equal
func (*Fingerprint) String ¶
func (f *Fingerprint) String() string
String converts the fingerprint to a string
func (*Fingerprint) ValidFingerprint ¶
func (f *Fingerprint) ValidFingerprint() bool
ValidFingerprint returns true if the fingerprint is valid (non-zero value and non-nil config)
type FingerprintConfig ¶
type FingerprintConfig struct {
// FingerprintStrategy defines the strategy used for fingerprinting. Options are:
// - "line_checksum": compute checksum based on line content (default)
// - "byte_checksum": compute checksum based on byte content
// - "disabled": disable fingerprinting
FingerprintStrategy FingerprintStrategy `json:"fingerprint_strategy" mapstructure:"fingerprint_strategy" yaml:"fingerprint_strategy"`
// Count is the number of lines or bytes to use for fingerprinting, depending on the strategy
Count int `json:"count" mapstructure:"count" yaml:"count"`
// CountToSkip is the number of lines or bytes to skip before starting fingerprinting
CountToSkip int `json:"count_to_skip" mapstructure:"count_to_skip" yaml:"count_to_skip"`
// MaxBytes is only used for line-based fingerprinting to prevent overloading
// when reading large files. It's ignored for byte-based fingerprinting.
MaxBytes int `json:"max_bytes" mapstructure:"max_bytes" yaml:"max_bytes"`
// Source is the source of the fingerprint config
// - "per-source": the fingerprint config is set per-source
// - "global": the fingerprint config is set globally
// - "none": the fingerprint config is not set
Source FingerprintConfigSource `json:"source" mapstructure:"source" yaml:"source"`
}
FingerprintConfig defines the options for the fingerprint configuration.
type FingerprintConfigSource ¶ added in v0.74.0
type FingerprintConfigSource string
FingerprintConfigSource defines the source of the fingerprint config
const ( // FingerprintConfigSourcePerSource defines the fingerprint config is set per-source FingerprintConfigSourcePerSource FingerprintConfigSource = "per-source" // FingerprintConfigSourceGlobal defines the fingerprint config is set globally FingerprintConfigSourceGlobal FingerprintConfigSource = "global" // FingerprintConfigSourceDefault defines the fingerprint config is the default config FingerprintConfigSourceDefault FingerprintConfigSource = "default" )
type FingerprintStrategy ¶
type FingerprintStrategy string
FingerprintStrategy defines the strategy used for fingerprinting
const ( // FingerprintStrategyLineChecksum computes a checksum based on line content FingerprintStrategyLineChecksum FingerprintStrategy = "line_checksum" // FingerprintStrategyByteChecksum computes a checksum based on byte content FingerprintStrategyByteChecksum FingerprintStrategy = "byte_checksum" // FingerprintStrategyDisabled disables fingerprinting FingerprintStrategyDisabled FingerprintStrategy = "disabled" )
func (FingerprintStrategy) String ¶
func (s FingerprintStrategy) String() string
func (FingerprintStrategy) Validate ¶
func (s FingerprintStrategy) Validate() error
Validate checks if the fingerprint strategy is valid (either line_checksum or byte_checksum)