ExLLM.Infrastructure.CircuitBreaker.ConfigManager (ex_llm v0.8.1)
View SourceConfiguration management system for circuit breakers.
Provides centralized configuration management with runtime updates, validation, rollback capabilities, and hot-reload functionality.
Features
- Runtime Configuration Updates: Change settings without restarts
- Configuration Validation: Ensure settings are safe and valid
- Rollback Support: Revert to previous configurations on failure
- Batch Operations: Update multiple circuits simultaneously
- Configuration Profiles: Pre-defined configuration sets
- Hot-reload: Automatically apply configuration changes
- Audit Trail: Track all configuration changes
Configuration Profiles
Built-in profiles for common scenarios:
:conservative
- High fault tolerance, slow recovery:aggressive
- Low fault tolerance, fast recovery:balanced
- Moderate settings for general use:high_throughput
- Optimized for high-volume services:experimental
- For testing and development
Usage
# Update individual circuit
ExLLM.CircuitBreaker.ConfigManager.update_circuit("api_service", %{
failure_threshold: 10,
reset_timeout: 60_000
})
# Apply configuration profile
ExLLM.CircuitBreaker.ConfigManager.apply_profile("api_service", :conservative)
# Batch update multiple circuits
ExLLM.CircuitBreaker.ConfigManager.batch_update(%{
"service_1" => %{failure_threshold: 5},
"service_2" => %{reset_timeout: 30_000}
})
# Rollback to previous configuration
ExLLM.CircuitBreaker.ConfigManager.rollback("api_service")
Summary
Functions
Apply a pre-defined configuration profile to a circuit.
Batch update multiple circuits with different configurations.
Returns a specification to start this module under a supervisor.
Get current configuration for a circuit.
Get configuration history for a circuit.
Get details of a specific profile.
Initialize the configuration management system.
Get all circuit configurations.
Get available configuration profiles.
Register a custom configuration profile.
Reset a circuit to default configuration.
Rollback to the previous configuration for a circuit.
Start the configuration manager.
Update configuration for a specific circuit.
Validate a configuration map.
Functions
Apply a pre-defined configuration profile to a circuit.
Batch update multiple circuits with different configurations.
Returns a specification to start this module under a supervisor.
See Supervisor
.
Get current configuration for a circuit.
Get configuration history for a circuit.
Get details of a specific profile.
Initialize the configuration management system.
@spec list_all_configs() :: [map()]
Get all circuit configurations.
@spec list_profiles() :: [atom()]
Get available configuration profiles.
Register a custom configuration profile.
Reset a circuit to default configuration.
Rollback to the previous configuration for a circuit.
Start the configuration manager.
Update configuration for a specific circuit.
Validate a configuration map.