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.