SnmpKit.SnmpSim.CorrelationEngine (snmpkit v0.6.6)
Implement realistic correlations between different metrics.
Network metrics don't exist in isolation - they influence each other in predictable ways:
- Signal quality degrades with higher utilization
- Error rates increase with poor signal quality
- Temperature affects equipment performance
- Power consumption correlates with activity levels
This module provides sophisticated correlation modeling for authentic network simulation.
Summary
Functions
Apply correlations to a device's metrics based on primary metric changes.
Model power consumption correlations with activity and temperature.
Calculate signal quality impact on throughput for DOCSIS devices.
Calculate temperature impact on equipment performance.
Calculate utilization impact on error rates.
Get standard correlation configurations for common device types.
Types
@type correlation_config() :: %{ type: correlation_type(), strength: float(), delay_seconds: integer(), threshold: float(), noise_factor: float() }
@type correlation_type() ::
:positive | :negative | :threshold | :exponential | :logarithmic
Functions
Apply correlations to a device's metrics based on primary metric changes.
Examples
device_state = %{
interface_utilization: 0.8,
signal_quality: 85.0,
temperature: 45.0
}
correlations = [
{:interface_utilization, :error_rate, :positive, 0.7},
{:signal_quality, :throughput, :positive, 0.9},
{:temperature, :cpu_usage, :positive, 0.6}
]
updated_state = SnmpKit.SnmpSim.CorrelationEngine.apply_correlations(
:interface_utilization, 0.8, device_state, correlations, DateTime.utc_now()
)
Model power consumption correlations with activity and temperature.
Power consumption correlates with:
- CPU utilization
- Network activity
- Temperature (cooling requirements)
Calculate signal quality impact on throughput for DOCSIS devices.
Signal quality (SNR, power levels) directly affects achievable throughput in cable modem systems.
@spec calculate_temperature_performance_correlation(float(), atom()) :: %{ cpu_impact: float(), signal_impact: float(), error_impact: float() }
Calculate temperature impact on equipment performance.
Higher temperatures affect:
- CPU performance (thermal throttling)
- Signal quality (thermal noise)
- Error rates (increased bit errors)
Calculate utilization impact on error rates.
Higher utilization typically leads to increased error rates due to:
- Buffer overflows
- Increased collision probability
- Thermal effects
Get standard correlation configurations for common device types.
Examples
correlations = SnmpKit.SnmpSim.CorrelationEngine.get_device_correlations(:cable_modem)