conf

package
v4.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CliParametersToRegister

func CliParametersToRegister() map[string]CommandConfigData

CliParametersToRegister returns a list of cli parameter struct

func Initialize

func Initialize()

Initialize config module by default

func LoadFromArgs

func LoadFromArgs(cliParametersMap map[string]interface{})

LoadFromArgs loads configuration values from cli

func LoadFromFile

func LoadFromFile(path string) error

LoadFromFile configuration values from file

func ParseAdvancedOptions

func ParseAdvancedOptions() conf.AdvancedConfig

ParseAdvancedOptions parses defaults for advanced Options

func ValidConfigs

func ValidConfigs() error

ValidConfigs checks configs

func WriteDefaultConfigFile

func WriteDefaultConfigFile(path string)

WriteDefaultConfigFile writes a json file

Types

type Auth

type Auth struct {
	// ApiKeys list of alloweb API-Keys for SDKs
	// split-default-value must be set as SDK_API_KEY just to write config file by cli (see func getDefaultConfigData() at parser.go)
	APIKeys []string `` /* 149-byte string literal not displayed */
}

Auth struct for proxy authentication

type CommandConfigData

type CommandConfigData struct {
	Command       string
	Description   string
	Attribute     string
	AttributeType string
	DefaultValue  interface{}
}

CommandConfigData represent a command line data structure

type ConfigData

type ConfigData struct {
	APIKey              string             `json:"apiKey" split-cli-option:"api-key" split-default-value:"YOUR API KEY" split-cli-description:"Your Split API-KEY"`
	Proxy               InMemorySection    `json:"proxy" split-cli-option-group:"true"`
	Redis               RedisSection       `json:"redis" split-cli-option-group:"true"`
	Producer            ProducerSection    `json:"sync" split-cli-option-group:"true"`
	Logger              LogSection         `json:"log" split-cli-option-group:"true"`
	ImpressionListener  ImpressionListener `json:"impressionListener" split-cli-option-group:"true"`
	SplitsFetchRate     int                `` /* 141-byte string literal not displayed */
	SegmentFetchRate    int                `` /* 148-byte string literal not displayed */
	ImpressionsPostRate int                `` /* 149-byte string literal not displayed */
	ImpressionsPerPost  int64              `` /* 165-byte string literal not displayed */
	ImpressionsThreads  int                `` /* 151-byte string literal not displayed */
	EventsPostRate      int                `` /* 144-byte string literal not displayed */
	EventsPerPost       int64              `` /* 150-byte string literal not displayed */
	EventsThreads       int                `` /* 127-byte string literal not displayed */
	MetricsPostRate     int                `` /* 138-byte string literal not displayed */
	HTTPTimeout         int64              `` /* 143-byte string literal not displayed */
	IPAddressesEnabled  bool               `` /* 196-byte string literal not displayed */
	StreamingEnabled    bool               `` /* 144-byte string literal not displayed */
	ImpressionsMode     string             `` /* 167-byte string literal not displayed */
}

ConfigData main configuration container

var Data ConfigData

Data contains all configuration values

func NewInitializedConfigData

func NewInitializedConfigData() ConfigData

NewInitializedConfigData returns an initialized by default config struct

func (ConfigData) MarshalBinary

func (c ConfigData) MarshalBinary() (data []byte, err error)

MarshalBinary exports ConfigData to JSON string

type ImpressionListener

type ImpressionListener struct {
	Endpoint string `` /* 162-byte string literal not displayed */
}

ImpressionListener represents configuration for impression bulk poster

type InMemorySection

type InMemorySection struct {
	Port               int    `json:"port" split-default-value:"3000" split-cli-option:"proxy-port" split-cli-description:"Proxy port to listen connections"`
	AdminPort          int    `` /* 134-byte string literal not displayed */
	AdminUsername      string `` /* 152-byte string literal not displayed */
	AdminPassword      string `` /* 152-byte string literal not displayed */
	Title              string `` /* 158-byte string literal not displayed */
	PersistMemoryPath  string `` /* 148-byte string literal not displayed */
	ImpressionsMaxSize int64  `` /* 180-byte string literal not displayed */
	EventsMaxSize      int64  `` /* 165-byte string literal not displayed */
	Auth               Auth   `json:"auth" split-cli-option-group:"true"`
}

InMemorySection represents configuration for in memory proxy

type LogSection

type LogSection struct {
	VerboseOn       bool   `json:"verbose" split-default-value:"false" split-cli-option:"log-verbose" split-cli-description:"Enable verbose mode"`
	DebugOn         bool   `json:"debug" split-default-value:"false" split-cli-option:"log-debug" split-cli-description:"Enable debug mode"`
	StdoutOn        bool   `json:"stdout" split-default-value:"false" split-cli-option:"log-stdout" split-cli-description:"Enable log standard output"`
	File            string `json:"file" split-default-value:"/tmp/split-agent.log" split-cli-option:"log-file" split-cli-description:"Set the log file"`
	FileMaxSize     int64  `` /* 141-byte string literal not displayed */
	FileBackupCount int    `` /* 158-byte string literal not displayed */
	SlackChannel    string `` /* 133-byte string literal not displayed */
	SlackWebhookURL string `` /* 136-byte string literal not displayed */
}

LogSection log instance configuration

type ProducerAdmin

type ProducerAdmin struct {
	Port     int    `` /* 140-byte string literal not displayed */
	Username string `` /* 151-byte string literal not displayed */
	Password string `` /* 151-byte string literal not displayed */
	Title    string `` /* 157-byte string literal not displayed */
}

ProducerAdmin represents configuration for sync admin endpoints

type ProducerSection

type ProducerSection struct {
	Admin ProducerAdmin `json:"admin" split-cli-option-group:"true"`
}

ProducerSection wrapper for all producer configurations

type RedisSection

type RedisSection struct {
	Host   string `json:"host" split-default-value:"localhost" split-cli-option:"redis-host" split-cli-description:"Redis server hostname"`
	Port   int    `json:"port" split-default-value:"6379" split-cli-option:"redis-port" split-cli-description:"Redis Server port"`
	Db     int    `json:"db" split-default-value:"0" split-cli-option:"redis-db" split-cli-description:"Redis DB"`
	Pass   string `json:"password" split-default-value:"" split-cli-option:"redis-pass" split-cli-description:"Redis password"`
	Prefix string `json:"prefix" split-default-value:"" split-cli-option:"redis-prefix" split-cli-description:"Redis key prefix"`

	// The network type, either tcp or unix.
	// Default is tcp.
	Network string `json:"network" split-default-value:"tcp" split-cli-option:"redis-network" split-cli-description:"Redis network protocol"`

	// Maximum number of retries before giving up.
	// Default is to not retry failed commands.
	MaxRetries int `` /* 131-byte string literal not displayed */

	// Dial timeout for establishing new connections.
	// Default is 5 seconds.
	DialTimeout int `` /* 134-byte string literal not displayed */

	// Timeout for socket reads. If reached, commands will fail
	// with a timeout instead of blocking.
	// Default is 10 seconds.
	ReadTimeout int `` /* 135-byte string literal not displayed */

	// Timeout for socket writes. If reached, commands will fail
	// with a timeout instead of blocking.
	// Default is 3 seconds.
	WriteTimeout int `` /* 137-byte string literal not displayed */

	// Maximum number of socket connections.
	// Default is 10 connections.
	PoolSize int `json:"poolSize" split-default-value:"10" split-cli-option:"redis-pool" split-cli-description:"Redis connection pool size"`

	// Redis sentinel replication support
	SentinelReplication bool   `` /* 160-byte string literal not displayed */
	SentinelAddresses   string `` /* 139-byte string literal not displayed */
	SentinelMaster      string `json:"sentinelMaster" split-default-value:"" split-cli-option:"redis-sentinel-master" split-cli-description:"Name of master"`

	// Redis cluster replication support
	ClusterMode           bool     `` /* 131-byte string literal not displayed */
	ClusterNodes          string   `` /* 134-byte string literal not displayed */
	ClusterKeyHashTag     string   `` /* 139-byte string literal not displayed */
	TLS                   bool     `` /* 133-byte string literal not displayed */
	TLSServerName         string   `` /* 178-byte string literal not displayed */
	TLSCACertificates     []string `` /* 190-byte string literal not displayed */
	TLSSkipNameValidation bool     `` /* 192-byte string literal not displayed */
	TLSClientCertificate  string   `` /* 183-byte string literal not displayed */
	TLSClientKey          string   `` /* 151-byte string literal not displayed */
	ForceFreshStartup     bool     `` /* 227-byte string literal not displayed */
}

RedisSection Redis instance information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL