struct

Logarithm::CLI::Monitor::Arguments

Inherits Iterable < Enumerable < Struct < Value < Object

Monitoring subcommand for real-time anomaly detection.

This command starts real-time monitoring of log sources using a trained model to detect anomalies. It continuously processes logs and alerts on suspicious patterns based on the learned normal behavior.

Generated Structs

Admiral automatically generates the following structs from the flag definitions:

Monitor::Flags

Contains all command-line flags and their parsed values for the monitoring subcommand.

Flag Categories:

Data Source Configuration

  • recursive: Enable recursive directory traversal for log files
  • journald: Include systemd journal as a log source
  • since: Time-based filtering for journal entries

Model and Data Configuration

  • data_dir: Override default model storage directory
  • config: Path to YAML configuration file override

Runtime Configuration

  • verbose: Enable detailed logging output during monitoring

Monitor::Arguments

Contains positional arguments for the monitoring subcommand.

  • paths: Space-separated list of log file or directory paths

Usage in Code

# Access parsed flags in command execution
if flags.verbose
  Logarithm::Log.info("Verbose monitoring mode enabled")
end

# Use flag values for configuration
if !flags.data_dir.empty?
  ENV["LOGARITHM_DATA_DIR"] = flags.data_dir
end

# Parse space-separated paths
log_paths = arguments.paths.split.map(&.strip)

Validation

Flag and argument values are validated during parsing:

  • File paths are checked for accessibility
  • Time formats are validated for journal filtering
  • Configuration files are verified for existence and readability
  • Arguments are checked for directory traversal attempts

Constants

SPECS = {"paths" => {type: "String", description: {"paths", "Log file or directory paths to monitor (space-separated, use quotes for paths with spaces)"}, default: "\"\"", is_required: false}} of String => NamedTuple(type: String, description: Tuple(String, String | ::Nil), default: String, is_required: Bool)

Constructors

new(command : Admiral::Command)

Instance methods

[](*args, **options)
[](*args, **options, &)
each(*args, **options)
each(*args, **options, &)
exists?(name : Symbol)
get(name : Symbol)
get?(name : Symbol)
inspect(io)
Source
paths
Source
rest
validate!(command : Admiral::Command)
value_from_spec(command : Admiral::Command, *, arg : String, type, default, is_required : Bool)
Source