Add circuit breaker

This commit is contained in:
2026-03-05 07:21:04 +00:00
parent ae2e1b7a80
commit d782204c68
7 changed files with 241 additions and 5 deletions

View File

@@ -91,7 +91,19 @@ func main() {
logger.Info("metrics initialized", slog.String("path", metricsPath))
}
baseRegistry, err := providers.NewRegistry(cfg.Providers, cfg.Models)
// Create provider registry with circuit breaker support
var baseRegistry *providers.Registry
if cfg.Observability.Enabled && cfg.Observability.Metrics.Enabled {
// Pass observability callback for circuit breaker state changes
baseRegistry, err = providers.NewRegistryWithCircuitBreaker(
cfg.Providers,
cfg.Models,
observability.RecordCircuitBreakerStateChange,
)
} else {
// No observability, use default registry
baseRegistry, err = providers.NewRegistry(cfg.Providers, cfg.Models)
}
if err != nil {
logger.Error("failed to initialize providers", slog.String("error", err.Error()))
os.Exit(1)