Documentation
¶
Index ¶
- Constants
- Variables
- func NewCacheBehavior(dir string, engineTitle string) (*cacheBehavior, error)
- type AppMode
- type CacheEngine
- type Config
- func (cfg *Config) EnableOutputDebug()
- func (cfg *Config) EnableOutputTrace()
- func (cfg *Config) EnableOutputVerbose()
- func (cfg *Config) GetLogger() *slog.Logger
- func (cfg *Config) GetLoggerLevel() slog.Level
- func (cfg *Config) GetTerminalOutputFormat() LogFormat
- func (cfg *Config) IsTraceEnabled() bool
- func (cfg *Config) IsVerboseOrHigher() bool
- func (cfg *Config) SetLoggerLevel()
- func (cfg *Config) SetTerminalOutputFormat(terminalLogFormat string) (LogFormat, error)
- func (cfg *Config) SetTrafficLogFormat(logfmt string) error
- type HeaderFilterGroup
- type HeaderFiltersContainer
- type LogFormat
- type LogSourceConfig
Constants ¶
const ( DefaultListenAddr = "127.0.0.1:8080" DefaultCacheDir = "/tmp/llm_proxy" )
Variables ¶
var LogSourceConfigAllTrue = LogSourceConfig{ LogConnectionStats: true, LogRequestHeaders: true, LogRequest: true, LogResponseHeaders: true, LogResponse: true, }
Functions ¶
func NewCacheBehavior ¶ added in v2.4.0
NewCacheBehavior creates a new cacheBehavior object
Types ¶
type CacheEngine ¶ added in v2.4.0
type CacheEngine int
const ( CacheEngineMemory CacheEngine = iota CacheEngineBolt )
func (CacheEngine) String ¶ added in v2.4.0
func (c CacheEngine) String() string
type Config ¶
type Config struct {
AppMode AppMode
Cache *cacheBehavior
HeaderFilters *HeaderFiltersContainer
HttpBehavior *httpBehavior
TrafficLogger *trafficLogger
// contains filtered or unexported fields
}
Config is the main config mega-struct
func NewDefaultConfig ¶
func NewDefaultConfig() *Config
func (*Config) EnableOutputDebug ¶ added in v2.2.0
func (cfg *Config) EnableOutputDebug()
func (*Config) EnableOutputTrace ¶ added in v2.2.0
func (cfg *Config) EnableOutputTrace()
func (*Config) EnableOutputVerbose ¶ added in v2.2.0
func (cfg *Config) EnableOutputVerbose()
func (*Config) GetLoggerLevel ¶ added in v2.2.0
func (*Config) GetTerminalOutputFormat ¶ added in v2.2.0
func (*Config) IsTraceEnabled ¶ added in v2.2.0
IsOutputDebug returns true if the log is configured to add the source file to the log output
func (*Config) IsVerboseOrHigher ¶
IsVerboseOrHigher returns 1 if the log level is verbose or higher
func (*Config) SetLoggerLevel ¶
func (cfg *Config) SetLoggerLevel()
func (*Config) SetTerminalOutputFormat ¶ added in v2.2.0
func (*Config) SetTrafficLogFormat ¶ added in v2.2.0
type HeaderFilterGroup ¶ added in v2.3.0
type HeaderFilterGroup struct {
Headers []string // user-editable list of headers to filter
// contains filtered or unexported fields
}
HeaderFilterGroup is an object used to filter headers for a specific purpose, such as when reading existing logs (remove content-type), writing new logs (remove auth), or when sending requests to upstream.
func NewHeaderFilterGroup ¶ added in v2.3.0
func NewHeaderFilterGroup(name string, userHeaders []string, extraHeaders ...[]string) *HeaderFilterGroup
NewHeaderFilterGroup creates a new HeaderFilterGroup
func (*HeaderFilterGroup) FilterHeaders ¶ added in v2.3.0
func (hg *HeaderFilterGroup) FilterHeaders(headers http.Header, additionalHeaders ...string) http.Header
FilterHeaders makes a shallow copy of the headers map and removes any headers that are in the filter group. additionalHeaders is a variadic parameter that allows for additional headers to be removed from the new map that will be returned by this method.
func (*HeaderFilterGroup) IsHeaderInGroup ¶ added in v2.3.0
func (hg *HeaderFilterGroup) IsHeaderInGroup(header string) bool
IsHeaderInGroup returns true if the header should be filtered by this group
func (*HeaderFilterGroup) String ¶ added in v2.3.0
func (hfg *HeaderFilterGroup) String() string
type HeaderFiltersContainer ¶ added in v2.3.0
type HeaderFiltersContainer struct {
// Headers set by the upstream, to be filtered from requests stored in the cache
ResponseToCache *HeaderFilterGroup
// Headers set by the client, to be omitted from logs
RequestToLogs *HeaderFilterGroup // filter-request-headers-to-logs
// Headers set by upstream, to be omitted from logs
ResponseToLogs *HeaderFilterGroup // filter-response-headers-to-logs
// Headers set by the client, to be filtered from requests sent upstream
RequestToUpstream *HeaderFilterGroup // filter-request-headers-to-upstream
// Headers set by upstream, to be filtered from the responses sent to the client
ResponseToClient *HeaderFilterGroup // filter-response-headers-to-client
}
HeaderFiltersContainer holds the configuration for filtering headers
func NewHeaderFiltersContainer ¶ added in v2.3.0
func NewHeaderFiltersContainer() *HeaderFiltersContainer
NewHeaderFiltersContainer creates a new HeaderFiltersContainer with default values
func (*HeaderFiltersContainer) BuildIndexes ¶ added in v2.3.0
func (hg *HeaderFiltersContainer) BuildIndexes()
BuildIndexes rebuilds the internal indexes for the header filters
type LogFormat ¶ added in v2.2.0
type LogFormat int
func StringToLogFormat ¶ added in v2.2.0
StringToLogFormat converts a string to a LogLevel enum value.
type LogSourceConfig ¶
type LogSourceConfig struct {
LogConnectionStats bool
LogRequestHeaders bool
LogRequest bool
LogResponseHeaders bool
LogResponse bool
}
LogSourceConfig holds the configuration toggles for logging request and response data
func (*LogSourceConfig) String ¶
func (l *LogSourceConfig) String() string