Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateRouterFromConfig ¶ added in v0.4.0
func CreateRouterFromConfig( ctx context.Context, cfg *pkg.Config, opts ...RouterOptionFunc, ) (http.Handler, error)
CreateRouterFromConfig builds the HTTP handler tree from a parsed config: per-provider upstream pools (each member its own reverse proxy, token-swap transport, and concurrency limiter), a model-name dispatcher on /v1/, and the canonical admin endpoints (/healthz, /readiness, /metrics, /setloglevel/, /gc). The model router emits its own structured one-line log per request at V(1) (`[req] METHOD path model=... provider=... status=... latency=...`), so no outer logging wrapper is needed — admin endpoints stay quiet.
func CreateServer ¶
CreateServer loads the config at configPath, wires the model router + per-provider proxies, and returns a run.Func that starts the HTTP listener with graceful shutdown on ctx cancel.
func NewReloadRegistry ¶ added in v0.46.2
func NewReloadRegistry() *prometheus.Registry
NewReloadRegistry returns the Prometheus registry a reloaded handler tree registers its ccrouter_* collectors on. A bare prometheus.NewRegistry() is empty; seeding it with the standard Go + process collectors (the set DefaultRegisterer carries at startup) keeps go_gc_* / process_* series exposed on /metrics across reloads. /metrics serves the active handler's own registerer (buildMux → promhttp.HandlerFor), so the reloaded counters are scraped immediately after the handler swap.
Types ¶
type RouterOptionFunc ¶ added in v0.32.0
type RouterOptionFunc func(*routerOptions)
RouterOptionFunc configures CreateRouterFromConfig beyond the parsed Config. Options are test seams (e.g. an isolated Prometheus registry) that do not belong on the YAML-deserialized Config struct.
func WithCurrentDateTime ¶ added in v0.40.0
func WithCurrentDateTime(clock libtime.CurrentDateTimeGetter) RouterOptionFunc
WithCurrentDateTime overrides the clock used for time-window eligibility and the router's timestamps. Defaults to libtime.NewCurrentDateTime(). Tests pass a fixed clock (libtime.NewCurrentDateTime() + SetNow) for deterministic window checks (spec 014).
func WithMetricsRegisterer ¶ added in v0.14.0
func WithMetricsRegisterer(reg prometheus.Registerer) RouterOptionFunc
WithMetricsRegisterer overrides the Prometheus registerer used for ccrouter_* metrics. Defaults to prometheus.DefaultRegisterer. Tests pass an isolated registry to avoid racing on the process-global default.
func WithWaiterDuration ¶ added in v0.57.0
func WithWaiterDuration(waiter libtime.WaiterDuration) RouterOptionFunc
WithWaiterDuration overrides the waiter that times every member and host limiter's queue wait (maxConcurrentWaitSeconds). Defaults to libtime.NewWaiterDuration(). Tests pass the counterfeiter WaiterDuration mock to decide exactly when a queued request times out instead of sleeping through a real timer.