Skip to main content

SingleLayer

Struct SingleLayer 

Source
pub struct SingleLayer {
    pub domain: Vec<Regex>,
    pub threshold: Ratio<BigInt>,
    /* private fields */
}

Fields§

§domain: Vec<Regex>

Regular expressions defining the domain patterns to be replaced in log lines.

§threshold: Ratio<BigInt>

The similarity threshold used to determine if a new log line matches an existing LogGroup.

Implementations§

Source§

impl SingleLayer

Source

pub fn new(domain: Vec<String>) -> Result<Self, Error>

Creates a new SingleLayer drain instance.

§Arguments
  • domain - A vector of strings, each representing a regular expression pattern to be used for preprocessing log lines. These patterns are replaced with a wildcard token before further processing.
§Returns

A Result containing the new SingleLayer instance on success, or an anyhow::Error if any of the provided domain patterns are invalid regular expressions.

Source

pub fn set_threshold( &mut self, numerator: u64, denominator: u64, ) -> Result<(), Error>

Sets the similarity threshold for the drain.

This threshold determines how similar a new log line must be to an existing LogGroup’s event template to be considered a match. The similarity is calculated as a ratio of matching tokens to total tokens.

§Arguments
  • numerator - The numerator of the similarity ratio.
  • denominator - The denominator of the similarity ratio.
§Returns

Ok(()) on success, or an anyhow::Error if the numerator or denominator cannot be converted into BigInt.

Source

pub fn resolve(&self, sym: DefaultSymbol) -> String

Resolves a DefaultSymbol back into its original string representation.

This is a utility method that uses the internal string interner to retrieve the string associated with a given symbol.

§Arguments
  • sym - The DefaultSymbol to resolve.
§Returns

A String representation of the symbol.

§Panics

Panics if the symbol cannot be resolved, which should not happen under normal operation as symbols are only created from interned strings.

Trait Implementations§

Source§

impl Clone for SingleLayer

Source§

fn clone(&self) -> SingleLayer

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SingleLayer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for SingleLayer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the SingleLayer drain for display.

This implementation provides a human-readable representation of the drain, including its domain patterns, similarity threshold, and a list of all contained log groups.

§Arguments
  • f - The formatter to write into.
§Returns

A fmt::Result indicating success or failure of the formatting operation.

Source§

impl Drain for SingleLayer

Source§

fn process_line(&mut self, line: String) -> Result<bool, Error>

Processes a single log line, attempting to match it against existing log groups.

If the line is empty, it is ignored. Otherwise, it is converted into a Record. The method then attempts to find a matching LogGroup based on the record’s length and first token. If a sufficiently similar LogGroup is found (based on the threshold), the new record is added as an example to that group. If no match is found, a new LogGroup is created for the record.

§Arguments
  • line - The log line string to process.
§Returns
  • Ok(true) if a new LogGroup was created.
  • Ok(false) if the line was added to an existing LogGroup.
  • Err(anyhow::Error) if an error occurred during processing.
Source§

fn collect_log_groups(&self) -> Vec<LogGroup>

Collects all LogGroups currently stored in the drain.

This method flattens the internal hierarchical storage of log groups into a single vector.

§Returns

A Vec<LogGroup> containing clones of all log groups.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more