Documentation
¶
Overview ¶
Package types provides data structures and types for the logs system.
Index ¶
Constants ¶
const (
InvalidFingerprintValue = 0
)
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"`
}
FingerprintConfig defines the options for the fingerprint configuration.
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)