ExLLM.Infrastructure.CircuitBreaker.Config (ex_llm v0.8.1)
View SourcePublic API for circuit breaker configuration management.
This module provides a simplified interface to the ConfigManager, with convenience functions for common operations.
Summary
Functions
Apply a preset to a circuit.
Export all circuit configurations.
Get configuration for a circuit.
Import circuit configurations.
List all available presets.
Refresh all dynamic configurations.
Refresh dynamic configuration for a circuit.
Register a configuration preset.
Reset circuit to default configuration.
Rollback circuit configuration.
Set dynamic configuration for a circuit.
Update circuit configuration.
Functions
Apply a preset to a circuit.
Parameters
circuit_name
- Circuit identifierpreset_name
- Preset to apply
Examples
Config.apply_preset("my_circuit", :fast_fail)
Export all circuit configurations.
Returns
Map of circuit configurations.
Examples
configs = Config.export_all()
Get configuration for a circuit.
Parameters
circuit_name
- Circuit identifier
Returns
{:ok, config}
or {:error, reason}
.
Import circuit configurations.
Parameters
config_data
- Map of circuit configurations
Returns
Map of import results.
Examples
results = Config.import_all(exported_configs)
List all available presets.
Returns
List of preset names (atoms).
Examples
[:fast_fail, :conservative, :default] = Config.list_presets()
Refresh all dynamic configurations.
Examples
Config.refresh_all_dynamic()
Refresh dynamic configuration for a circuit.
Parameters
circuit_name
- Circuit identifier
Examples
Config.refresh_dynamic("api_circuit")
Register a configuration preset.
Parameters
name
- Preset name (atom)config
- Configuration map or keyword list
Examples
Config.register_preset(:fast_fail, failure_threshold: 1, reset_timeout: 5_000)
Reset circuit to default configuration.
Parameters
circuit_name
- Circuit identifier
Returns
:ok
or {:error, reason}
.
Rollback circuit configuration.
Parameters
circuit_name
- Circuit identifier
Returns
:ok
or {:error, reason}
.
Set dynamic configuration for a circuit.
Parameters
circuit_name
- Circuit identifierconfig_fn
- Function that returns configuration based on current state
Examples
Config.set_dynamic("api_circuit", fn _state ->
if :rand.uniform() > 0.5 do
%{failure_threshold: 3, reset_timeout: 30_000}
else
%{failure_threshold: 5, reset_timeout: 60_000}
end
end)
Update circuit configuration.
Parameters
circuit_name
- Circuit identifierconfig_changes
- Configuration changes to apply
Returns
:ok
or {:error, reason}
.