Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackoffConfig ¶
type BackoffConfig struct {
InitialMs int `mapstructure:"initial_ms"`
MaxMs int `mapstructure:"max_ms"`
Multiplier float64 `mapstructure:"multiplier"`
MaxAttempts int `mapstructure:"max_attempts"`
}
BackoffConfig controls retry/backoff behaviour.
type BrowserConfig ¶
type BrowserConfig struct {
Scroll bool `mapstructure:"scroll"`
WaitForSelector string `mapstructure:"wait_for_selector"`
TimeoutS int `mapstructure:"timeout_s"`
}
BrowserConfig holds headless-browser target settings.
type Config ¶
type Config struct {
Pacing PacingConfig `mapstructure:"pacing"`
Limits LimitsConfig `mapstructure:"limits"`
RateLimits RateLimitsConfig `mapstructure:"rate_limits"`
Backoff BackoffConfig `mapstructure:"backoff"`
Targets []TargetConfig `mapstructure:"targets"`
TargetsFile string `mapstructure:"targets_file"`
TargetDefaults TargetDefaultsConfig `mapstructure:"target_defaults"`
Output OutputConfig `mapstructure:"output"`
Metrics MetricsConfig `mapstructure:"metrics"`
Daemon DaemonConfig `mapstructure:"daemon"`
}
Config is the root configuration structure.
type DNSConfig ¶
type DNSConfig struct {
Resolver string `mapstructure:"resolver"`
RecordType string `mapstructure:"record_type"`
}
DNSConfig holds DNS resolver target settings.
type DaemonConfig ¶
type DaemonConfig struct {
PIDFile string `mapstructure:"pid_file"`
LogLevel string `mapstructure:"log_level"`
LogFormat string `mapstructure:"log_format"`
}
DaemonConfig holds daemon/process settings.
type DomainRateLimit ¶
type DomainRateLimit struct {
Domain string `mapstructure:"domain"`
RPS float64 `mapstructure:"rps"`
}
DomainRateLimit specifies a per-domain requests-per-second limit.
type HTTPConfig ¶
type HTTPConfig struct {
Method string `mapstructure:"method"`
Headers map[string]string `mapstructure:"headers"`
Body string `mapstructure:"body"`
TimeoutS int `mapstructure:"timeout_s"`
}
HTTPConfig holds HTTP-specific target settings.
type LimitsConfig ¶
type LimitsConfig struct {
MaxWorkers int `mapstructure:"max_workers"`
MaxBrowserWorkers int `mapstructure:"max_browser_workers"`
CPUThresholdPct float64 `mapstructure:"cpu_threshold_pct"`
MemoryThresholdMB uint64 `mapstructure:"memory_threshold_mb"`
}
LimitsConfig controls concurrency and resource thresholds.
type MetricsConfig ¶
type MetricsConfig struct {
Enabled bool `mapstructure:"enabled"`
PrometheusPort int `mapstructure:"prometheus_port"`
}
MetricsConfig controls Prometheus metrics exposition.
type OutputConfig ¶
type OutputConfig struct {
Enabled bool `mapstructure:"enabled"`
File string `mapstructure:"file"`
Format string `mapstructure:"format"` // jsonl | csv
Append bool `mapstructure:"append"`
PCAPFile string `mapstructure:"pcap_file"` // write synthetic PCAP alongside normal output
}
OutputConfig controls writing request results to a file.
type PacingConfig ¶
type PacingConfig struct {
Mode string `mapstructure:"mode"` // human | rate_limited | scheduled
RequestsPerMinute float64 `mapstructure:"requests_per_minute"`
JitterFactor float64 `mapstructure:"jitter_factor"`
MinDelayMs int `mapstructure:"min_delay_ms"`
MaxDelayMs int `mapstructure:"max_delay_ms"`
Schedule []ScheduleEntry `mapstructure:"schedule"`
}
PacingConfig controls how requests are spaced in time.
type RateLimitsConfig ¶
type RateLimitsConfig struct {
DefaultRPS float64 `mapstructure:"default_rps"`
PerDomain []DomainRateLimit `mapstructure:"per_domain"`
}
RateLimitsConfig holds global and per-domain rate limits.
type ScheduleEntry ¶
type ScheduleEntry struct {
Cron string `mapstructure:"cron"`
DurationMinutes int `mapstructure:"duration_minutes"`
RequestsPerMinute float64 `mapstructure:"requests_per_minute"`
}
ScheduleEntry defines a cron-based active window with its own RPM.
type TargetConfig ¶
type TargetConfig struct {
URL string `mapstructure:"url"`
Weight int `mapstructure:"weight"`
Type string `mapstructure:"type"` // http | browser | dns | websocket
HTTP HTTPConfig `mapstructure:"http"`
Browser BrowserConfig `mapstructure:"browser"`
DNS DNSConfig `mapstructure:"dns"`
WebSocket WebSocketConfig `mapstructure:"websocket"`
}
TargetConfig describes a single request target.
type TargetDefaultsConfig ¶
type TargetDefaultsConfig struct {
Weight int `mapstructure:"weight"`
HTTP HTTPConfig `mapstructure:"http"`
Browser BrowserConfig `mapstructure:"browser"`
DNS DNSConfig `mapstructure:"dns"`
WebSocket WebSocketConfig `mapstructure:"websocket"`
}
TargetDefaultsConfig holds fallback values applied to every target loaded from targets_file. Fields left at their zero value fall through to each driver's own built-in defaults.
type WebSocketConfig ¶
type WebSocketConfig struct {
DurationS int `mapstructure:"duration_s"`
SendMessages []string `mapstructure:"send_messages"`
ExpectMessages int `mapstructure:"expect_messages"`
}
WebSocketConfig holds WebSocket target settings.