ExLLM.Infrastructure.CircuitBreaker.Config (ex_llm v0.8.1)

View Source

Public 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_preset(circuit_name, preset_name)

Apply a preset to a circuit.

Parameters

  • circuit_name - Circuit identifier
  • preset_name - Preset to apply

Examples

Config.apply_preset("my_circuit", :fast_fail)

export_all()

Export all circuit configurations.

Returns

Map of circuit configurations.

Examples

configs = Config.export_all()

get_config(circuit_name)

Get configuration for a circuit.

Parameters

  • circuit_name - Circuit identifier

Returns

{:ok, config} or {:error, reason}.

import_all(config_data)

Import circuit configurations.

Parameters

  • config_data - Map of circuit configurations

Returns

Map of import results.

Examples

results = Config.import_all(exported_configs)

list_presets()

List all available presets.

Returns

List of preset names (atoms).

Examples

[:fast_fail, :conservative, :default] = Config.list_presets()

refresh_all_dynamic()

Refresh all dynamic configurations.

Examples

Config.refresh_all_dynamic()

refresh_dynamic(circuit_name)

Refresh dynamic configuration for a circuit.

Parameters

  • circuit_name - Circuit identifier

Examples

Config.refresh_dynamic("api_circuit")

register_preset(name, config)

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_to_default(circuit_name)

Reset circuit to default configuration.

Parameters

  • circuit_name - Circuit identifier

Returns

:ok or {:error, reason}.

rollback(circuit_name)

Rollback circuit configuration.

Parameters

  • circuit_name - Circuit identifier

Returns

:ok or {:error, reason}.

set_dynamic(circuit_name, config_fn)

Set dynamic configuration for a circuit.

Parameters

  • circuit_name - Circuit identifier
  • config_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(circuit_name, config_changes)

Update circuit configuration.

Parameters

  • circuit_name - Circuit identifier
  • config_changes - Configuration changes to apply

Returns

:ok or {:error, reason}.