Documentation
¶
Overview ¶
Package conf contains configuration structures used to setup the SDK
Index ¶
Constants ¶
const ( // RedisConsumer mode RedisConsumer = "redis-consumer" // Localhost mode Localhost = "localhost" // InMemoryStandAlone mode InMemoryStandAlone = "inmemory-standalone" )
Variables ¶
This section is empty.
Functions ¶
func Normalize ¶
func Normalize(apikey string, cfg *SplitSdkConfig) error
Normalize checks that the parameters passed by the user are correct and updates parameters if necessary. returns an error if something is wrong
func NormalizeSDKConf ¶
func NormalizeSDKConf(sdkConfig AdvancedConfig) (conf.AdvancedConfig, []error)
NormalizeSDKConf compares against SDK Config to set defaults
Types ¶
type AdvancedConfig ¶
type AdvancedConfig struct {
ImpressionListener impressionlistener.ImpressionListener
HTTPTimeout int
SegmentQueueSize int
SegmentWorkers int
AuthServiceURL string
SdkURL string
EventsURL string
StreamingServiceURL string
TelemetryServiceURL string
EventsBulkSize int64
EventsQueueSize int
ImpressionsQueueSize int
ImpressionsBulkSize int64
StreamingEnabled bool
FlagSetsFilter []string
}
AdvancedConfig exposes more configurable parameters that can be used to further tailor the sdk to the user's needs - ImpressionListener - struct that will be notified each time an impression bulk is ready - HTTPTimeout - Timeout for HTTP requests when doing synchronization - SegmentQueueSize - How many segments can be queued for updating (should be >= # segments the user has) - SegmentWorkers - How many workers will be used when performing segments sync.
type SplitSdkConfig ¶
type SplitSdkConfig struct {
OperationMode string
InstanceName string
IPAddress string
IPAddressesEnabled bool
BlockUntilReady int
SplitFile string
SegmentDirectory string
LabelsEnabled bool
SplitSyncProxyURL string
Logger logging.LoggerInterface
LoggerConfig logging.LoggerOptions
TaskPeriods TaskPeriods
Advanced AdvancedConfig
Redis conf.RedisConfig
ImpressionsMode string
LocalhostRefreshEnabled bool
}
SplitSdkConfig struct ... struct used to setup a Split.io SDK client.
Parameters: - OperationMode (Required) Must be one of ["inmemory-standalone", "redis-consumer"] - InstanceName (Optional) Name to be used when submitting metrics & impressions to split servers - IPAddress (Optional) Address to be used when submitting metrics & impressions to split servers - BlockUntilReady (Optional) How much to wait until the sdk is ready - SplitFile (Optional) File with splits to use when running in localhost mode - SegmentDirectory (Optional) Path where all the segment files are located to use when running in json localhost mode - LabelsEnabled (Optional) Can be used to disable labels if the user does not want to send that info to split servers. - Logger: (Optional) Custom logger complying with logging.LoggerInterface - LoggerConfig: (Optional) Options to setup the sdk's own logger - TaskPeriods: (Optional) How often should each task run - Redis: (Required for "redis-consumer". Sets up Redis config - Advanced: (Optional) Sets up various advanced options for the sdk - ImpressionsMode (Optional) Flag for enabling local impressions dedupe - Possible values <'optimized'|'debug'> - LocalhostRefreshEnabled: (Optional) Flag to run synchronization refresh for Splits and Segments in localhost mode.
func Default ¶
func Default() *SplitSdkConfig
Default returns a config struct with all the default values